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
A Pancakeswap v2 trading client (and bot) with limit orders, stop-loss, custom gas strategies, a GUI and much more.

Pancakeswap v2 trading client A Pancakeswap trading client (and bot) with limit orders, stop-loss, custom gas strategies, a GUI and much more. If you

571 Mar 15, 2022
Tools untuk cek nomor rekening, terhadap penipuan yang sudah terjadi!

No Rekening Checker Selalu waspada terhadap penipuan! Sebelum anda transfer sejumlah uang alangkah baiknya untuk cek terlebih dahulu, apakah norek itu

Hanif Ahmad Syauqi 8 Dec 25, 2022
An App to get Ko-Fi payment updates on Telegram.

Deployments. Heroku.com 🚀 Replit.com 🌀 Make sure your app runs 24*7 Zeet.co 💪 Use this :~ Get Bot token from @botfather 🤖 Get ID where you want to

Jainam Oswal 16 Nov 12, 2022
unofficial library for discord components(on development)

discord.py-buttons unofficial library for discord buttons(on development) Install pip install --upgrade discord_buttons Example from discord import Cl

kiki7000 129 Dec 31, 2022
Telegram bot for making Heroku app.json by @AbirHasan2005

Heroku-app.json A Telegram bot for making Heroku app.json by @AbirHasan2005. Demo Bot Host Bot Deploy to Heroku Click Below Button to Deploy to Heroku

Abir Hasan 46 Nov 13, 2022
Pycardano - A lightweight Cardano client in Python

PyCardano PyCardano is a standalone Cardano client written in Python. The librar

151 Dec 31, 2022
The unofficial Amazon search CLI & Python API

amzSear The unofficial Amazon Product CLI & API. Easily search the amazon product directory from the command line without the need for an Amazon API k

Asher Silvers 95 Nov 11, 2022
Gorrabot is a bot made to automate checks and processes in the development process.

Gorrabot is a Gitlab bot made to automate checks and processes in the Faraday development. Features Check that the CHANGELOG is modified By default, m

Faraday 7 Dec 14, 2022
The Fastest multi spambot of Telegram 🤞 🤞

Revil Spam Bot The Fastest multi spambot of Telegram 🤞 🤞 𝚂𝚄𝙿𝙿𝙾𝚁𝚃 🖤 ᴄʀᴇᴀᴛᴏʀ 🖤 ⚡ 𝓡𝓮𝓿𝓲𝓵 𝓗𝓾𝓷𝓽𝓮𝓻 𝔐𝔲𝔩𝔱𝔦 ẞø✞︎ ⚡ 𝓐 𝕾мοοτн 𝓐и∂ 𝕱

REVIL HUNTER 4 Dec 08, 2021
OliviaV2: danger bot with python

🎶 OLIVIA V2 🎵 Requirements 📝 FFmpeg NodeJS nodesource.com Python 3.7 or higher PyTgCalls 🧪 Get SESSION_NAME from below: Pyrogram 🎖 History Featur

Alvaro Einstein 2 Nov 04, 2021
The aim is to contain multiple models for materials discovery under a common interface

Aviary The aviary contains: - roost, - wren, cgcnn. The aim is to contain multiple models for materials discovery under a common interface Environment

Rhys Goodall 20 Jan 06, 2023
Module to use some statistics from Spotify API

statify Module to use some statistics from Spotify API To use it you have to import the functions into your own project. You have also to authenticate

Miguel Cózar 2 Jun 02, 2022
A Slack bot for playing Texas Hold 'Em where the currency is various workout tasks e.g. pushups

A Slack app/bot for playing Texas Hold 'Em where the currency is various workout tasks e.g. pushups. The intent is to make the workday more fun & active for remote teams.

Kyle McIntyre 3 Sep 19, 2022
My attempt at weaponizing Discord.

MayorbotC2 This is my Discord C2 bot. There are many like it, but this one is mine. MayorbotC2 is a project I absolutely forgot about until I was pilf

Joe Helle 19 May 16, 2022
Python script to delete old / embarrassing tweets.

Delete Tweets Do you have hundreds of embarrassing tweets on your Twitter profile, that you tweeted over a decade ago as an innocent high schooler, th

Linda Zheng 9 Nov 26, 2022
Python library wrapping and enhancing the Invenio RDM REST API.

Iridium The metal Iridium is used to refine and enhance metal alloys. Similarly, this package provides an enhanced coating around the Invenio RDM APIs

Materials Data Science and Informatics 2 Mar 29, 2022
Python-random-quote - A file-based quote bot written in Python

Let's Write a Python Quote Bot! This repository will get you started with building a quote bot in Python. It's meant to be used along with the Learnin

amir mohammad fateh 1 Jan 02, 2022
Python 3 tools for interacting with Notion API

NotionDB Python 3 tools for interacting with Notion API: API client Relational database wrapper Installation pip install notiondb API client from noti

Viet Hoang 14 Nov 24, 2022
A self hosted slack bot to conduct standups & generate reports.

StandupMonkey A self hosted slack bot to conduct standups & generate reports. Report Bug · Request Feature Installation Install already hosted bot (Us

Muhammad Haseeb 69 Jan 01, 2023
This is a telegram bot hosted by a Raspberry Pi equipped with a temperature and humidity sensor. The bot is capable of sending plots and readings.

raspy-temperature-bot This is a telegram bot hosted by a Raspberry Pi equipped with a temperature and humidity sensor. The bot is capable of sending p

31 May 22, 2022