Python SDK for IEX Cloud

Overview

iexfinance

https://travis-ci.org/addisonlynch/iexfinance.svg?branch=master https://codecov.io/gh/addisonlynch/iexfinance/branch/master/graphs/badge.svg?branch=master

Python SDK for IEX Cloud. Architecture mirrors that of the IEX Cloud API (and its documentation).

An easy-to-use toolkit to obtain data for Stocks, ETFs, Mutual Funds, Forex/Currencies, Options, Commodities, Bonds, and Cryptocurrencies:

  • Real-time and delayed quotes
  • Historical data (daily and minutely)
  • Financial statements (Balance Sheet, Income Statement, Cash Flow)
  • End of Day Options Prices
  • Institutional and Fund ownership
  • Analyst estimates, Price targets
  • Corporate actions (Dividends, Splits)
  • Sector performance
  • Market analysis (gainers, losers, volume, etc.)
  • IEX market data & statistics (IEX supported/listed symbols, volume, etc)
  • Social Sentiment and CEO Compensation

Example

https://raw.githubusercontent.com/addisonlynch/iexfinance/master/docs/source/images/iexexample.gif

Documentation

Stable documentation is hosted on github.io.

Development documentation is also available for the latest changes in master.

Install

From PyPI with pip (latest stable release):

$ pip3 install iexfinance

From development repository (dev version):

$ git clone https://github.com/addisonlynch/iexfinance.git
$ cd iexfinance
$ python3 setup.py install

What's Needed to Access IEX Cloud?

An IEX Cloud account is required to acecss the IEX Cloud API. Various plans are availalbe, free, paid, and pay-as-you-go.

Your IEX Cloud (secret) authentication token can be passed to any function or at the instantiation of a Stock object. The easiest way to store a token is in the IEX_TOKEN environment variable.

Passing as an Argument

The authentication token can also be passed to any function call:

from iexfinance.refdata import get_symbols

get_symbols(token="<YOUR-TOKEN>")

or at the instantiation of a Stock object:

from iexfinance.stocks import Stock

a = Stock("AAPL", token="<YOUR-TOKEN>")
a.get_quote()

How This Package is Structured

iexfinance is designed to mirror the structure of the IEX Cloud API. The following IEX Cloud endpoint groups are mapped to their respective iexfinance modules:

The most commonly-used endpoints are the Stocks endpoints, which allow access to various information regarding equities, including quotes, historical prices, dividends, and much more.

The Stock object provides access to most endpoints, and can be instantiated with a symbol or list of symbols:

from iexfinance.stocks import Stock

aapl = Stock("AAPL")
aapl.get_balance_sheet()

The rest of the package is designed as a 1:1 mirror. For example, using the Alternative Data endpoint group, obtain the Social Sentiment endpoint with iexfinance.altdata.get_social_sentiment:

from iexfinance.altdata import get_social_sentiment

get_social_sentiment("AAPL")

Common Usage Examples

The iex-examples repository provides a number of detailed examples of iexfinance usage. Basic examples are also provided below.

Real-time Quotes

To obtain real-time quotes for one or more symbols, use the get_price method of the Stock object:

from iexfinance.stocks import Stock
tsla = Stock('TSLA')
tsla.get_price()

or for multiple symbols, use a list or list-like object (Tuple, Pandas Series, etc.):

batch = Stock(["TSLA", "AAPL"])
batch.get_price()

Historical Data

It's possible to obtain historical data using get_historical_data and get_historical_intraday.

Daily

To obtain daily historical price data for one or more symbols, use the get_historical_data function. This will return a daily time-series of the ticker requested over the desired date range (start and end passed as datetime.datetime objects):

from datetime import datetime
from iexfinance.stocks import get_historical_data

start = datetime(2017, 1, 1)
end = datetime(2018, 1, 1)

df = get_historical_data("TSLA", start, end)

To obtain daily closing prices only (reduces message count), set close_only=True:

df = get_historical_data("TSLA", "20190617", close_only=True)

For Pandas DataFrame output formatting, pass output_format:

df = get_historical_data("TSLA", start, end, output_format='pandas')

It's really simple to plot this data, using matplotlib:

import matplotlib.pyplot as plt

df.plot()
plt.show()

Minutely (Intraday)

To obtain historical intraday data, use get_historical_intraday as follows. Pass an optional date to specify a date within three months prior to the current day (default is current date):

from datetime import datetime
from iexfinance.stocks import get_historical_intraday

date = datetime(2018, 11, 27)

get_historical_intraday("AAPL", date)

or for a Pandas Dataframe indexed by each minute:

get_historical_intraday("AAPL", output_format='pandas')

Fundamentals

Financial Statements

Balance Sheet

from iexfinance.stocks import Stock

aapl = Stock("AAPL")
aapl.get_balance_sheet()

Income Statement

aapl.get_income_statement()

Cash Flow

aapl.get_cash_flow()

Modeling/Valuation Tools

Analyst Estimates

from iexfinance.stocks import Stock

aapl = Stock("AAPL")

aapl.get_estimates()

