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 Coinbase Python Library

Unofficial Coinbase Python Library Python Library for the Coinbase API for use with three legged oAuth2 and classic API key usage Version 0.3.0 Requir

George Sibble 104 Dec 01, 2022
SelfBot, a lots of features: Mass DM , Nuke, Raid... and more!

SelfBot, a lots of features: Mass DM , Nuke, Raid... and more!

eryycr 2 Nov 10, 2021
Discord Bot written in Python that plays music in your voice channel

Discord Bot that plays music! I decided to create a simple Discord bot using Python in order to advance my coding skills. Please don't ask me for help

Eric Yeung 39 Jan 01, 2023
Discord raiding tool. Made in python 3.9

XSpammer Discord raiding tool with 20 features. YT Showcase Requirements/Installation Python 3.7+ [https://python.org] Run setup.bat to install the es

Tiie 6 Oct 24, 2022
Bot for mirroring one or multiple Twitter accounts in Pleroma/Mastodon.

Stork (pleroma-bot) Mirror one or multiple Twitter accounts in Pleroma/Mastodon. Introduction After using the pretty cool mastodon-bot for a while, I

73 Jan 08, 2023
A basic Ubisoft API wrapper created in python.

UbisoftAPI A basic Ubisoft API wrapper created in python. I will be updating this with more endpoints as time goes on. Please note that this is my fir

Ethan 2 Oct 31, 2021
Wechat based auto reply with pyautogui

Python-微信 自动回复 练手~ 一直想做个给微信发个消息,就可以跑Python程序,并将结果发送给我的东西,之前看了 B站@不高兴就喝水 的视频,终于有了灵感~ 使用的是模拟点击方案,请求期间是不能操作了。 库 pyautogui 用于模拟鼠标键盘操作和定位操作位置 pyperclip 剪贴板

Vito Song 1 Oct 22, 2022
Man-Userbot adalah userbot Telegram modular yang berjalan di Python3 dengan database sqlalchemy

Man-Userbot Telegram Man-Userbot adalah userbot Telegram modular yang berjalan di Python3 dengan database sqlalchemy. Berbasis Paperplane dan ProjectB

DzLyz 1 Feb 12, 2022
Fetch the details of assets hosted on AWS.

onaws onaws is a simple tool to check if an IP/hostname belongs to the AWS IP space or not. It uses the AWS IP address ranges data published by AWS to

Amal Murali 80 Dec 29, 2022
Discord bot for calculating basic operations and formulas. (Early Development)

MathBot Discord bot for calculating basic operations and formulas. (Early Development) Commits Feel free to contribute to this bot by forking and pull

4 Jul 14, 2022
TFT Bot that automatically surrenders and allows finishing TFT Passes easily.

Image Based TFT Bot TFT Bot that automatically surrenders and allows finishing TFT Passes easily. Please read full file! You can check new releases he

1 Feb 06, 2022
Telegram to TamTam stickers

Telegram to TamTam stickers @tg_stickers TamTam бот, который конвертирует Telegram стикеры в формат TamTam и помогает загрузить их в TamTam. Все делае

Ivan Buymov 22 Nov 01, 2022
Pincer-ext-commands - A simple, lightweight package for pincer prefixed commands

pincer.ext.commands A reimagining of pincer's command system and bot system. Ins

Vincent 2 Jan 11, 2022
Apex lets you build, deploy, and manage AWS Lambda functions with ease.

No longer maintained This software is no longer being maintainted and should not be chosen for new projects. See this issue for more information Apex

Apex 25 Dec 23, 2022
Python library for using SMS.ir web services

smsir smsir is a Python library for using SMS web services www.sms.ir Installation Use the package manager pip to install smsir. pip install smsir Usa

mohammad reza 2 Oct 14, 2022
High-Resolution Differential Z-Belt Mod for V0 (with optional Kirigami support)

V0-DBM This is a high-resolution differential pulley system belt mod for the Z-axis on Voron 0 with optional Kirigami Bed support. NOTE: Alpha version

Simon Küppers 11 Jan 07, 2023
Discord Mass Report script that uses multiple tokens

Discord-Mass-Report Discord Mass Report script that uses multiple tokens, full credits to https://github.com/hoki0/Discord-mass-report who made it in

cChimney 4 Jun 08, 2022
Find rare users in discord servers

BadgeScraper Find rare users in discord servers How to use Replace the guild_id, server_id and token by the values you wanna use If you never used dis

20 Dec 09, 2022
A python wrapper for interacting with the LabArchives API.

LabArchives API wrapper for Python A python wrapper for interacting with the LabArchives API. This very simple package makes it easier to make arbitra

Marek Cmero 3 Aug 01, 2022
The text based version of my App Blocker that I planning on converting to GUI soon.

App-Blocker The text based version of my App Blocker that I planning on converting to GUI soon. Currently I am just uploading the appblocker.py file,

Harsh Raj 0 Sep 13, 2022