Skip to content
Python SDK for IEX Cloud and the Legacy Version 1.0 Investor's Exchange (IEX) Developer API
Branch: master
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github Added issue and pull request templates Apr 20, 2018
docs Repaired docbuild and README errors from pypi Feb 21, 2019
iexfinance RLS 0.4.0 Feb 21, 2019
LICENSE.txt COMPAT/CLN: 5/28/2018 IEX provider updates, clean docs (#67) Jul 6, 2018
Makefile Refactor output formatting. Add support for 8/8/2018 Endpoints (#86) Nov 11, 2018
README.rst Repaired docbuild and README errors from pypi Feb 21, 2019
github_deploy_key_addisonlynch_iexfinance.enc COMPAT/CLN: 5/28/2018 IEX provider updates, clean docs (#67) Jul 6, 2018
setup.cfg Prepare for 0.4.0 release (#111) Feb 16, 2019 Base IEX Cloud implementation & Refactored Codebase (#108) Feb 11, 2019
tox.ini DOC/TST: Added tox (@jmoody11), updated README and docs Feb 21, 2019



Now Supporting IEX Cloud

Python SDK for IEX Cloud and the legacy Version 1.0 Investors Exchange (IEX) Developer API. Architecture mirrors that of the IEX Cloud API (and its documentation).

iexfinance will maintain compatibility and support for the IEX Version Developer API until June 2019.

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)
  • 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)



Stable documentation is hosted on

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


From PyPI with pip (latest stable release):

$ pip3 install iexfinance

From development repository (dev version):

$ git clone
$ cd iexfinance
$ python3 install


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")

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



Selecting an API Version

Note to Version 1.0 users: see Migrating to IEX Cloud for more information about migrating to IEX Cloud.

iexfinance now supports both active IEX APIs: IEX Cloud, as well as the legacy Version 1.0 IEX Developer API.

The IEX API version can be selected by setting the environment variable IEX_API_VERSION to one of the following values:

IEX is continuing support for the legacy API until at least May 29th, 2019.

Output Formatting

By default, iexfinance returns data formatted exactly as received from the IEX Endpoint. pandas DataFrame output formatting is available for most endpoints.

pandas DataFrame output formatting can be selected by setting the IEX_OUTPUT_FORMAT environment variable to pandas or by passing output_format as an argument to any function call (or at the instantiation of a Stock object).

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')

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

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

Historical Data

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


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)

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


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')


Financial Statements

Balance Sheet

from iexfinance.stocks import Stock

aapl = Stock("AAPL")

Income Statement


Cash Flow


Modeling/Valuation Tools

Analyst Estimates

from iexfinance.stocks import Stock

aapl = Stock("AAPL")


Price Target


Social Sentiment

from iexfinance.altdata import get_social_sentiment

Reference Data

List of Symbols IEX supports for API calls

from iexfinance.refdata import get_symbols


List of Symbols IEX supports for trading

from iexfinance.refdata import get_iex_symbols


Account Usage

Message Count

from iexfinance.account import get_usage


API Status

IEX Cloud API Status

from iexfinance.account import get_api_status




Twitter: alynchfc


Copyright © 2019 Addison Lynch

See LICENSE for details

You can’t perform that action at this time.