Price Target

aapl.get_price_target()

Social Sentiment

from iexfinance.altdata import get_social_sentiment
get_social_sentiment("AAPL")

CEO Compensation

from iexfinance.altdata import get_ceo_compensation
get_ceo_compensation("AAPL")

Fund and Institutional Ownership

from iexfinance.stocks import Stock
aapl = Stock("AAPL")

# Fund ownership
aapl.get_fund_ownership()

# Institutional ownership
aapl.get_institutional_ownership()

Reference Data

List of Symbols IEX supports for API calls

from iexfinance.refdata import get_symbols

get_symbols()

List of Symbols IEX supports for trading

from iexfinance.refdata import get_iex_symbols

get_iex_symbols()

Account Usage

Message Count

from iexfinance.account import get_usage

get_usage(quota_type='messages')

API Status

IEX Cloud API Status

from iexfinance.account import get_api_status

get_api_status()

Configuration

Output Formatting

By default, iexfinance returns data for most endpoints in a pandas DataFrame.

Selecting json as the output format returns data formatted exactly as received from the IEX Endpoint. Configuring iexfinance's output format can be done in two ways:

Environment Variable (Recommended)

For persistent configuration of a specified output format, use the environment variable IEX_OUTPUT_FORMAT. This value will be overridden by the output_format argument if it is passed.

macOS/Linux

Type the following command into your terminal:

$ export IEX_OUTPUT_FORMAT=pandas

Windows

See here for instructions on setting environment variables in Windows operating systems.

output_format Argument

Pass output_format as an argument to any function call:

from iexfinance.refdata import get_symbols

get_symbols(output_format='pandas').head()

or at the instantiation of a Stock object:

from iexfinance.stocks import Stock

aapl = Stock("AAPL", output_format='pandas')
aapl.get_quote().head()

Contact

Email: [email protected]

Twitter: alynchfc

License

Copyright © 2020 Addison Lynch

See LICENSE for details

