What’s New

New features, bug fixes, and improvements for each release.

v0.5.0 (TBD)

This is a major patch release from 0.4.3. We recommend that all users upgrade.

Support for Python 2 has ended with this release.

Highlights

  • iexfinance is now a pandas-driven library. Default output formatting is now pandas.DataFrame where available.

Enhancements

  • Improves message weighting for historical data when calls are under 1-year range

  • Adds support for historical data for the previous 15 years (extended from 5 years) (GH94)

  • Adds flake8-bugbear for additional code quality checks

  • Repairs date handling to accept multiple formats, including str, int, date, datetime, and pandas.Timestamp and use a rolling 15-year default start date for historical data (specifically get_historical_data)

  • Adds endpoint for us trading days/holidays (thanks Bouldersky)

  • Adds official support for Python 3.8

  • Adds endpoint for advanced stats (thanks SaymV)

  • Adds last and period parameters to Stock.get_estimates (GH213)

  • Adds endpoints for international symbol reference data (thanks anthonyvd)

  • Adds endpoint for Sectors reference data (thanks YairMZ)

Bug Fixes

  • Modifies Stock.get_historical_prices and Stock.get_chart (GH165) to return all fields, including changePercent

  • Repairs stocks.get_historical_data bug which errored on symbols without historical data (GH223)

Backward Incompatible Changes

  • Ends support for Python 2 and Python 3.4

  • All legacy IEX Developer API version 1.0 endpoints and references to such endpoints have been removed

  • Stock.get_endpoints, Stock.get_short_interest, Stock.get_short_ratio, Stock.get_latest_eps, Stock.get_eps_consensus, and Stock.get_relevant_stocks have been immediately deprecated

  • get_social_sentiment is now premium-only data and not tested by iexfinance

  • All endpoints in iexdata are now JSON-only (pandas output formatting no is longer supported)

  • iexfinance.stocks.get_market_in_focus has been immediately deprecated.

  • Certain endpoints (such as Stock.get_price_target) now require additional entitlements. See the IEX Cloud Help Center for more information. All endpoints which require additional entitlements are noted in the iexfinance documentation.

v0.4.3 (August 22, 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 (GH163)

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

v0.4.1 (May 14, 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 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

v0.4.0 (February 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 and renamed get_previous_day_prices

  • iexfinance.stocks.get_todays_earnings deprecated and renamed get_earnings_today

  • iexfinance.stocks.get_relevant deprecated and renamed get_relevant_stocks

  • iexfinance.stocks.get_all is now available for the Version 1.0 Developer API only.

Bug Fixes

  • Make pandas indexing consistent for get_historical_intraday, using pandas.DatetimeIndex instead of str (GH95)

  • stocks.Stock.get_dividends output fomatting returns one symbol only (GH110)

v0.3.5 (November 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.

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

v0.3.4 (July 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

  • Added docstring for get_chart changeFromClose and chartLast parameters GH65

Bug Fixes

  • Removes dividend-issuing tickers from historical price tests GH61

  • Fix KeyError exception when there is no earnings or financials data on a ticker. (Thank you reixd) GH60

v0.3.3 (April 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

    GH44

v0.3.2 (April 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

    GH52

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 GH46

  • Expected close test fails GH45

v0.3.1 (March 9, 2018)

This is a minor release from 0.3.0, which repairs various bugs related to the Stocks endpoints.

Enhancements

  • Significant cleanup and rebuild of iexfinance docs <https://addisonlynch.github.io/iexfinance>.

Bug Fixes

  • Symbols with non-alphanumeric characters fail GH38

  • Some Stocks endpoints return incorrectly GH34

  • Repaired CodeCov code coverage GH14

v0.3.0 (February 1, 2018)

This is a major release from 0.2.0, and we recommend that all users update.

Highlights:

  • Added most IEX API endpoints (from Stocks, Reference Data, IEX Market Data, and IEX Stats)

  • Added get_historical_data for the retrieval of time-series data from the chart endpoint.

  • Added support for filter, a parameter which allows the filtering of endpoint requests.

  • Pandas DataFrame formatting support.

New Features

  • Added support for IEX Market Data

  • Added support for IEX Stats

  • Added support for Historical data through the Stocks chart endpoint

  • Added Pandas as an output format for most endpoints (excluding IEX Reference Data).

  • Added support for requests caching using requests-cache

Enhancements

  • PEP8 formatting GH9, managed by flake8

  • Migrated to pytest for testing

  • Migrated to Sphinx and RST for documentation

Changes

  • Merged Share and Batch classes into StockReader class - Changed top-level IexFinance function to Stock()

  • Removes simplejson, mock, and nose as dependencies.

  • Splits requirements into install requirements (requirements.txt) and testing requirements (requirements-test.txt)

  • Stocks now downloads endpoints on a per-request basis, not at instantiation

  • Adds requirement that requests must be limited to 10 endpoints at once for Stocks endpoints

Bug Fixes

  • Incorrectly rejects lists of size 51-100 GH1

  • Repaired and improved unit tests GH6

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