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
Discord-RAID-Tool - Hacks/tools

How to use Python must be installed run install-config If you dont have python installed, download python 3.7.6 and make sure you click on the 'ADD TO

1 Jan 01, 2022
A simple program to display current playing from Spotify app on your desktop

WallSpot A simple program to display current playing from Spotify app on your desktop How to Use: Linux: Currently Supports GNOME and KDE. If you want

Nannan 4 Feb 19, 2022
Automate and Manage Telegram Channels

Channel Automation Bot @ChannelAutomateBot A star ⭐ from you means a lot to us! Telegram bot to automate and manage channels. Usage Deploy to Heroku T

Stark Bots 61 Dec 29, 2022
A python script that automatically farms the Discord bot 'Dank Memer'.

Dank Farmer A python script that automatically farms the Discord bot 'Dank Memer'. Requirements pynput Disclaimer DO NOT use if you are not willing to

2 Dec 30, 2021
Automate HoYoLAB Genshin Daily Check-In Using Github Actions

Genshin Daily Check-In 🤖 Automate HoYoLAB Daily Check-In Using Github Actions KOR, ENG Instructions Fork the repository Go to Settings - Secrets Cli

Leo Kim 41 Jun 24, 2022
🎵 RythmReloaded 🎵 A bot that can play music on Telegram Group and Channel Voice Chats

🎵 RythmReloaded 🎵 A bot that can play music on Telegram Group and Channel Voice Chats POWERED BY MARSHALX TGCALLS Available on telegram as @OptimusP

0 Nov 03, 2021
Example-bot-discord - Example bot discord xD

example-python-bot-discord Clone this repository Grab a token on Discord's devel

Amitminer 1 Mar 14, 2022
Free python/telegram bot for easy execution and surveillance of crypto trading plans on multiple exchanges.

EazeBot Introduction Have you ever traded cryptocurrencies and lost overview of your planned buys/sells? Have you encountered the experience that your

Marcel Beining 100 Dec 06, 2022
A Telegram Bot with(Forwarder Bot + User Bot + More Features )

A Telegram Bot with(Forwarder Bot + User Bot + More Features )

Kaif 3 Feb 16, 2022
OpenVisionAPI client

OpenVisionAPI Client 🚀 Getting Started Prerequisites Installing Install the dependencies $ make setup Usage $ source .venv/bin/activate $ ./ova_clie

Open Vision API 40 Nov 11, 2022
A simple Discord bot that notifies users of new Abitti versions

A simple Discord bot that notifies users of new Abitti versions. New features might be added later on. If you have good ideas, feel free to do a PR.

1 Feb 11, 2022
Start multiple bots using one script. VK RAID BOTNET

MultiRaidBotnet Start multiple bots using one script. VK RAID BOTNET Русский launcher.py - главный скрипт, запускающий весь ботнет config.py - в нём х

2 Jul 22, 2022
SpaceManJax's open-source Discord Bot. Now on Github!

SpaceManBot This is SpaceManJax's open-source Discord.py Bot. Now on Github! This bot runs on Repl.it, which is a free online code editor. It can do a

Jack 1 Nov 16, 2021
A robust, low-level connector for the Discord API

Bauxite Bauxite is a robust, low-level connector for the Discord API. What is Bauxite for? Bauxite is made for two main purposes: Creating higher-leve

1 Dec 04, 2021
阿里云盘上传脚本

阿里云盘上传脚本 Author:李小恩 Github:https://github.com/Hidove/aliyundrive-uploader 如有侵权,请联系我删除 禁止用于非法用途,违者后果自负 环境要求 python3 使用方法 安装 git clone https://github.co

Hidove 301 Jan 01, 2023
Discord bot that shows valorant your daily store by using the Ingame API

Valorant store checker - Discord Bot Discord bot that shows valorant your daily store by using the Ingame API. written using Python and the Pycord lib

STACIA 226 Jan 02, 2023
HTTP API for TON (The Open Network)

HTTP API for The Open Network Since TON nodes uses its own ADNL binary transport protocol, a intermediate service is needed for an HTTP connection. TO

66 Dec 28, 2022
Ross Virtual Assistant is a programme which can play Music, search Wikipedia, open Websites and much more.

Ross-Virtual-Assistant Ross Virtual Assistant is a programme which can play Music, search Wikipedia, open Websites and much more. Installation Downloa

Jehan Patel 4 Nov 08, 2021
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
Fortnite Dumper for anyone's Save the World profiles.

Anyone's Fortnite Save the World Profile Dumper This program allows you to dump anyone's Fortnite Save the World Profiles. How to use it? After starti

PRO100KatYT 6 Apr 13, 2022