Comments
  • Query Issue, Server Side

    Query Issue, Server Side

    Summary (include Python version)

    Python 3.6

    Date/time of issue

    7/17/2019 7-8:00 pm

    Expected behavior

    stock_item = Stock.("AAPL", token = MY_AUTH_TOKEN) stock_item.get_price() should yield the current price,

    Actual behavior

    Instead I get a query error. "iexfinance.utils.exceptions.IEXQueryError: An error occurred while making the query." No, it is not an authentication or message usage issue. I am under my quota (only 58 messages) and also have tried the tokens of various other accounts, several times. Will try again later. Uninstalled and reinstalled package several times, both through pip and git clone.

    endpoint change needs documentation 
    opened by Xnetter 18
  • Historical data, is the column name of Date missing

    Historical data, is the column name of Date missing

    Did the output of historical data changed?

    df1 = get_historical_data("%s" % symbol, start1, end2, close_only=True, output_format='pandas', token="")

    output (without -----):
    --------------- close volume 2020-12-11 214.06 4283354

    So the date is missing date I think. If I put it into a new sql

    Index close volume 2020-12-11 00:00:00 214.06 4283354

    So my old table with columns: date, close, volume doesn`t work anymore, because Index is missing.

    I think panda names the first column "Index" because it has no name anymore. I will check with an old version now

    opened by sl00k 9
  • Production Key Works, But Sandbox Key doesn't

    Production Key Works, But Sandbox Key doesn't

    Summary (include Python version)

    from iexfinance.stocks import Stock import os os.environ["IEX_API_VERSION"] = "iexcloud-beta"

    aapl = Stock('AAPL', output_format='pandas', token={token})

    When using my production key, I get back output. When using my sandbox key, I get back a "IEXAuthenticationError: The query could not be completed. There was a client-side error with your request." error

    Date/time of issue

    May 1, 2019 - 4:02pm

    Expected behavior

    Get back a pandas dataframe with the balance sheet for Apple

    Actual behavior

    Error message stated above

    duplicate docs 
    opened by chprabhu 9
  • AttributeError: module 'pandas.compat' has no attribute 'string_types'

    AttributeError: module 'pandas.compat' has no attribute 'string_types'

    Summary (include Python version)

    Hey there. I was using the sdk last night to call historical data and everything was working fine.

    However, now when I go to call historical data i get this pandas parsing error.

    from datetime import datetime
    from iexfinance.stocks import get_historical_data
    
    start = datetime(2017, 1, 1)
    end = datetime(2018, 1, 1)
    
    df = get_historical_data("TSLA", start, end)
    
    Name: pandas
    Version: 0.25.0
    
    # python 3.7 as seen in the error below.
    

    Date/time of issue

    July 27 12:00pm Eastern

    Actual behavior

    File "/Users/me/.pyenv/versions/my_env/lib/python3.7/site-packages/iexfinance/stocks/base.py", line 45, in __init__
        self.symbols = list(map(lambda x: x.upper(), _handle_lists(symbols)))
      File "/Users/me/.pyenv/versions/my_env/lib/python3.7/site-packages/iexfinance/utils/__init__.py", line 43, in _handle_lists
        if isinstance(l, (compat.string_types, int)):
    
    AttributeError: module 'pandas.compat' has no attribute 'string_types'
    

    I tried pip installing pandas-compat explicitly but it didn't change the error. Also tried reinstalling pandas.

    bug resolved 
    opened by ghost 8
  • get_price() results in error: version 0.4.2

    get_price() results in error: version 0.4.2

    Summary (include Python version)

    Python 3.7.2

    I was having the 'client side error' issue for get_historical_data when using 0.4.1 version. For 0.4.1 version, I had NO issue for get_price() call. I updated to 0.4.2 today (6/20/2019) and now I'm getting the error:

    iexfinance.utils.exceptions.IEXQueryError: An error occurred while making the query.

    the stack dump:

    b=a.get_price()
    

    File "C:\Users\Administrator\AppData\Local\Programs\Python\Python37-32\lib\site-packages\iexfinance\stocks\base.py", line 756, in get_price return self._get_endpoint("price", fmt_p=fmt_p) File "C:\Users\Administrator\AppData\Local\Programs\Python\Python37-32\lib\site-packages\iexfinance\stocks\base.py", line 103, in _get_endpoint data = self.fetch(fmt_j=fmt_j, fmt_p=no_pandas) File "C:\Users\Administrator\AppData\Local\Programs\Python\Python37-32\lib\site-packages\iexfinance\base.py", line 209, in fetch data = self._execute_iex_query(url) File "C:\Users\Administrator\AppData\Local\Programs\Python\Python37-32\lib\site-packages\iexfinance\base.py", line 165, in _execute_iex_query return self._handle_error(response) File "C:\Users\Administrator\AppData\Local\Programs\Python\Python37-32\lib\site-packages\iexfinance\base.py", line 178, in _handle_error raise IEXQueryError("The query could not be completed. " iexfinance.utils.exceptions.IEXQueryError: An error occurred while making the query.

    Date/time of issue

    Expected behavior

    Actual behavior

    opened by john8988 8
  • get_historical_data throws exception: ValueError: DataFrame index must be unique for orient='index'.

    get_historical_data throws exception: ValueError: DataFrame index must be unique for orient='index'.

    Summary (include Python version)

    Python version: 3.7.3

    Reproduction steps:

    import os
    
    os.environ['IEX_TOKEN'] = ...
    os.environ['IEX_OUTPUT_FORMAT'] = 'json'
    os.environ['IEX_API_VERSION'] = 'iexcloud-sandbox'
    
    from iexfinance.stocks import get_historical_data
    
    get_historical_data(['AAPL','ZM'], '20190101', '20200403', close_only=True)
    

    This produces the following traceback:

    Traceback (most recent call last):
      File "repro.py", line 11, in <module>
        get_historical_data(['AAPL','ZM'], '20190101', '20200403', close_only=True)
      File "/home/michael/.local/share/virtualenvs/Stocks-z8jCOmud/lib/python3.7/site-packages/iexfinance/stocks/__init__.py", line 44, in get_historical_data
        close_only=close_only, **kwargs).fetch()
      File "/home/michael/.local/share/virtualenvs/Stocks-z8jCOmud/lib/python3.7/site-packages/iexfinance/base.py", line 210, in fetch
        return self._output_format(data, fmt_j=fmt_j, fmt_p=fmt_p)
      File "/home/michael/.local/share/virtualenvs/Stocks-z8jCOmud/lib/python3.7/site-packages/iexfinance/stocks/historical.py", line 84, in _output_format
        result[sym] = result[sym].to_dict('index')
      File "/home/michael/.local/share/virtualenvs/Stocks-z8jCOmud/lib/python3.7/site-packages/pandas/core/frame.py", line 1433, in to_dict
        raise ValueError("DataFrame index must be unique for orient='index'.")
    ValueError: DataFrame index must be unique for orient='index'.
    

    If I switch the output_format to pandas, I also get an exception. I have not tested this in any API version other than iexcloud-sandbox.

    Interestingly, this very similar query returns the expected response:

    get_historical_data(['AAPL','ZM'], '20190101', '20200402', close_only=True)
    

    This query also works, but only if IEX_OUTPUT_FORMAT is pandas:

    get_historical_data(['AAPL','GOOGL'], '20190102', '20200403', close_only=True)
    

    Date/time of issue

    April 14, 2020, 17:36 EDT.

    Expected behavior

    Combined dataframe with NaNs where data is missing.

    Actual behavior

    ValueError exception.

    opened by MLLeKander 7
  • Financial decimal parsing

    Financial decimal parsing

    Allow correct financial calculation using the Decimal data type by letting the JSON parser turn float-like values into Decimal. This behaviour can be specified during class creation using the kwarg 'json_parse_int' and 'json_parse_float' to parse INTs and FLOATs into Decimal respectivelly.

    Example:
    
        from decimal import Decimal    
        Stock('aapl', 
                json_parse_int=Decimal, 
                json_parse_float=Decimal
            ).get_dividends(range='1y')
    
    opened by reixd 7
  • get_historical_data not liking lists of tickers

    get_historical_data not liking lists of tickers

    Summary (include Python version)

    3.8 get_historical_data not processing ticker lists.

    Date/time of issue

    Dec 30, 2020

    Expected behavior

    process multiple tickers in a list format

    Actual behavior

    UnsortedIndexError: 'MultiIndex slicing requires the index to be lexsorted: slicing on levels [1], lexsort depth 0'

    opened by xelcho 6
  • IEXQueryError...

    IEXQueryError...

    Just now (16/11 @ 2pm in London) is the first time I try to access IEX through Python and am no doubt making a silly mistake. I get this error [raise IEXQueryError("The query could not be completed. " iexfinance.utils.exceptions.IEXQueryError: An error occurred while making the query.] whereas (see code below) I expected to get a latest price (note that I am using my sandbox secret key, and have sandbox switched on online). The error appears on the 3rd line.

    from iexfinance.stocks import Stock aapl = Stock("AAPL", token="Tsk_xxxxxxxxxxxxxxxxxxxxx") price = aapl.get_price() print(price)

    Should I use my Sandbox publishable key? What anyway is the difference between a secret and publishable key??

    Many thanks in advance - Michael

    opened by mkemper999999 6
  • Authentication issue (worked well previously)

    Authentication issue (worked well previously)

    Summary (include Python version)

    The API is not working well for requesting one-minute market data. I store the key in my script. However, there is an error with authentication. Please let me know your thought. Thank you. I use Python 3.7.

    Date/time of issue

    July 19, 2019.

    Expected behaviour

    one-minute intraday data. Worked well previously. get_historical_intraday(company_stock_code, dt, token=iex_finance_API_key)

    Actual behaviour

    ~/anaconda3/lib/python3.7/site-packages/iexfinance/base.py in _handle_error(self, response) 176 raise auth_error(auth_msg) 177 else: --> 178 raise IEXQueryError("The query could not be completed. " 179 "There was a client-side error with your " 180 "request.")

    duplicate 
    opened by Jiaxi68 6
  • IEXAuthenticationError  after downloading  some historical prices

    IEXAuthenticationError after downloading some historical prices

    python 3.x

    I am new to iexfinance and I am trying to download historical prices from it. I used this way to download the prices

    api_key="PUBLISHABLE KEY"
    df=get_historical_data('F', start_date=datetime(2018,1,1),end=datetime(2019,1,1),output_format='pandas',token=api_key)
    df.to_csv('F.csv')
    

    It initially worked and downloded about 30ish files then it stopped working and giving me this error

     raise auth_error("The query could not be completed. "
    iexfinance.utils.exceptions.IEXAuthenticationError: The query could not be completed. There was a client-side error with your request.
    

    But this works https://cloud.iexapis.com/stable/stock/gs/balance-sheet?filter=shareholderEquity&token=api_key

    opened by fightthepower 6
  • Add include_today option to HistoricalReader

    Add include_today option to HistoricalReader

    As the title says, just a quick change to allow passing include_today=True to get_historical_data and HistoricalReader. Thanks for a great library!

    • [x] tests added / passed
    • [x] passes black iexfinance
    • [x] passes git diff upstream/master -u -- "*.py" | flake8 --diff
    • [x] added entry to docs/source/whatsnew/vLATEST.txt
    opened by lsapan 1
  • How to access technical indicators

    How to access technical indicators

    Summary (include Python version)

    The API provides the ability to query technical indicators https://iexcloud.io/docs/api/#technical-indicators This functionality appears to be missing from iexfinance. Any plans for adding a method to query this in future? if not, then any pointers on what is the starting point in code where I can build one ?

    Date/time of issue

    Expected behavior

    Actual behavior

    opened by nyaroh 2
  • Update README.rst

    Update README.rst

    • [x] closes #xxxx
    • [x] tests added / passed
    • [x] passes black iexfinance
    • [x] passes git diff upstream/master -u -- "*.py" | flake8 --diff
    • [x] added entry to docs/source/whatsnew/vLATEST.txt
    opened by jto-d 1
  • ImportError: cannot import name 'get_historical_data' from 'iexfinance' (/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/iexfinance/__init__.py)

    ImportError: cannot import name 'get_historical_data' from 'iexfinance' (/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/iexfinance/__init__.py)

    Summary (include Python version)

    from iexfinance import get_historical_data

    Date/time of issue

    12,23,2021

    Expected behavior

    nothing

    Actual behavior

    ImportError: cannot import name 'get_historical_data' from 'iexfinance' (/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/iexfinance/init.py) python3.7

    opened by pythonsus 0
  • stock.get_financials() output is not dataframe

    stock.get_financials() output is not dataframe

    Summary (include Python version)

    The output is some kind of nested dictionary which is difficult to parse. from iexfinance.stocks import Stock stocks=Stock(['NEM','FCX'],token='my_live_token',output_format='pandas') fins_data=stocks.get_financials(period='annual') print(fins_data)

    returns a dictionary (2x1x70)

    Date/time of issue

    Dec 1 2021

    Expected behavior

    iexfinance documentation suggests it will output a pandas dataframe. It should be similar to the output from the following: from iexfinance.stocks import Stock stocks=Stock(['NEM','FCX'],token='my_live_token') co_info=stocks.get_company() print(co_info)

    Actual behavior

    returns a dictionary (2x1x70)

    opened by jpcam 0
Releases(v0.5.0)
  • v0.4.3(Aug 28, 2019)

    This is a minor patch release from 0.4.2 that repairs compatibility issues with pandas 0.25.0. We recommend that all users upgrade.

    Bug Fixes

    • Removes uses of pandas.compat which was removed with pandas' end of Python 2 support in 0.25.0
    Source code(tar.gz)
    Source code(zip)
  • v0.4.2(Jun 20, 2019)

    v0.4.2 (June 19, 2019)

    This is a minor release from 0.4.1. We recommend that all users update to maintain compatibility with IEX Cloud and optimize message weighting in calls.

    Highlights:

    • Removes support for the legacy Version 1.0 IEX Developer API, which was retired in favor of IEX Cloud in June 2019
    • Optimized retrieval of historical prices with get_historical_data to allow for close prices only and single day charts to reduce message counts
    • Add support for End of Day options prices

    New Endpoints

    Options

    • End of Day Options (get_eod_options)

    Data APIs

    • /time-series (get_time_series)
    • /data-points (get_data_points)

    Enhancements

    • Adds logging for queries, including message count usage and debugging information. Logging level defaults to WARNING, but can be set to other levels through the IEX_LOG_LEVEL environment variable. The following levels provide various information:

      • WARNING - errors only
      • INFO - message count used
      • DEBUG - request information
    • Add close_only keyword argument to get_historical_data to allow for retrieval of adjusted close only at reduced message cost (through chartCloseOnly query parameter)

    • Optimize get_historical_data to use chartByDay if a single date is passed which reduces message count (thanks shlomikushchi)

    Backwards Incompatible Changes

    • When IEX_API_VERSION is set to v1, IEX Cloud will now be used, and as such this has the same behavior as iexcloud-v1

    • The following legacy-only endpoints have been deprecated and will raise an ImmediateDeprecationError when called:

      • iexfinance.stocks.get_crypto_quotes
      • iexfinance.refdata.get_iex_corporate_actions
      • iexfinance.refdata.get_iex_dividends
      • iexfinance.refdata.get_iex_next_day_ex_date
      • iexfinance.refdata.get_listed_symbol_dir
      • iexfinance.stocks.Stock.get_effective_spread
    • The get_all method of iexfinance.stocks.Stock has been immediately deprecated

    Bug Fixes

    • Certain failed requests which erroneously-returened IEXAuthorizationError now return IEXQueryError
    Source code(tar.gz)
    Source code(zip)
  • v0.4.1(May 15, 2019)

    This is a minor release from 0.4.0. We recommend that all users update to maintain compatibility with IEX Cloud.

    Highlights:

    • Defaults to IEX Cloud for all API calls
    • Adds warnings to all legacy-only endpoints which will be deprecated on June 1, 2019, and warnings when IEX_API_VERSION is v1
    • Testing support for all legacy Version 1.0 endpoints has ended
    • Adds support for IEX Cloud sandbox environment (GH116)

    New Endpoints

    Stocks

    • /fund-ownership (get_fund_ownership)
    • /institutional-ownership (get_institutional_ownership)
    • /insider-roster (get_insider_roster)
    • /insider-summary (get_insider_summary)
    • /insider-transactions (get_insider_transactions)

    Alternative Data

    • /ceo-compensation (iexfinance.altdata.get_ceo_compensation)

    Enhancements

    • Adds support for the IEX Cloud sandbox environment. Specify iexcloud-sandbox as IEX_API_VERSION for use with test secret token (GH116)
    • Refactored test suite to reduce code bloat and consolidate output formatting

    Backwards Incompatible Changes

    • iexcloud-v1 is now the default IEX_API_VERSION, as v1 support will end on 6/1/2019

    • Stock Field/Additional methods <stocks.additional_methods> are no longer supported by the v1 Deveoper API. These methods are retained in IEX Cloud

    • All legacy-only endpoints will now warn of impending deprecation on June 1, 2019

      • iexfinance.stocks.get_crypto_quotes
      • iexfinance.refdata.get_iex_corporate_actions
      • iexfinance.refdata.get_iex_dividends
      • iexfinance.refdata.get_iex_next_day_ex_date
      • iexfinance.refdata.get_listed_symbol_dir
    • Deprecations (functions moved or renamed):

      • get_market_gainersiexfinance.stocks.get_market_gainers
      • get_market_losersiexfinance.stocks.get_market_losers
      • get_market_most_activeiexfinance.stocks.get_market_most_active
      • get_market_iex_volumeiexfinance.stocks.get_market_iex_volume
      • get_market_iex_percentiexfinance.stocks.get_market_iex_percent
      • get_symbolsiexfinance.refdata.get_symbols
      • get_iex_corporate_actionsiexfinance.refdata.get_iex_corporate_actions
      • get_iex_dividendsiexfinance.refdata.get_iex_dividends
      • get_iex_next_day_ex_dateiexfinance.refdata.get_iex_next_day_ex_date
      • get_listed_symbol_diriexfinance.refdata.get_listed_symbol_dir
      • get_topsiexfinance.iexdata.get_tops
      • get_lastiexfinance.iexdata.get_last
      • get_deepiexfinance.iexdata.get_deep
      • get_deep_bookiexfinance.iexdata.get_deep_book
      • get_stats_intradayiexfinance.iexdata.get_stats_intraday
      • get_stats_recentiexfinance.iexdata.get_stats_recent
      • get_stats_recordsiexfinance.iexdata.get_stats_records
      • get_stats_dailyiexfinance.iexdata.get_stats_daily
      • get_stats_summaryiexfinance.iexdata.get_stats_summary
      • stocks.get_today_earningsstocks.get_earnings_today
      • stocks.Stock.get_previousstocks.Stock.get_previous_day_prices
      • stocks.Stock.get_relevantstocks.Stock.get_relevant_stocks

    Bug Fixes

    • Repair DataFrame output formatting for a number of Stock methods (GH119)
    • Fix project description for PyPi

    Testing

    • Testing support all legacy Version 1 endpoints has ended. These endpoints will be deprecated in 0.4.2
    Source code(tar.gz)
    Source code(zip)
  • v0.4.0(Feb 21, 2019)

    This is a major release from 0.3.5, and we recommend that all users update.

    Highlights

    New Endpoints

    Stock

    • /balance-sheet (get_balance_sheet)
    • /cash-flow (get_cash_flow)
    • /estimates (get_estimates)
    • /historical (get_historical_prices) (same as get_chart)
    • /income (get_income_statement)
    • /price-target (get_price_target)

    Account

    • /account/usage (iexfinance.account.get_usage)
    • /account/metadata (iexfinance.account.get_metadata)
    • /account/payasyougo (iexfinance.account.allow_pay_as_you_go, iexfinance.account.disallow_pay_as_you_go)

    Reference Data

    • /ref-data/symbols (iexfinance.get_symbols)
    • /ref-data/iex-symbols (iexfinance.get_iex_symbols)

    Alternative Data

    • /crypto/quote (iexfinance.altdata.get_crypto_quote)
    • /stock/sentiment (iexfinance.altdata.get_social_sentiment)

    API System Metadata

    • /status (iexfinance.apidata.get_api_status)

    Enhancements

    • Adds support for setting persistent output format settings using the environment variable IEX_OUTPUT_FORMAT
    • Select between IEX API versions using the IEX_API_VERSION environment variable
    • The StockReader base class has been renamed Stock and the duplicate Stock function has been removed
    • Loosened testing restrictions on return types to allow for int or float to eliminate periodic even number returns and CI failures
    • Improved testing for _IEXBase base class configuration (request parameters, output formatting)
    • Adds tox for cross-version testing (thank you Jack Moody)
    • Adds official Python 3.7 support and CI build (thank you Jack Moody)

    Backwards Incompatible Changes

    • Deprecated iexfinance.Stock and iexfinance.get_historical_data have been removed. These are now available as iexfinance.stocks.Stock and iexfinance.stocks.get_historical_data

      • iexfinance.marketdata has been moved to a new module iexdata.

        • get_market_tops, get_market_last, get_market_deep, get_market_book have been deprecated and renamed (respectively) get_tops, get_last, get_deep, get_deep_book
      • iexfinance.stats moved to a new module iexdata.

        • get_stats_intraday, get_stats_recent, get_stats_records, get_stats_daily, get_stats_monthly have been moved to iexdata. The top level functions iexfinance.get_stats_intraday etc. have been deprecated
        • get_stats_monthly renamed to get_stats_summary
    • The named parameter range_ for iexfinance.stocks.Stock.get_dividends, get_splits, and get_chart is now the keyword argument range

    • iexfinance.stocks.Stock.get_previous deprecated

    Source code(tar.gz)
    Source code(zip)
  • v0.3.5(Nov 28, 2018)

    This is a minor release from 0.3.4.

    Highlights:

    • Adds support for intraday historical prices
    • Adds support for endpoint additions and updates from 8/8/2018 provider updates (including expanded cryptocurrency support)
    • Various bug fixes and enhancements

    Enhancements

    • Adds support for intraday historical data through get_historical_intraday of stocks.
    • Adds support for the Sector Performance endpoint of Stocks (thank you kafana).
    • Adds support for the List infocus endpoint of Stocks (thank you kafana).
    • Adds support for the Collections endpoint of Stocks
    • Adds support for the Crypto endpoint of Stocks
    • Adds support for the Earnings Today endpoint of Stocks
    • Adds support for the IPO Calendar endpoint of Stocks
    • Adds pandas DataFrame output formatting for get_chart, get_dividends, get_earnings, get_financials, and multiple get_historical_data symbol requests.
    • Adds support for list-like data types for symbols (tuple, pandas.Series, numpy.ndarray, etc)
    • Sets index of DataFrame historical and time series data to pandas.DatetimeIndex for easier sorting and wrangling (thank you Brian Wylie) GH83

    Bug Fixes

    • Some Stocks endpoints return incorrectly GH34
    • get_time_series returns incorrect range when passed range_ parameter GH84
    • Repaired issue where get_historical_data for an invalid symbol does not raise an exception GH82

    Backward Compatability

    • Stock and get_historical_data have been moved to iexfinance.stocks. The top-level functions remain with warnings but will be deprecated in v0.4.0.
    Source code(tar.gz)
    Source code(zip)
  • v0.3.4(Jul 12, 2018)

    This is a minor release from 0.3.3.

    Highlights:

    Adds and updates endpoints related to the May 25, 2018 provider update to the IEX API

    New Features

    • Added support for the Largest Trades endpoint through the get_largest_trades method of Stock

    Enhancements

    • Added tests and documentation for cryptocurrency support [GH66] (https://github.com/addisonlynch/iexfinance/issues/66)
    • Added docstring for get_chart changeFromClose and chartLast parameters GH65

    Bug Fixes

    • Removes dividend-issuing tickers from historical price tests [GH61] (https://github.com/addisonlynch/iexfinance/issues/61)
    • Fix KeyError exception when there is no earnings or financials data on a ticker. (Thank you reixd) GH60
    Source code(tar.gz)
    Source code(zip)
  • v0.3.3(Apr 21, 2018)

    This is a minor release from 0.3.2 which repairs PyPi upload and installation issues.

    Please see the release notes for v0.3.2 for more information on the latest updates. This version simply repairs installation issues.

    Bug Fixes

    • Repairs installation problems for Python 2 and 3 by adding MANIFEST.in (#44)
    Source code(tar.gz)
    Source code(zip)
  • v0.3.2(Apr 21, 2018)

    This is a minor release from 0.3.1, which repairs various bugs and adds minor enhancements.

    New Features

    • Adds decimal parsing option (thank you @reixd)
    • Adds support for market movers through the Stocks list endpoint (#52)

    Enhancements

    • Adds default date paremeters (thank you stubs)
    • Code refactoring for performance and simplicity

    Bug Fixes

    • Repaired 0.3.1 docs
    • IEX Market Data functions not filtering when symbol passed (#46)
    • Expected close test fails (#45)
    Source code(tar.gz)
    Source code(zip)
  • v0.3.1(Mar 10, 2018)

    This is a minor release from 0.3.0, which repairs various bugs related to the Stocks endpoints. The iexfinance documentation has been expanded and repaired.

    Enhancements

    • Significant cleanup and rebuild of iexfinance docs

    Bug Fixes

    • Symbols with non-alphanumeric characters fail (#38)
    • Some Stocks endpoints return incorrectly (#34)
    • Repaired CodeCov code coverage support (#14)
    Source code(tar.gz)
    Source code(zip)
  • v0.3.0(Feb 17, 2018)

    This is a major release from v0.2, and also the first official release of iexfinance. Support has been added for most of the remaining IEX endpoints. We recommend that all users upgrade.

    Additions

    • Added IEX Market Data endpoints
    • Added IEX Stats endpoints
    • Updated to support 1/30/2018 IEX API updates.
      • Added Stocks ohlc, time-series endpoints, added chartReset, chartSimplify, chartInterval parameters to the Chart endpoint
      • Added Reference Data corporate-actions, dividends, next-day-ex-date

    Enhancements

    • Pandas DataFrame output formatting support for most endpoints
    • Code formatting and PEP-8 compliance

    Backward Compability

    • The top-level IexFinance function is now Stock
    • Within the StockReader class (to retrieve stocks endpoints):
      • refresh has been removed. Simply conduct another endpoint request to download the most updated data
      • get_select_datapoints has been replaced with filter.
      • get_select_endpoints has been replaced with get_endpoints
      • range parameter is now range_
      • outputFormat is now output_format
      • Parameters (other than output_format are now sent to each endpoint method, rather than at instantiation of the StockReader object.
    Source code(tar.gz)
    Source code(zip)
    iexfinance-0.3.0.tar.gz(13.33 KB)
  • v0.2(Mar 6, 2018)

Owner
Addison Lynch
UCLA alum. Equities trader.
Addison Lynch
Bin Checker with Aiogram, Telegram

Bin Checker with Aiogram, Telegram

JEFF 1 Aug 16, 2022
Crud-python-sqlite: used to manage telephone contacts through python and sqlite

crud-python-sqlite This program is used to manage telephone contacts through python and sqlite. Dependencicas python3 sqlite3 Installation Clone the r

Luis Negrón 0 Jan 24, 2022
YuuScource - A Discord bot made with Pycord

Yuu A Discord bot made with Pycord Features Not much lol • Easy to use commands

kekda 9 Feb 17, 2022
The Main Pythonic Version Of Twig Using Nextcord

The Main Pythonic Version Of Twig Using Nextcord

8 Mar 21, 2022
A simple Discord bot wrote with Python. Kizmeow let you track your NFT project and display some useful information

Kizmeow-OpenSea-and-Etherscan-Discord-Bot 中文版 | English Ver A Discord bot wrote with Python. Kizmeow let you track your NFT project and display some u

Xeift 93 Dec 31, 2022
TonplaceApi - Ton.place api wrapper

tonplaceApi ton.place/tonplaceApi Обертка для ton.place Установка pip install ht

Nickolay Samedov 3 Feb 21, 2022
Example of Telegram local API and aiogram 3.x

Telegram Local Full example of Telegram local application. Contains Telegram Bot API Local Telegram Bot API server based on aiogram Bot API Server ima

Oleg A. 9 Sep 16, 2022
RedFish API Toolkit

RedFish API Toolkit RedFish API Toolkit Build Status GitHub Actions Travis CI Requirements requirements.txt requirements-dev.txt Dependencies Document

Larry Smith Jr. 1 Nov 20, 2021
Role Based Access Control for Slack-Bolt Applications

Role Based Access Control for Slack-Bolt Apps Role Based Access Control (RBAC) is a term applied to limiting the authorization for a specific operatio

Jeremy Schulman 7 Jan 06, 2022
An open souce video/music streamer based on MPV and piped.

🎶 Harmony Music An easy way to stream videos or music from Youtube from the command line while regaining your privacy. 📖 Table Of Contents ❔ What's

Zingy Tomato 16 Nov 15, 2022
discord.py bot written in Python.

bakerbot Bakerbot is a discord.py bot written in Python :) Originally made as a learning exercise, now used by friends as a somewhat useful bot and us

8 Dec 04, 2022
PyMusic Player is a music player written in python3.

PyMusic Player is a music player written in python3. It harvests r

PythonSerious 2 Jan 30, 2022
A Discord Bot created using Pycord!

Hey, I am Slash Bot. A Bot which works with Slash Commands! Prerequisites Python 3+ Check out. the requirements.txt and install all the pakages. Insta

Saumya Patel 1 Nov 29, 2021
Buy early bsc gems with custom gas fee, slippage, amount. Auto approve token after buy. Sell buyed token with custom gas fee, slippage, amount. And more.

Pancakeswap Sniper bot Full version of Pancakeswap sniping bot used to snipe during fair coin launches. With advanced options and a graphical user int

Jesus Crypto 204 Apr 27, 2022
Discord Bot that leverages the idea of nested containers using podman, runs untrusted user input, executes Quantum Circuits, allows users to refer to the Qiskit Documentation, and provides the ability to search questions on the Quantum Computing StackExchange.

Discord Bot that leverages the idea of nested containers using podman, runs untrusted user input, executes Quantum Circuits, allows users to refer to the Qiskit Documentation, and provides the abilit

Mehul 23 Oct 18, 2022
search different Streaming Platforms for movie titles.

Install git clone and cd to directory install Selenium download chromedriver.exe to same directory First Run Use --setup True for the first run. Platf

34 Dec 25, 2022
𝐀 𝐦𝐨𝐝𝐮𝐥𝐚𝐫 𝐓𝐞𝐥𝐞𝐠𝐫𝐚𝐦 𝐆𝐫𝐨𝐮𝐩 𝐦𝐚𝐧𝐚𝐠𝐞𝐦𝐞𝐧𝐭 𝐛𝐨𝐭 𝐰𝐢𝐭𝐡 𝐮𝐥𝐭𝐢𝐦𝐚𝐭𝐞 𝐟𝐞𝐚𝐭𝐮𝐫𝐞𝐬

𝐇𝐨𝐰 𝐓𝐨 𝐃𝐞𝐩𝐥𝐨𝐲 For easiest way to deploy this Bot click on the below button 𝐌𝐚𝐝𝐞 𝐁𝐲 𝐒𝐮𝐩𝐩𝐨𝐫𝐭 𝐆𝐫𝐨𝐮𝐩 𝐒𝐨𝐮𝐫𝐜𝐞𝐬 𝐆𝐞𝐧𝐞?

Mukesh Solanki 2 Oct 06, 2021
Pdisk Link Converter Telegram Bot, Convert link in a single click

Pdisk Converter Bot Make short link by using Pdisk API key Installation The Easy Way Required Variables BOT_TOKEN: Create a bot using @BotFather, and

Ayush Kumar Jaiswal 6 Jul 28, 2022
Automatically pick a winner who Retweeted, Commented, and Followed your Twitter account!

AutomaticTwitterGiveaways automates selecting winners for "Retweet, Comment, Follow" type Twitter giveaways.

1 Jan 13, 2022
Visualização de dados do TaxiGov.

Visualização de dados do TaxiGov Este repositório apresenta uma visualização das corridas de táxi do programa TaxiGov do governo federal, realizadas n

Ministério da Economia do Brasil 5 Dec 20, 2022