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
Unofficial WebApp for WhatsApp Web created in PyQt6

Unofficial WebApp for WhatsApp Web created in PyQt6 using PyQt6-WebEngine

Rafael Tosta Santos 126 Dec 20, 2022
TypeRig is a Python library aimed at simplifying the current FontLab API

TypeRig TypeRig is a Python library aimed at simplifying the current FontLab API while offering some additional functionality that is heavily biased t

Vassil Kateliev 41 Nov 02, 2022
Surfline Forecast Bot For Python

Surfline Forecast Bot A telegram bot created using Telethon that allows users to

1 May 08, 2022
Discord bot for playing Werewolf game on League of Legends.

LoLWolf LoL人狼をプレイするときのDiscord用botです。 (Discord bot for playing Werewolf game on League of Legends.) 以下のボタンを押してbotをあなたのDiscordに招待することで誰でも簡単に使用することができます。

Hatsuka 4 Oct 18, 2021
Python bindings for ArrayFire: A general purpose GPU library.

ArrayFire Python Bindings ArrayFire is a high performance library for parallel computing with an easy-to-use API. It enables users to write scientific

ArrayFire 402 Dec 20, 2022
Trading bot - A Trading bot With Python

Trading_bot Trading bot intended for 1) Tracking current prices of tokens 2) Set

Tymur Kotkov 29 Dec 01, 2022
Simple Python Auto Follow Bot

Instagram-Auto-Follow-Bot Description Một IG BOT đơn giản. Tự động follow những người mà bạn muốn cướp follow. Tự động unfollow. Tự động đăng nhập vào

CodingLinhTinh 3 Aug 27, 2022
This very basic script can be used to automate COVID-19 vaccination slot booking on India's Co-WIN Platform.

COVID-19 Vaccination Slot Booking Script This very basic CLI based script can be used to automate covid vaccination slot booking on Co-WIN Platform. I

605 Dec 14, 2022
Minecraft checker

This Project checks if a minecraft account is a nfa/sfa account or invalid it also says you if the ip you are using is shadow banned from minecraft (shadow bann is if you send too many login attempts

baum1810 4 Oct 03, 2022
DDoS Script (DDoS Panel) with Multiple Bypass ( Cloudflare UAM,CAPTCHA,BFM,NOSEC / DDoS Guard / Google Shield / V Shield / Amazon / etc.. )

KARMA DDoS DDoS Script (DDoS Panel) with Multiple Bypass ( Cloudflare UAM,CAPTCHA,BFM,NOSEC / DDoS Guard / Google Shield / V Shield / Amazon / etc.. )

Hyuk 256 Jan 02, 2023
The official Magenta Voice Skill SDK used to develop skills for the Magenta Voice Assistant using Voice Platform!

Magenta Voice Skill SDK Development • Support • Contribute • Contributors • Licensing Magenta Voice Skill SDK for Python is a package that assists in

Telekom Open Source Software 18 Nov 19, 2022
This project uses Youtube data API's to do youtube tags analysis based on viewCount, comments etc.

Youtube video details analyser Steps to run this project Please set the AuthKey which you can fetch from google developer console and paste it in the

1 Nov 21, 2021
A Python bot that uses the Reddit API to send users inspiring messages.

AnonBot By Edric Antoine A Python bot that uses the Reddit API to send users inspiring messages. When a message includes 'What would Anon do?', the bo

1 Jan 05, 2022
This is a simple program that uses Python and pyTwitchAPI to retrieve the list of users in a streamer's chat and then checks each one of these users to see if they follow the broadcaster or not

This is a simple program that uses Python and pyTwitchAPI to retrieve the list of users in a streamer's chat and then checks each one of these users to see if they follow the broadcaster or not

RwinShow 57 Dec 18, 2022
Crosschat - A bot for cross-server communication

CrossChat A bot for cross-server communication. Running the bot To run the bot y

8 May 15, 2022
Discord bot built using Python. through this you can get information about the upcoming matches, scoreboard, live score

IPL-bot This is a Discord bot built using Python. through this you can get information about the upcoming matches, scoreboard, live score, and many mo

0 Dec 23, 2021
A small package to markdownify Notion blocks.

markdownify-notion A small package to markdownify notion blocks. Installation Install this library using pip: $ pip install markdownify-notion Usage

Sergio Sánchez Zavala 2 Oct 29, 2022
Telegram bot using python

Telegram bot using python

Masha Kubyshina 1 Oct 11, 2021
Hermes Bytecode Reverse Engineering Tool (Assemble/Disassemble Hermes Bytecode)

hbctool A command-line interface for disassembling and assembling the Hermes Bytecode. Since the React Native team created their own JavaScript engine

Pongsakorn Sommalai 216 Jan 03, 2023
Demo of using Telegram to send alert message

MIAI_Telegram Demo of using Telegram to send alert message Video link: https://youtu.be/oZ9CsIrlMgg #MìAI Fanpage: http://facebook.com/miaiblog Group

4 Jun 20, 2021