MENU Navbar
Logo

Getting Started

examples => `You'll find code ${examples} here.`

The IEX API is a set of services designed for developers and engineers. It can be used to build high-quality apps and services. We’re always working to improve the IEX API. Please check back for enhancements and improvements.

  1. Read the terms.
  2. Read the manual and start building.
  3. Attribute properly.

Terms

By using the IEX API, you agree to our terms.

Before we begin

Want to help run this api and help change the finance industry for the better? We’re Hiring!

Attribution

If you redistribute our API data:

  1. Cite IEX using the following text and link: “Data provided for free by IEX. View IEX’s Terms of Use.”

Additionally, if you display our TOPS price data, cite “IEX Real-Time Price” near the price.

Support

If you find any issues with our API or have any questions, please file an issue at Github

Authentication

The IEX API is currently open and does not require authentication to access its data.

Endpoints

SSL

We provide a valid, signed certificate for our API methods. Be sure your connection library supports HTTPS with the SNI extension.

HTTP methods

The IEX API only supports GET requests at this time.

Parameters

Filter results

All HTTP request endpoints support a filter parameter to return a subset of data. Pass a comma-delimited list of field names to filter. Field names are case-sensitive and are found in the Reference section of each endpoint.

Example: ?filter=symbol,volume,lastSalePrice will return only the three fields specified.

WebSockets

WebSockets example that shows a connection to the tops channel and a subscribtion to snap,fb,aig+ topics

// Import socket.io with a connection to a channel (i.e. tops)
const socket = require('socket.io-client')('https://ws-api.iextrading.com/1.0/tops')

// Listen to the channel's messages
socket.on('message', message => console.log(message))

// Connect to the channel
socket.on('connect', () => {

  // Subscribe to topics (i.e. appl,fb,aig+)
  socket.emit('subscribe', 'snap,fb,aig+')

  // Unsubscribe from topics (i.e. aig+)
  socket.emit('unsubscribe', 'aig+')
})

// Disconnect from the channel
socket.on('disconnect', () => console.log('Disconnected.'))

WebSocket support is limited at this time to Node.js server clients and socket.io browser clients. We use socket.io for our WebSocket server. The WebSocket examples in our documentation assume a socket.io browser client is being used. We’re planning to rewrite our WebSocket server for broader support.

Uptime

The IEX API cannot guarantee 100% uptime, but we strive to be highly available. If we do have downtime, we’ll tweet information from @IEXstatus.

Usage

To provide the best experience for all our users, we monitor for suspicious activity and overload. We reserve the right to revoke access to anyone who abuses the IEX API. We throttle endpoints by IP, but you should be able to achieve over 100 requests per second.

Roadmap

We are always working to improve the IEX API. Below is a list of planned enhancements for future releases. We may add or remove items at any time. If you have suggestions or if any listed items are critical for your project, please create an issue at Github.

Unofficial libraries and integrations

Below is a list of known unofficial IEX API libraries and integrations. If you’d like to have your library, integration, or app added, email us at api@iextrading.com

Language URL
C++ IEX_CPP_API
C# IEXTrading API
Excel Stock Connector by Michael Saunders
2Investing
Go go-iex
Haskell stocks
HTML Stocks!
Java IEXTrading4j
KDB iex_q
Perl Finance::Quote::IEX
Python iexfinance
iex-api-python
pyEX
iex_data
pandas-datareader
PyPI IEX
IEX with Bokeh
.NET IEXTradingApi
NodeJS iex-api
PHP iex-trading
R IEX API for R
React ticker-react
iex-api
Ruby iex-ruby-client
Rust iex-rs

Stocks

We built the IEX Stocks app using the stocks endpoints, and is an example of how this data can be used. The data provided here is sourced from IEX and multiple third-party sources. IEX does not make any guarantees, representations or warranties as to the completeness or accuracy of the data provided.

Batch Requests

HTTP request example

GET /stock/{symbol}/batch

The above example will return JSON with the following keys

// .../symbol
{
  "quote": {...},
  "news": [...],
  "chart": [...]
}

// .../market
{
  "AAPL" : {
    "quote": {...},
    "news": [...],
    "chart": [...]
  },
  "FB" : {
    "quote": {...},
    "news": [...],
    "chart": [...]
  },
}

Options

Option Description
symbol Use market to query multiple symbols (i.e. .../market/batch?...)

Parameters

Parameter Details
types • Required
• Comma delimited list of endpoints to call. The names should match the individual endpoint names. Limited to 10 types.
symbols • Optional
• Comma delimited list of symbols limited to 100. This parameter is used only if market option is used .
range • Optional
• Used to specify a chart range if chart is used in types parameter.
* • Optional
• Parameters that are sent to individual endpoints can be specified in batch calls and will be applied to each supporting endpoint.

HTTP request

Response

Responses will vary based on types requested. Refer to each endpoint for details.

Book

HTTP request example

GET /stock/{symbol}/book

The above example will return JSON with the following keys

{
  "quote": {...},
  "bids": [...],
  "asks": [...],
  "trades": [...],
  "systemEvent": {...},
}

HTTP request

Response

Response includes data from deep and quote. Refer to each endpoint for details.

Chart

HTTP request example

GET /stock/{symbol}/chart/{range}

The above example will return JSON with the following keys

// .../1d

[
    {
        "date": "20171215"
        "minute": "09:30",
        "label": "09:30 AM",
        "high": 143.98,
        "low": 143.775,
        "average": 143.889,
        "volume": 3070,
        "notional": 441740.275,
        "numberOfTrades": 20,
        "marktHigh": 143.98,
        "marketLow": 143.775,
        "marketAverage": 143.889,
        "marketVolume": 3070,
        "marketNotional": 441740.275,
        "marketNumberOfTrades": 20,
        "open": 143.98,
        "close": 143.775,
        "marktOpen": 143.98,
        "marketClose": 143.775,
        "changeOverTime": -0.0039,
        "marketChangeOverTime": -0.004
    } // , { ... }
]


// .../3m

[
    {
        "date": "2017-04-03",
        "open": 143.1192,
        "high": 143.5275,
        "low": 142.4619,
        "close": 143.1092,
        "volume": 19985714,
        "unadjustedClose": 143.7,
        "unadjustedVolume": 19985714,
        "change": 0.039835,
        "changePercent": 0.028,
        "vwap": 143.0507,
        "label": "Apr 03, 17",
        "changeOverTime": -0.0039
    } // , { ... }
]

// .../dynamic
{
  "range": "1m",
  "data": [
      {
          "date": "2017-04-03",
          "open": 143.1192,
          "high": 143.5275,
          "low": 142.4619,
          "close": 143.1092,
          "volume": 19985714,
          "unadjustedClose": 143.7,
          "unadjustedVolume": 19985714,
          "change": 0.039835,
          "changePercent": 0.028,
          "vwap": 143.0507,
          "label": "Apr 03, 17",
          "changeOverTime": -0.0039
      } // , { ... }
  ]
}

HTTP request

Options

Range Description Source
5y Five years Historically adjusted market-wide data
2y Two years Historically adjusted market-wide data
1y One year Historically adjusted market-wide data
ytd Year-to-date Historically adjusted market-wide data
6m Six months Historically adjusted market-wide data
3m Three months Historically adjusted market-wide data
1m One month (default) Historically adjusted market-wide data
1d One day IEX-only data by minute
date Specific date IEX-only data by minute for a specified date in the format YYYYMMDD if available. Currently supporting trailing 30 calendar days.
dynamic One day Will return 1d or 1m data depending on the day or week and time of day. Intraday per minute data is only returned during market hours.

Parameters

Parameter Details
chartReset • Optional
• boolean. If true, 1d chart will reset at midnight instead of the default behavior of 9:30am ET.
chartSimplify • Optional
• boolean. If true, runs a polyline simplification using the Douglas-Peucker algorithm. This is useful if plotting sparkline charts.
chartInterval • Optional
• number. If passed, chart data will return every Nth element as defined by chartInterval
changeFromClose • Optional
• boolean. If true, changeOverTime and marketChangeOverTime will be relative to previous day close instead of the first value.
chartLast • Optional
• number. If passed, chart data will return the last N elements

Response

Key Type Availability
minute string is only available on 1d chart.
marketAverage number is only available on 1d chart. 15 minute delayed
marketNotional number is only available on 1d chart. 15 minute delayed
marketNumberOfTrades number is only available on 1d chart. 15 minute delayed
marketOpen number is only available on 1d chart. 15 minute delayed
marketClose number is only available on 1d chart. 15 minute delayed
marketHigh number is only available on 1d chart. 15 minute delayed
marketLow number is only available on 1d chart. 15 minute delayed
marketVolume number is only available on 1d chart. 15 minute delayed
marketChangeOverTime number is only available on 1d chart. Percent change of each interval relative to first value. 15 minute delayed
average number is only available on 1d chart.
notional number is only available on 1d chart.
numberOfTrades number is only available on 1d chart.
simplifyFactor array is only available on 1d chart, and only when chartSimplify is true. The first element is the original number of points. Second element is how many remain after simplification.
high number is available on all charts.
low number is available on all charts.
volume number is available on all charts.
label number is available on all charts. A variable formatted version of the date depending on the range. Optional convienience field.
changeOverTime number is available on all charts. Percent change of each interval relative to first value. Useful for comparing multiple stocks.
date string is available on all charts.
open number is available on all charts.
close number is available on all charts.
unadjustedVolume number is not available on 1d chart.
change number is not available on 1d chart.
changePercent number is not available on 1d chart.
vwap number is not available on 1d chart.

Collections

HTTP request example

GET /stock/market/collection/{collectionType}

The above example will return JSON with the following keys

[
    quote,
    ...
]

Returns an array of quote objects for a given collection type. Currently supported collection types are sector, tag, and list

HTTP request

Parameters

Parameter Details
collectionName • Required
•Name of the sector, tag, or list to return and is case sensitive.
Supported lists can be found under the list section.
Supported sectors can be found under the sector-performance section.
Supported tags can be found in each stock company object.

Response

Key Type Description
quote object See the quote section.

Company

HTTP request example

GET /stock/{symbol}/company

The above example will return JSON with the following keys

{
  "symbol": "AAPL",
  "companyName": "Apple Inc.",
  "exchange": "Nasdaq Global Select",
  "industry": "Computer Hardware",
  "website": "http://www.apple.com",
  "description": "Apple Inc is an American multinational technology company. It designs, manufactures, and markets mobile communication and media devices, personal computers, and portable digital music players.",
  "CEO": "Timothy D. Cook",
  "issueType": "cs",
  "sector": "Technology",
  "tags": [
      "Technology",
      "Consumer Electronics",
      "Computer Hardware"
  ]
}

HTTP request

Response

Key Type Description
symbol string
companyName string
exchange string
industry string
website string
description string
CEO string
issueType string refers to the common issue type of the stock.
ad – American Depository Receipt (ADR’s)
re – Real Estate Investment Trust (REIT’s)
ce – Closed end fund (Stock and Bond Fund)
si – Secondary Issue
lp – Limited Partnerships
cs – Common Stock
et – Exchange Traded Fund (ETF)
(blank) = Not Available, i.e., Warrant, Note, or (non-filing) Closed Ended Funds
sector string
tags array an array of strings used to classify the company.

Crypto

HTTP request example

GET /stock/market/crypto

The above example will return JSON with the following keys

[
  quote,
  ...
]

This will return an array of quotes for all Cryptocurrencies supported by the IEX API. Each element is a standard quote object with four additional keys.

HTTP request

Response

Key Type Description
quote All standard quote keys
bidPrice number Market bid price
bidSize number Market bid size
askPrice number Market ask price
askSize number Market ask size

Delayed Quote

HTTP request example

GET /stock/{symbol}/delayed-quote

The above example will return JSON with the following keys

{
  "symbol": "AAPL",
  "delayedPrice": 143.08,
  "delayedSize": 200,
  "delayedPriceTime": 1498762739791,
  "processedTime": 1498763640156
}

This returns the 15 minute delayed market quote.

HTTP request

Response

Key Type Description
symbol string refers to the stock ticker.
delayedPrice number refers to the 15 minute delayed market price.
delayedSize number refers to the 15 minute delayed last trade size.
delayedPriceTime number refers to the time of the delayed market price.
processedTime number refers to when IEX processed the SIP price.

Dividends

HTTP request example

GET /stock/{symbol}/dividends/{range}

The above example will return JSON with the following keys


[
    {
        "exDate": "2017-08-10",
        "paymentDate": "2017-08-17",
        "recordDate": "2017-08-14",
        "declaredDate": "2017-08-01",
        "amount": 0.63,
        "type": "Dividend income",
        "qualified": "Q"
    } // , { ... }
]

HTTP request

Options

Range Description Source
5y Five years Historical market data
2y Two years Historical market data
1y One year Historical market data
ytd Year-to-date Historical market data
6m Six months Historical market data
3m Three months Historical market data
1m One month (default) Historical market data

Response

Key Type Description
exDate string refers to the dividend ex-date
paymentDate string refers to the payment date
recordDate string refers to the dividend record date
declaredDate string refers to the dividend declaration date
amount number refers to the payment amount
flag string refers to the dividend flag (FI = Final dividend, div ends or instrument ends,
LI = Liquidation, instrument liquidates,
PR = Proceeds of a sale of rights or shares,
RE = Redemption of rights,
AC = Accrued dividend,
AR = Payment in arrears,
AD = Additional payment,
EX = Extra payment,
SP = Special dividend,
YE = Year end,
UR = Unknown rate,
SU = Regular dividend is suspended)
type string refers to the dividend payment type (Dividend income, Interest income, Stock dividend, Short term capital gain, Medium term capital gain, Long term capital gain, Unspecified term capital gain)
qualified string refers to the dividend income type
P = Partially qualified income
Q = Qualified income
N = Unqualified income
null = N/A or unknown
indicated float refers to the indicated rate of the dividend

Earnings

HTTP request example

GET /stock/{symbol}/earnings

The above example will return JSON with the following keys

{
  "symbol": "AAPL",
  "earnings": [
    {
      "actualEPS": 2.1,
      "consensusEPS": 2.02,
      "estimatedEPS": 2.02,
      "announceTime": "AMC",
      "numberOfEstimates": 14,
      "EPSSurpriseDollar": 0.08,
      "EPSReportDate": "2017-05-02",
      "fiscalPeriod": "Q2 2017",
      "fiscalEndDate": "2017-03-31",
      "yearAgo": 1.67,
      "yearAgoChangePercent": .30,
      "estimatedChangePercent": .28,
      "symbolId": 11
    },
    {
      "actualEPS": 3.36,
      "consensusEPS": 3.22,
      "estimatedEPS": 3.22,
      "announceTime": "AMC",
      "numberOfEstimates": 15,
      "EPSSurpriseDollar": 0.14,
      "EPSReportDate": "2017-01-31",
      "fiscalPeriod": "Q1 2017",
      "fiscalEndDate": "2016-12-31",
      "yearAgo": 1.67,
      "yearAgoChangePercent": .30,
      "estimatedChangePercent": .28,
      "symbolId": 11
    },
  ]
}

Pulls data from the four most recent reported quarters.

HTTP request

Response

Key Type Description
actualEPS number Actual earnings per share for the period
consensusEPS number Consensus EPS estimate trend for the period
estimatedEPS number Earnings per share estimate for the period
announceTime string Time of earnings announcement. BTO (Before open), DMT (During trading), AMC (After close)
numberOfEstimates number Number of estimates for the period
EPSSurpriseDollar number Dollar amount of EPS surprise for the period
EPSReportDate string Expected earnings report date YYYY-MM-DD
fiscalPeriod string The fiscal quarter the earnings data applies to Q# YYYY
fiscalEndDate string Date representing the company fiscal quarter end YYYY-MM-DD
yearAgo number Represents the EPS of the quarter a year ago
yearAgoChangePercent number Represents the percent difference between the quarter a year ago actualEPS and current period actualEPS.
estimatedChangePercent number Represents the percent difference between the quarter a year ago actualEPS and current period estimatedEPS.
symbolId number Represents the IEX id for the stock

Earnings Today

HTTP request example

GET /stock/market/today-earnings

The above example will return JSON with the following keys

{
  "bto": [
    {
      "actualEPS": 2.1,
      "consensusEPS": 2.02,
      "estimatedEPS": 2.02,
      "announceTime": "BTO",
      "numberOfEstimates": 14,
      "EPSSurpriseDollar": 0.08,
      "EPSReportDate": "2017-05-02",
      "fiscalPeriod": "Q2 2017",
      "fiscalEndDate": "2017-03-31",
      "yearAgo": 1.67,
      "yearAgoChangePercent": .30,
      "estimatedChangePercent": .28,
      "symbolId": 11,
      "symbol": "AAPL",
      "quote": {
          ...
      },
      "headline": ""
    },
    ...
  ],
  "amc": [
    {
      "actualEPS": 3.36,
      "consensusEPS": 3.22,
      "estimatedEPS": 3.22,
      "announceTime": "AMC",
      "numberOfEstimates": 15,
      "EPSSurpriseDollar": 0.14,
      "EPSReportDate": "2017-05-02",
      "fiscalPeriod": "Q2 2017",
      "fiscalEndDate": "2017-03-31",
      "yearAgo": 1.67,
      "yearAgoChangePercent": .30,
      "estimatedChangePercent": .28,
      "symbolId": 1,
      "symbol": "A",
      "quote": {
          ...
      },
      "headline": ""
    },
    ...
  ]
}

Returns earnings that will be reported today as two arrays: before the open bto and after market close amc. Each array contains an object with all keys from earnings, a quote object, and a headline key.

HTTP request

Response

Key Type Description
actualEPS number Actual earnings per share for the period
consensusEPS number Consensus EPS estimate trend for the period
estimatedEPS number Earnings per share estimate for the period
announceTime string Time of earnings announcement. BTO (Before open), DMT (During trading), AMC (After close)
numberOfEstimates number Number of estimates for the period
EPSSurpriseDollar number Dollar amount of EPS surprise for the period
EPSReportDate string Expected earnings report date YYYY-MM-DD
fiscalPeriod string The fiscal quarter the earnings data applies to Q# YYYY
fiscalEndDate string Date representing the company fiscal quarter end YYYY-MM-DD
yearAgo number Represents the EPS of the quarter a year ago
yearAgoChangePercent number Represents the percent difference between the quarter a year ago actualEPS and current period actualEPS
estimatedChangePercent number Represents the percent difference between the quarter a year ago actualEPS and current period estimatedEPS
symbolId string Represents the IEX id for the stock
symbol string The symbol the earning relates to
quote object See quote
headline string Look back of the last few news items and returns the headline of an article that mentions the earnings result. Useful for display the result of an earnings announcement before the data is available in the API.

Effective Spread

HTTP request example

GET /stock/{symbol}/effective-spread

The above example will return JSON with the following keys

[
  {
    "volume": 4899,
    "venue": "XCHI",
    "venueName": "CHX",
    "effectiveSpread": 0.02253725,
    "effectiveQuoted": 0.9539362,
    "priceImprovement": 0.0008471116999999999
  },
  {
    "volume": 9806133,
    "venue": "XBOS",
    "venueName": "NASDAQ BX",
    "effectiveSpread": 0.0127343,
    "effectiveQuoted": 0.9313967,
    "priceImprovement": 0.0007373158
  },
  {
    "volume": 6102991,
    "venue": "IEXG",
    "venueName": "IEX",
    "effectiveSpread": 0.005881705,
    "effectiveQuoted": 0.4532043,
    "priceImprovement": 0.003949427
  }
]

This returns an array of effective spread, eligible volume, and price improvement of a stock, by market. Unlike volume-by-venue, this will only return a venue if effective spread is not ‘N/A’. Values are sorted in descending order by effectiveSpread. Lower effectiveSpread and higher priceImprovement values are generally considered optimal.

Effective spread is designed to measure marketable orders executed in relation to the market center’s quoted spread and takes into account hidden and midpoint liquidity available at each market center. Effective Spread is calculated by using eligible trade prices recorded to the consolidated tape and comparing those trade prices to the National Best Bid and Offer (“NBBO”) at the time of the execution.

View the data disclaimer at the bottom of the stocks app for more information about how these values are calculated.

HTTP request

Response

Key Type Description
volume string refers to the eligible shares used for calculating effectiveSpread and priceImprovement
venue string refers to the Market Identifier Code (MIC)
venueName string refers to a readable version of the venue defined by IEX
effectiveSpread number is designed to measure marketable orders executed in relation to the market center’s quoted spread and takes into account hidden and midpoint liquidity available at each market center in dollars
effectiveQuoted number a ratio calculated by dividing a market center’s effective spread by the NBBO quoted spread
priceImprovement number the average amount of price improvement in dollars per eligible share executed

Financials

HTTP request example

GET /stock/{symbol}/financials

The above example will return JSON with the following keys

{
  "symbol": "AAPL",
  "financials": [
    {
      "reportDate": "2017-03-31",
      "grossProfit": 20591000000,
      "costOfRevenue": 32305000000,
      "operatingRevenue": 52896000000,
      "totalRevenue": 52896000000,
      "operatingIncome": 14097000000,
      "netIncome": 11029000000,
      "researchAndDevelopment": 2776000000,
      "operatingExpense": 6494000000,
      "currentAssets": 101990000000,
      "totalAssets": 334532000000,
      "totalLiabilities": 200450000000,
      "currentCash": 15157000000,
      "currentDebt": 13991000000,
      "totalCash": 67101000000,
      "totalDebt": 98522000000,
      "shareholderEquity": 134082000000,
      "cashChange": -1214000000,
      "cashFlow": 12523000000,
      "operatingGainsLosses": null
    } // , { ... }
  ]
}

Pulls income statement, balance sheet, and cash flow data from the four most recent reported quarters.

HTTP request

Parameters

Parameter Details
period • Optional
• string. Allows you to specify annual or quarterly financials. Defaults to quarterly. Values should be annual or quarter

Response

Key Type
reportDate string
grossProfit number
costOfRevenue number
operatingRevenue number
totalRevenue number
operatingIncome number
netIncome number
researchAndDevelopment number
operatingExpense number
currentAssets number
totalAssets number
totalLiabilities number
currentCash number
currentDebt number
totalCash number
totalDebt number
shareholderEquity number
cashChange number
cashFlow number
operatingGainsLosses string

Historical prices

HTTP request example

Refer to chart

IPO Calendar

HTTP request example

GET /stock/market/upcoming-ipos
GET /stock/market/today-ipos

The above example will return JSON with the following keys

{
    "rawData": [
        {
            "symbol": "VCNX",
            "companyName": "VACCINEX, INC.",
            "expectedDate": "2018-08-09",
            "leadUnderwriters": [
                "BTIG, LLC",
                "Oppenheimer & Co. Inc."
            ],
            "underwriters": [
                "Ladenburg Thalmann & Co. Inc."
            ],
            "companyCounsel": [
                "Hogan Lovells US LLP and Harter Secrest & Emery LLP"
            ],
            "underwriterCounsel": [
                "Mintz, Levin, Cohn, Ferris, Glovsky and Popeo, P.C."
            ],
            "auditor": "Computershare Trust Company, N.A",
            "market": "NASDAQ Global",
            "cik": "0001205922",
            "address": "1895 MOUNT HOPE AVE",
            "city": "ROCHESTER",
            "state": "NY",
            "zip": "14620",
            "phone": "585-271-2700",
            "ceo": "Maurice Zauderer",
            "employees": 44,
            "url": "www.vaccinex.com",
            "status": "Filed",
            "sharesOffered": 3333000,
            "priceLow": 12,
            "priceHigh": 15,
            "offerAmount": null,
            "totalExpenses": 2400000,
            "sharesOverAlloted": 499950,
            "shareholderShares": null,
            "sharesOutstanding": 11474715,
            "lockupPeriodExpiration": "",
            "quietPeriodExpiration": "",
            "revenue": 206000,
            "netIncome": -7862000,
            "totalAssets": 4946000,
            "totalLiabilities": 6544000,
            "stockholderEquity": -133279000,
            "companyDescription": "",
            "businessDescription": "",
            "useOfProceeds": "",
            "competition": "",
            "amount": 44995500,
            "percentOffered": "29.05"
        },
        ...
    ],
    "viewData": [
        {
            "Company": "VACCINEX, INC.",
            "Symbol": "VCNX",
            "Price": "$12.00 - 15.00",
            "Shares": "3,333,000",
            "Amount": "44,995,500",
            "Float": "11,474,715",
            "Percent": "29.05%",
            "Market": "NASDAQ Global",
            "Expected": "2018-08-09"
        },
        ...
    ]
}

This returns a list of upcoming or today IPOs scheduled for the current and next month. The response is split into two structures: rawData and viewData. rawData represents all available data for an IPO. viewData represents data structured for display to a user.

HTTP request

Response

Key Type Description
symbol string refers to the IPO symbol.
companyName string refers to the name of the IPO company.
expectedDate string refers to the date the IPO is expected to start trading.
leadUnderwriters array refers to the list of investment banks leading the IPO.
underwriters array refers to the list of investment banks underwriting the IPO.
companyCounsel array refers to the list of legal firms representing the company.
underwriterCounsel array refers to the list of legal firms representing the underwriter.
auditor string refers to the auditing firm for the company.
market string refers to the exchange listing the IPO.
cik string refers to the Central Index Key assigned by the SEC to identify filings.
address string refers to the company address.
city string refers to the company city.
state string refers to the company state.
zip string refers to the company zip code.
phone string refers to the company phone number.
ceo string refers to the name of the company CEO.
employees number refers to the number of employees in the company.
url string refers to the URL of the company website.
status string refers to the filing status of the SEC Form S-1.
sharesOffered number refers to the number of shares offered in the IPO.
priceLow number refers to the low end estimate of IPO share price. On the day of the IPO, this will be the syndicate price which is used similarly to previousClose to determine change versus current price.
priceHigh number refers to the high end estimate of IPO share price. On the day of the IPO, this value may be null.
offerAmount number refers to the notional value of the IPO in dollars.
totalExpenses number refers to company total expenses in dollars.
sharesOverAlloted number refers to number of shares alloted by underwriters in excess of IPO offering.
shareholderShares number refers to number of shares offered by existing shareholders.
sharesOutstanding number refers to the total number of company shares outstanding.
lockupPeriodExpiration string refers to the date of insider lockup period expiration.
quietPeriodExpiration string refers to the date following IPO when company quiet period expires.
revenue number refers to company revenue in dollars.
netIncome number refers to company net income in dollars.
totalAssets number refers to company total assets in dollars.
totalLiabilities number refers to company total liabilities in dollars.
stockholderEquity number refers to stock holder equity in dollars.
companyDescription string description of the company.
businessDescription string description of the company’s business.
useOfProceeds string description of the company’s planned use of proceeds from the IPO.
competition string description of the company’s competition.
amount number refers to the notional value of shares offered * average share price in dollars.
percentOffered string refers to the percent of outstanding shares being offered as a whole number.
Company string same as companyName
Symbol string same as symbol
Price string formatted as $priceLow - priceHigh
Shares string same as sharesOffered
Amount string same as amount
Float string same as sharesOutstanding
Percent string same as percentOffered
Market string same as market
Expected string same as expectedDate

IEX Regulation SHO Threshold Securities List

HTTP request example

GET /stock/{symbol}/threshold-securities

The above example will return JSON with the following keys

[
  {
    "TradeDate": "20171013",
    "SymbolinINET Symbology": "ZIEXT",
    "SymbolinCQS Symbology": "ZIEXT",
    "SymbolinCMS Symbology": "ZIEXT",
    "SecurityName": "ZIEXT Common Stock"
  },
  {...}
]

The following are IEX-listed securities that have an aggregate fail to deliver position for five consecutive settlement days at a registered clearing agency, totaling 10,000 shares or more and equal to at least 0.5% of the issuer’s total shares outstanding (i.e., “threshold securities”).
The report data will be published to the IEX website daily at 8:30 p.m. ET with data for that trading day.

HTTP request

Options

Range Description Source
date Specific date Daily list data for a specified date in the format YYYYMMDD,if available, or sample. If sample, a sample file will be returned

Parameters

Parameter Details
format • Parameter is optional
• Value can be csv or psv
• When parameter is not present, format defaults to JSON
token • Parameter is optional
• Value is the API token from your IEX user account
• If you have been permissioned for CUSIP information you’ll receive a CUSIP field, othewise data defaults to exclude CUSIP.

Response

Refer to the Threshold Securities specification for further details

IEX Short Interest List

HTTP request example

GET /stock/{symbol}/short-interest

The above example will return JSON with the following keys

[
  {
    "SettlementDate": "20171013",
    "SecurityName": "ZIEXT Common Stock",
    "CurrentShortInterest": 5363,
    "PreviousShortInterest": 5730,
    "PercentChange": -0.064049,
    "AverageDailyVolume": 2113,
    "DaystoCover": 2.54,
    "StockAdjustmentFlag": "N",
    "RevisionFlag": "N",
    "SymbolinINETSymbology": "ZIEXT",
    "SymbolinCQSSymbology": "ZIEXT",
    "SymbolinCMSSymbology": "ZIEXT",
    "NewIssueFlag": "N",
    "CompanyName": "ZIEXT Test Company"
  },
  {...}
]

The consolidated market short interest positions in all IEX-listed securities are included in the IEX Short Interest Report.

The report data will be published daily at 4:00pm ET.

HTTP request

Options

Range Description Source
date Specific date Daily list data for a specified date in the format YYYYMMDD,if available, or sample. If sample, a sample file will be returned

Parameters

Parameter Details
format • Parameter is optional
• Value can be csv or psv
• When parameter is not present, format defaults to JSON
token • Parameter is optional
• Value is the API token from your IEX user account
• If you have been permissioned for CUSIP information you’ll receive a CUSIP field, othewise data defaults to exclude CUSIP.

Response

Refer to the Short Interest specification for further details

Key Stats

HTTP request example

GET /stock/{symbol}/stats

The above example will return JSON with the following keys

{
  "companyName": "Apple Inc.",
  "marketcap": 760334287200,
  "beta": 1.295227,
  "week52high": 156.65,
  "week52low": 93.63,
  "week52change": 58.801903,
  "shortInterest": 55544287,
  "shortDate": "2017-06-15",
  "dividendRate": 2.52,
  "dividendYield": 1.7280395,
  "exDividendDate": "2017-05-11 00:00:00.0",
  "latestEPS": 8.29,
  "latestEPSDate": "2016-09-30",
  "sharesOutstanding": 5213840000,
  "float": 5203997571,
  "returnOnEquity": 0.08772939519857577,
  "consensusEPS": 3.22,
  "numberOfEstimates": 15,
  "symbol": "AAPL",
  "EBITDA": 73828000000,
  "revenue": 220457000000,
  "grossProfit": 84686000000,
  "cash": 256464000000,
  "debt": 358038000000,
  "ttmEPS": 8.55,
  "revenuePerShare": 42.2830389885382,
  "revenuePerEmployee": 1900491.3793103448,
  "peRatioHigh": 25.5,
  "peRatioLow": 8.7,
  "EPSSurpriseDollar": null,
  "EPSSurprisePercent": 3.9604,
  "returnOnAssets": 14.15,
  "returnOnCapital": null,
  "profitMargin": 20.73,
  "priceToSales": 3.6668503,
  "priceToBook": 6.19,
  "day200MovingAvg": 140.60541,
  "day50MovingAvg": 156.49678,
  "institutionPercent": 32.1,
  "insiderPercent": null,
  "shortRatio": 1.6915414,
  "year5ChangePercent": 0.5902546932200027,
  "year2ChangePercent": 0.3777449874142869,
  "year1ChangePercent": 0.39751716851558366,
  "ytdChangePercent": 0.36659492036160124,
  "month6ChangePercent": 0.12208398133748043,
  "month3ChangePercent": 0.08466584665846649,
  "month1ChangePercent": 0.009668596145283263,
  "day5ChangePercent": -0.005762605699968781
}

HTTP request

Response

Key Type Description
companyName string
marketcap number is not calculated in real time.
beta number
week52high number
week52low number
week52change number
shortInterest number
shortDate string
dividendRate number
dividendYield number
exDividendDate string
latestEPS number (Most recent quarter)
latestEPSDate string
sharesOutstanding number
float number
returnOnEquity number (Trailing twelve months)
consensusEPS number (Most recent quarter)
numberOfEstimates number (Most recent quarter)
symbol string
EBITDA number (Trailing twelve months)
revenue number (Trailing twelve months)
grossProfit number (Trailing twelve months)
cash number reers to total cash. (Trailing twelve months)
debt number refers to total debt. (Trailing twelve months)
ttmEPS number (Trailing twelve months)
revenuePerShare number (Trailing twelve months)
revenuePerEmployee number (Trailing twelve months)
peRatioHigh number
peRatioLow number
EPSSurpriseDollar number refers to the difference between actual EPS and consensus EPS in dollars.
EPSSurprisePercent number refers to the percent difference between actual EPS and consensus EPS.
returnOnAssets number (Trailing twelve months)
returnOnCapital number (Trailing twelve months)
profitMargin number
priceToSales number
priceToBook number
day200MovingAvg number
day50MovingAvg number
institutionPercent number represents top 15 institutions
insiderPercent number
shortRatio number
year5ChangePercent number
year2ChangePercent number
year1ChangePercent number
ytdChangePercent number
month6ChangePercent number
month3ChangePercent number
month1ChangePercent number
day5ChangePercent number

Largest Trades

HTTP request example

GET /stock/{symbol}/largest-trades

The above example will return JSON with the following keys

[
  {
    "price": 186.39,
    "size": 10000,
    "time": 1527090690175,
    "timeLabel": "11:51:30",
    "venue": "EDGX",
    "venueName": "Cboe EDGX"
  },
  ...
]

This returns 15 minute delayed, last sale eligible trades.

HTTP request

Response

Key Type Description
price number refers to the price of the trade.
size number refers to the number of shares of the trade.
time number refers to the time of the trade.
timeLabel string formatted time string as HH:MM:SS
venue string refers to the venue where the trade occurred. None refers to a TRF (off exchange) trade.
venueName string formatted venue name where the trade occurred.

List

HTTP request example

GET /stock/market/list

The above example will return JSON with the following keys

[
  {
      "symbol": "AAPL",
      "companyName": "Apple Inc.",
      "primaryExchange": "Nasdaq Global Select",
      "sector": "Technology",
      "calculationPrice": "tops",
      "latestPrice": 158.73,
      "latestSource": "Previous close",
      "latestTime": "September 19, 2017",
      "latestUpdate": 1505779200000,
      "latestVolume": 20567140,
      "iexRealtimePrice": 158.71,
      "iexRealtimeSize": 100,
      "iexLastUpdated": 1505851198059,
      "delayedPrice": 158.71,
      "delayedPriceTime": 1505854782437,
      "previousClose": 158.73,
      "change": -1.67,
      "changePercent": -0.01158,
      "iexMarketPercent": 0.00948,
      "iexVolume": 82451,
      "avgTotalVolume": 29623234,
      "iexBidPrice": 153.01,
      "iexBidSize": 100,
      "iexAskPrice": 158.66,
      "iexAskSize": 100,
      "marketCap": 751627174400,
      "peRatio": 16.86,
      "week52High": 159.65,
      "week52Low": 93.63,
      "ytdChange": 0.3665,
  } // , { ... }
]

Returns an array of quotes for the top 10 symbols in a specified list.

HTTP request

Parameters

Parameter Details
displayPercent • Optional
• If set to true, all percentage values will be multiplied by a factor of 100 (Ex: /stock/aapl/quote?displayPercent=true)

Response

Refer to the quote section.

HTTP request example

GET /stock/{symbol}/logo

The above example will return JSON with the following keys

{
  "url": "https://storage.googleapis.com/iex/api/logos/AAPL.png"
}

This is a helper function, but the google APIs url is standardized.

HTTP request

Response

Key Type
url string

News

HTTP request example

GET /stock/{symbol}/news/last/{last}

The above example will return JSON with the following keys

[
  {
    "datetime": "2017-06-29T13:14:22-04:00",
    "headline": "Voice Search Technology Creates A New Paradigm For Marketers",
    "source": "Benzinga via QuoteMedia",
    "url": "https://api.iextrading.com/1.0/stock/aapl/article/8348646549980454",
    "summary": "<p>Voice search is likely to grow by leap and bounds, with technological advancements leading to better adoption and fueling the growth cycle, according to Lindsay Boyajian, <a href=\"http://loupventures.com/how-the-future-of-voice-search-affects-marketers-today/\">a guest contributor at Loup Ventu...",
    "related": "AAPL,AMZN,GOOG,GOOGL,MSFT",
    "image": "https://api.iextrading.com/1.0/stock/aapl/news-image/7594023985414148"
  }
]

Options

Option Description
symbol Use market to get market-wide news (i.e. .../market/news/...)
last Number between 1 and 50. Default is 10. (i.e. .../news/last/1)

HTTP request

Response

Key Type Description
datetime string 
headline string 
source string  Source of the news article. Make sure to always attribute the source.
url string 
summary string 
related string  Comma-delimited list of tickers associated with this news article. Not all tickers are available on the API. Make sure to check against available ref-data
image string  URL of associated news image

OHLC

HTTP request example

GET /stock/{symbol}/ohlc

The above example will return JSON with the following keys

{
  "open": {
    "price": 154,
    "time": 1506605400394
  },
  "close": {
    "price": 153.28,
    "time": 1506605400394
  },
  "high": 154.80,
  "low": 153.25
}

Returns the official open and close for a give symbol.

HTTP request

Response

Key Type Description
price number refers to the official open or close price
high number refers to the market-wide highest price from the SIP (15 minute delayed)
low number refers to the market-wide lowest price from the SIP (15 minute delayed)
time number refers to the official listing exchange time for the open or close

Open / Close

HTTP request example

Refer to ohlc

Peers

HTTP request example

GET /stock/{symbol}/peers

The above example will return an array

[
    "MSFT",
    "NOK",
    "IBM",
    "BBRY",
    "HPQ",
    "GOOGL",
    "XLK"
]

HTTP request

Response

An array of peer tickers as defined by IEX. This is not intended to represent a definitive or accurate list of peers, and is subject to change at any time.

Previous

HTTP request example

GET /stock/{symbol}/previous

The above example will return JSON with the following keys

{
  "symbol": "AAPL",
  "date": "2017-09-19",
  "open": 159.51,
  "high": 159.77,
  "low": 158.44,
  "close": 158.73,
  "volume": 20810632,
  "unadjustedVolume": 20810632,
  "change": 0.06,
  "changePercent": 0.038,
  "vwap": 158.9944
}

This returns previous day adjusted price data for a single stock, or an object keyed by symbol of price data for the whole market.

HTTP request

Response

Key Type Description
symbol string refers to the stock ticker.
date string refers to the date of the returned data in the format YYYY-MM-DD
open number
high number
low number
close number
volume number adjusted for splits
unadjustedVolume number
change number
changePercent number
vwap number Volume weighted average price

Price

HTTP request example

GET /stock/{symbol}/price

The above example will return a number

143.28

HTTP request

Response

A single number, being the IEX real time price, the 15 minute delayed market price, or the previous close price, is returned.

Quote

HTTP request example

GET /stock/{symbol}/quote

The above example will return JSON with the following keys

{
  "symbol": "AAPL",
  "companyName": "Apple Inc.",
  "primaryExchange": "Nasdaq Global Select",
  "sector": "Technology",
  "calculationPrice": "tops",
  "open": 154,
  "openTime": 1506605400394,
  "close": 153.28,
  "closeTime": 1506605400394,
  "high": 154.80,
  "low": 153.25,
  "latestPrice": 158.73,
  "latestSource": "Previous close",
  "latestTime": "September 19, 2017",
  "latestUpdate": 1505779200000,
  "latestVolume": 20567140,
  "iexRealtimePrice": 158.71,
  "iexRealtimeSize": 100,
  "iexLastUpdated": 1505851198059,
  "delayedPrice": 158.71,
  "delayedPriceTime": 1505854782437,
  "extendedPrice": 159.21,
  "extendedChange": -1.68,
  "extendedChangePercent": -0.0125,
  "extendedPriceTime": 1527082200361,
  "previousClose": 158.73,
  "change": -1.67,
  "changePercent": -0.01158,
  "iexMarketPercent": 0.00948,
  "iexVolume": 82451,
  "avgTotalVolume": 29623234,
  "iexBidPrice": 153.01,
  "iexBidSize": 100,
  "iexAskPrice": 158.66,
  "iexAskSize": 100,
  "marketCap": 751627174400,
  "peRatio": 16.86,
  "week52High": 159.65,
  "week52Low": 93.63,
  "ytdChange": 0.3665,
}

HTTP request

Parameters

Parameter Details
displayPercent • Optional
• If set to true, all percentage values will be multiplied by a factor of 100 (Ex: /stock/aapl/quote?displayPercent=true)

Response

Key Type Description
symbol string refers to the stock ticker.
companyName string refers to the company name.
primaryExchange string refers to the primary listings exchange.
sector string refers to the sector of the stock.
calculationPrice string refers to the source of the latest price.
("tops", "sip", "previousclose" or "close")
open number refers to the official open price
openTime number refers to the official listing exchange time for the open
close number refers to the official close price
closeTime number refers to the official listing exchange time for the close
high number refers to the market-wide highest price from the SIP. 15 minute delayed
low number refers to the market-wide lowest price from the SIP. 15 minute delayed
latestPrice number refers to the latest price being the IEX real time price, the 15 minute delayed market price, or the previous close price.
latestSource string refers to the source of latestPrice.
("IEX real time price", "15 minute delayed price", "Close" or "Previous close")
latestTime string refers to a human readable time of the latestPrice. The format will vary based on latestSource.
latestUpdate number refers to the update time of latestPrice in milliseconds since midnight Jan 1, 1970.
latestVolume number refers to the total market volume of the stock.
iexRealtimePrice number refers to last sale price of the stock on IEX. (Refer to the attribution section above.)
iexRealtimeSize number refers to last sale size of the stock on IEX.
iexLastUpdated number refers to the last update time of the data in milliseconds since midnight Jan 1, 1970 UTC or -1 or 0. If the value is -1 or 0, IEX has not quoted the symbol in the trading day.
delayedPrice number refers to the 15 minute delayed market price during normal market hours 9:30 - 16:00.
delayedPriceTime number refers to the time of the delayed market price during normal market hours 9:30 - 16:00.
extendedPrice number refers to the 15 minute delayed market price outside normal market hours 8:00 - 9:30 and 16:00 - 17:00.
extendedChange number is calculated using extendedPrice from calculationPrice.
extendedChangePercent number is calculated using extendedPrice from calculationPrice.
extendedPriceTime number refers to the time of the delayed market price outside normal market hours 8:00 - 9:30 and 16:00 - 17:00.
change number is calculated using calculationPrice from previousClose.
changePercent number is calculated using calculationPrice from previousClose.
iexMarketPercent number refers to IEX’s percentage of the market in the stock.
iexVolume number refers to shares traded in the stock on IEX.
avgTotalVolume number refers to the 30 day average volume on all markets.
iexBidPrice number refers to the best bid price on IEX.
iexBidSize number refers to amount of shares on the bid on IEX.
iexAskPrice number refers to the best ask price on IEX.
iexAskSize number refers to amount of shares on the ask on IEX.
marketCap number is calculated in real time using calculationPrice.
peRatio number is calculated in real time using calculationPrice.
week52High number refers to the adjusted 52 week high.
week52Low number refers to the adjusted 52 week low.
ytdChange number refers to the price change percentage from start of year to previous close.

Relevant

HTTP request example

GET /stock/{symbol}/relevant

The above example will return an object

{
  "peers": true,
  "symbols": [
      "MSFT",
      "NOK",
      "IBM",
      "BBRY",
      "HPQ",
      "GOOGL",
      "XLK"
  ]
}

HTTP request

Response

Similar to the peers endpoint, except this will return most active market symbols when peers are not available. If the symbols returned are not peers, the peers key will be false. This is not intended to represent a definitive or accurate list of peers, and is subject to change at any time.

Sector Performance

HTTP request example

GET /stock/market/sector-performance

The above example will return JSON with the following keys

[
  {
    "type": "sector",
    "name": "Industrials",
    "performance": 0.00711,
    "lastUpdated": 1533672000437
  },
  ...
]

This returns an array of each sector and performance for the current trading day. Performance is based on each sector ETF.

HTTP request

Response

Key Type Description
type string The type of performance data return. Should always be sector
name string The name of the sector
performance number Change percent of the sector for the trading day.
lastUpdated number Last updated time of the performance metric represented as millisecond epoch.

Splits

HTTP request example

GET /stock/{symbol}/splits/{range}

The above example will return JSON with the following keys


[
    {
        "exDate": "2017-08-10",
        "declaredDate": "2017-08-01",
        "recordDate": "2017-08-14",
        "paymentDate": "2017-08-17",
        "ratio": 0.142857,
        "toFactor": 7,
        "forFactor": 1
    } // , { ... }
]

HTTP request

Options

Range Description Source
5y Five years Historical market data
2y Two years Historical market data
1y One year Historical market data
ytd Year-to-date Historical market data
6m Six months Historical market data
3m Three months Historical market data
1m One month (default) Historical market data

Response

Key Type Description
exDate string refers to the split ex-date
declaredDate string refers to the split declaration date
recordDate string refers to the split record date
paymentDate string refers to the split payment date
ratio number refers to the split ratio. The split ratio is an inverse of the number of shares that a holder of the stock would have after the split divided by the number of shares that the holder had before.

For example: Split ratio of .5 = 2 for 1 split.
toFactor string To factor of the split. Used to calculate the split ratio forfactor/tofactor = ratio (eg ½ = 0.5)
forFactor string For factor of the split. Used to calculate the split ratio forfactor/tofactor = ratio (eg ½ = 0.5)

Time Series

HTTP request example

GET /stock/{symbol}/time-series

HTTP request

Response

time-series is an alternate way to access the chart endpoint.

Volume by Venue

HTTP request example

GET /stock/{symbol}/delayed-quote

The above example will return JSON with the following keys

[
  {
    "volume": 0,
    "venue": "XNYS",
    "venueName": "NYSE",
    "marketPercent": 0,
    "avgMarketPercent": 0,
    "date": "N/A"
  },
  {
    "volume": 21655,
    "venue": "XASE",
    "venueName": "NYSE American",
    "date": "2017-09-19",
    "marketPercent": 0.0010540470343969304,
    "avgMarketPercent": 0.0021596513337820305
  },
  {
    "volume": 164676,
    "venue": "EDGA",
    "venueName": "EDGA",
    "date": "2017-09-19",
    "marketPercent": 0.008015527565751508,
    "avgMarketPercent": 0.007070162857518009
  },
  {
    "volume": 253600,
    "venue": "XCHI",
    "venueName": "CHX",
    "date": "2017-09-19",
    "marketPercent": 0.01234386182974193,
    "avgMarketPercent": 0.019123040706393757
  },
  {
    "volume": 289791,
    "venue": "IEXG",
    "venueName": "IEX",
    "date": "2017-09-19",
    "marketPercent": 0.014105441890783691,
    "avgMarketPercent": 0.01080806673166022
  },
  {
    "volume": 311580,
    "venue": "XPHL",
    "venueName": "NASDAQ PSX",
    "date": "2017-09-19",
    "marketPercent": 0.0151660113127405,
    "avgMarketPercent": 0.010991446666811688
  },
  {
    "volume": 479457,
    "venue": "XBOS",
    "venueName": "NASDAQ BX",
    "date": "2017-09-19",
    "marketPercent": 0.02333734606191868,
    "avgMarketPercent": 0.016846380315025656
  },
  {
    "volume": 501842,
    "venue": "BATY",
    "venueName": "BATS BYX",
    "date": "2017-09-19",
    "marketPercent": 0.024426925506156744,
    "avgMarketPercent": 0.020187355701732888
  },
  {
    "volume": 1242757,
    "venue": "BATS",
    "venueName": "BATS BZX",
    "date": "2017-09-19",
    "marketPercent": 0.06049061788621685,
    "avgMarketPercent": 0.060993172098918684
  },
  {
    "volume": 1865376,
    "venue": "ARCX",
    "venueName": "NYSE Arca",
    "date": "2017-09-19",
    "marketPercent": 0.09079630758878819,
    "avgMarketPercent": 0.07692002795005641
  },
  {
    "volume": 1951116,
    "venue": "EDGX",
    "venueName": "EDGX",
    "date": "2017-09-19",
    "marketPercent": 0.09496966213643043,
    "avgMarketPercent": 0.09297590135910822
  },
  {
    "volume": 5882545,
    "venue": "XNGS",
    "venueName": "NASDAQ",
    "date": "2017-09-19",
    "marketPercent": 0.2863301367793346,
    "avgMarketPercent": 0.27436519408402665
  },
  {
    "volume": 7580229,
    "venue": "TRF",
    "venueName": "Off Exchange",
    "date": "2017-09-19",
    "marketPercent": 0.36896411440773996,
    "avgMarketPercent": 0.40847022134435956
  }
]

This returns 15 minute delayed and 30 day average consolidated volume percentage of a stock, by market. This call will always return 13 values, and will be sorted in ascending order by current day trading volume percentage.

HTTP request

Response

Key Type Description
volume number refers to the current day, 15 minute delayed volume
venue string refers to the Market Identifier Code (MIC)
venueName string refers to a readable version of the venue defined by IEX
date string refers to the date the data was last updated in the format YYYY-MM-DD
marketPercent number refers to the 15 minute delayed percent of total stock volume traded by the venue
avgMarketPercent number refers to the 30 day average percent of total stock volume traded by the venue

Reference Data

For an example of an app that’s using ref data, see our eligible symbols reference.

Symbols

HTTP request example

GET /ref-data/symbols

The above example will return JSON with the following keys

[
  {
    "symbol": "A",
    "name": "AGILENT TECHNOLOGIES INC",
    "date": "2017-04-19",
    "isEnabled": true,
    "type": "cs",
    "iexId": "1"
  },
  {
    "symbol": "AA",
    "name": "ALCOA CORP",
    "date": "2017-04-19",
    "isEnabled": true,
    "type": "cs",
    "iexId": "12042"
  }
]

This call returns an array of symbols IEX supports for trading. This list is updated daily as of 7:45 a.m. ET. Symbols may be added or removed by IEX after the list was produced.

HTTP request

/ref-data/symbols

Parameters

Parameter Details
format • Parameter is optional
• Value can only be csv
• When parameter is not present, format defaults to JSON

Response

Key Description
symbol refers to the symbol represented in Nasdaq Integrated symbology (INET).
name refers to the name of the company or security.
date refers to the date the symbol reference data was generated.
isEnabled will be true if the symbol is enabled for trading on IEX.
type refers to the common issue type (AD - ADR
RE - REIT
CE - Closed end fund
SI - Secondary Issue
LP - Limited Partnerships
CS - Common Stock
ET - ETF)
iexId unique ID applied by IEX to track securities through symbol changes.

IEX Corporate Actions

HTTP request example

GET /ref-data/daily-list/symbol-directory

The above example will return JSON with the following keys

[
  {
    "RecordID": " CA20171108153808144",
    "DailyListTimestamp": "2017-11-08T17:00:00",
    "EffectiveDate": "2017-11-10",
    "IssueEvent": "AA",
    "CurrentSymbolinINETSymbology": "ZEXIT-",
    "CurrentSymbolinCQSSymbology": "ZEXITp",
    "CurrentSymbolinCMSSymbology": "ZEXIT PR",
    "NewSymbolinINETSymbology": "",
    "NewSymbolinCQSSymbology": "",
    "NewSymbolinCMSSymbology": "",
    "CurrentSecurityName": "ZEXIT Preffered Stock",
    "NewSecurityName": "",
    "CurrentCompanyName": "ZEXIT Test Company",
    "NewCompanyName": "",
    "CurrentListingCenter": "",
    "NewListingCenter": "V",
    "DelistingReason": "",
    "CurrentRoundLotSize": "100",
    "NewRoundLotSize": "",
    "CurrentLULDTierIndicator": "0",
    "NewLULDTierIndicator": "",
    "ExpirationDate": "0",
    "SeparationDate": "0",
    "SettlementDate": "0",
    "MaturityDate": "0",
    "RedemptionDate": "0",
    "CurrentFinancialStatus": "0",
    "NewFinancialStatus": "",
    "WhenIssuedFlag": "N",
    "WhenDistributedFlag": "N",
    "IPOFlag": "N",
    "NotesforEachEntry": "New preferred ZIEXT security",
    "RecordUpdateTime": "2017-11-08T16:34:43"
  },
  {...}
]

This call returns an array of new issues, symbol and name changes, and deleted issues, as well as new firms, name changes, and deleted firms for IEX-listed securities.

Records are added once known by the Exchange and will be removed when the Effective Date is in the past.

Updates are posted once per hour from 8:00 a.m. to 6:00 p.m. ET on each trading day

HTTP request

Options

Range Description Source
date Specific date Daily list data for a specified date in the format YYYYMMDD,if available, or sample. If sample, a sample file will be returned

Parameters

Parameter Details
format • Parameter is optional
• Value can be csv or psv
• When parameter is not present, format defaults to JSON
token • Parameter is optional
• Value is the API token from your IEX user account
• If you have been permissioned for CUSIP information you’ll receive a CUSIP field, othewise data defaults to exclude CUSIP.

Response

Refer to the Daily list specification for futher details.

IEX Dividends

HTTP request example

GET /ref-data/daily-list/dividends

The above example will return JSON with the following keys

[
  {
    "RecordID": " DV20171108154436478",
    "DailyListTimestamp": "2017-11-08T17:00:00",
    "EventType": "CHANGE",
    "SymbolinINETSymbology": "ZEXIT",
    "SymbolinCQSSymbology": "ZEXIT",
    "SymbolinCMSSymbology": "ZEXIT",
    "SecurityName": "ZEXIT Common Stock",
    "CompanyName": "ZEXIT Test Company",
    "DeclarationDate": "2017-11-01",
    "AmountDescription": "fnl",
    "PaymentFrequency": "O",
    "ExDate": "2017-11-09",
    "RecordDate": "2017-11-13",
    "PaymentDate": "2017-11-17",
    "DividendTypeID": "XS",
    "StockAdjustmentFactor": "1.1",
    "StockAmount": ".1",
    "CashAmount": "0",
    "PostSplitShares": "0",
    "PreSplitShares": "0",
    "QualifiedDividend": "Y",
    "ExercisePriceAmount": "0",
    "ElectionorExpirationDate": "0",
    "GrossAmount": "0",
    "NetAmount": "0",
    "BasisNotes": "",
    "NotesforEachEntry": "ZEXIT is paying a 10% stock dividend",
    "RecordUpdateTime": "2017-11-08T16:48:47"
  },
  {...}
]

This call details upcoming dividend information and other corporate actions, such as stock splits, for IEX-listed securities.

Records are added once known by the Exchange. A new record with the same Record ID as a previously communicated record will appear when an existing record is being modified or deleted by the Exchange. All records will be removed each evening.

Updates are posted once per hour from 8:00 a.m. to 6:00 p.m. ET on each trading day

HTTP request

Options

Range Description Source
date Specific date Daily list data for a specified date in the format YYYYMMDD,if available, or sample. If sample, a sample file will be returned

Parameters

Parameter Details
format • Parameter is optional
• Value can be csv or psv
• When parameter is not present, format defaults to JSON
token • Parameter is optional
• Value is the API token from your IEX user account
• If you have been permissioned for CUSIP information you’ll receive a CUSIP field, othewise data defaults to exclude CUSIP.

Response

Refer to the Daily list specification for futher details.

IEX Next Day Ex Date

HTTP request example

GET /ref-data/daily-list/next-day-ex-date

The above example will return JSON with the following keys

[
  {
    "RecordID": " DV20171108154436478",
    "DailyListTimestamp": "2017-11-08T17:00:00",
    "ExDate": "2017-11-09",
    "SymbolinINETSymbology": "ZEXIT",
    "SymbolinCQSSymbology": "ZEXIT",
    "SymbolinCMSSymbology": "ZEXIT",
    "SecurityName": "ZEXIT Common Stock",
    "CompanyName": "ZEXIT Test Company",
    "DividendTypeID": "XS",
    "AmountDescription": "fnl",
    "PaymentFrequency": "O",
    "StockAdjustmentFactor": "1.1",
    "StockAmount": ".1",
    "CashAmount": "0",
    "PostSplitShares": "0",
    "PreSplitShares": "0",
    "QualifiedDividend": "Y",
    "ExercisePriceAmount": "0",
    "ElectionorExpirationDate": "0",
    "GrossAmount": "0",
    "NetAmount": "0",
    "BasisNotes": "",
    "NotesforEachEntry": "ZEXIT is paying a 10% stock dividend",
    "RecordUpdateTime": "2017-11-08T16:48:47"
  },
  {...}
]

This call provides advance notification of dividend declarations impacting IEX-listed securities.

Records are added at 8:00 a.m. ET one trading day before the specified Ex-Date. Records would have been communicated in the IEX Dividends Daily List when they were added or modified by the Exchange. Records are removed when Ex-Date is equal to today or when the record is deleted by the Exchange (in this case, a new record will appear in the IEX Dividends Daily List with an Event Type=DELETE for the affected Record ID).

Updates are posted once per hour from 8:00 a.m. to 6:00 p.m. ET on each trading day

HTTP request

Options

Range Description Source
date Specific date Daily list data for a specified date in the format YYYYMMDD,if available, or sample. If sample, a sample file will be returned

Parameters

Parameter Details
format • Parameter is optional
• Value can be csv or psv
• When parameter is not present, format defaults to JSON
token • Parameter is optional
• Value is the API token from your IEX user account
• If you have been permissioned for CUSIP information you’ll receive a CUSIP field, othewise data defaults to exclude CUSIP.

Response

Refer to the Daily list specification for futher details.

IEX Listed Symbol Directory

HTTP request example

GET /ref-data/daily-list/symbol-directory

The above example will return JSON with the following keys

[
  {
    "RecordID": "SD20171020161150890",
    "DailyListTimestamp": "2017-12-18T09:00:00",
    "SymbolinINETSymbology": "ZEXIT",
    "SymbolinCQSSymbology": "ZEXIT",
    "SymbolinCMSSymbology": "ZEXIT",
    "SecurityName": "ZEXIT Common Stock",
    "CompanyName": "ZEXIT Test Company",
    "TestIssue": "Y",
    "IssueDescription": "Common Stock",
    "IssueType": "C",
    "IssueSubType": "C",
    "SICCode": "5678",
    "TransferAgent": "American Stock Transfer",
    "FinancialStatus": "0",
    "RoundLotSize": "100",
    "PreviousOfficialClosingPrice": "10.00",
    "AdjustedPreviousOfficialClosingPrice": "10.00",
    "WhenIssuedFlag": "N",
    "WhenDistributedFlag": "N",
    "IPOFlag": "N",
    "FirstDateListed": "2017-09-15",
    "LULDTierIndicator": "1",
    "CountryofIncorporation": "USA",
    "LeveragedETPFlag": "N",
    "LeveragedETPRatio": "0",
    "InverseETPFlag": "N",
    "RecordUpdateTime": "2017-11-10T16:28:56"
  },
  {...}
]

This call returns an array of all IEX-listed securities and their corresponding data fields. The IEX-Listed Symbol Directory Daily List is initially generated and posted to the IEX website at 8:30 p.m. Eastern Time (ET) before each trading day, and then once per hour from 9 p.m. until 6 p.m. ET the following day.

HTTP request

Options

Range Description Source
date Specific date Daily list data for a specified date in the format YYYYMMDD,if available, or sample. If sample, a sample file will be returned

Parameters

Parameter Details
format • Parameter is optional
• Value can be csv or psv
• When parameter is not present, format defaults to JSON
token • Parameter is optional
• Value is the API token from your IEX user account
• If you have been permissioned for CUSIP information you’ll receive a CUSIP field, othewise data defaults to exclude CUSIP.

Response

Refer to the Daily list specification for futher details.

IEX Market Data

TOPS

HTTP request example

GET /tops?symbols=snap

WebSockets example (using socket.io)

const url = 'https://ws-api.iextrading.com/1.0/tops'
const socket = require('socket.io-client')(url)

socket.on('connect', () => {
  socket.emit('subscribe', 'snap')
})

The above examples will return JSON with the following keys

[
  {
    "symbol": "SNAP",
    "marketPercent": 0.00901,
    "bidSize": 200,
    "bidPrice": 110.94,
    "askSize": 100,
    "askPrice": 111.82,
    "volume": 177265,
    "lastSalePrice": 111.76,
    "lastSaleSize": 5,
    "lastSaleTime": 1480446905681,
    "lastUpdated": 1480446910557,
    "sector": "softwareservices",
    "securityType": "commonstock"
  },
  {
    "symbol": "FB",
    "marketPercent": 0.01465,
    "bidSize": 200,
    "bidPrice": 120.8,
    "askSize": 100,
    "askPrice": 122.5,
    "volume": 205208,
    "lastSalePrice": 121.41,
    "lastSaleSize": 100,
    "lastSaleTime": 1480446908666,
    "lastUpdated": 1480446923942,
    "sector": "softwareservices",
    "securityType": "commonstock"
  },
  {
    "symbol": "AIG+",
    "marketPercent": 0.04618,
    "bidSize": 0,
    "bidPrice": 0,
    "askSize": 0,
    "askPrice": 0,
    "volume": 3400,
    "lastSalePrice": 21.52,
    "lastSaleSize": 100,
    "lastSaleTime": 1480446206461,
    "lastUpdated": -1,
    "sector": "insurance",
    "securityType": "commonstock"
  }
]

TOPS provides IEX’s aggregated best quoted bid and offer position in near real time for all securities on IEX’s displayed limit order book. TOPS is ideal for developers needing both quote and trade data.

For an example of an app that’s using TOPS, see our TOPS viewer app.

HTTP request

WebSockets

Subscribe to firehose to return all symbols.

Parameters

Parameter Details
symbols • Parameter is optional
• Value needs to be a comma-separated list of symbols (i.e SNAP,fb)
• When parameter is not present, request returns all symbols
format • Parameter is optional
• Value can only be csv
• When parameter is not present, format defaults to JSON

Our eligible symbol reference is updated daily. Use these symbols as values in your symbols parameter.

Response

Key Description
symbol refers to the stock ticker.
marketPercent refers to IEX’s percentage of the market in the stock.
bidSize refers to amount of shares on the bid on IEX.
bidPrice refers to the best bid price on IEX.
askSize refers to amount of shares on the ask on IEX.
askPrice refers to the best ask price on IEX.
volume refers to shares traded in the stock on IEX.
lastSalePrice refers to last sale price of the stock on IEX. (Refer to the attribution section above.)
lastSaleSize refers to last sale size of the stock on IEX.
lastSaleTime refers to last sale time in epoch time of the stock on IEX.
lastUpdated refers to the last update time of the data in milliseconds since midnight Jan 1, 1970 or -1. If the value is -1, IEX has not quoted the symbol in the trading day.
sector refers to the sector the security belongs to.
securityType refers to the common issue type.

Last

HTTP request example

GET /last?symbols=snap

WebSockets example (using socket.io)

const url = 'https://ws-api.iextrading.com/1.0/last'
const socket = require('socket.io-client')(url)

socket.on('connect', () => {
  socket.emit('subscribe', 'snap')
})

The above examples will return JSON with the following keys

[
  {
    "symbol": "SNAP",
    "price": 111.76,
    "size": 5,
    "time": 1480446905681
  },
  {
    "symbol": "FB",
    "price": 121.41,
    "size": 100,
    "time": 1480446908666
  },
  {
    "symbol": "AIG+",
    "price": 21.52,
    "size": 100,
    "time": 1480446206461
  }
]

Last provides trade data for executions on IEX. It is a near real time, intraday API that provides IEX last sale price, size and time. Last is ideal for developers that need a lightweight stock quote.

HTTP request

WebSockets

Subscribe to firehose to return all symbols.

Parameters

Parameter Details
symbols • Parameter is optional
• Value needs to be a comma-separated list of symbols (i.e SNAP,fb)
• When parameter is not present, request returns all symbols
format • Parameter is optional
• Value can only be csv
• When parameter is not present, format defaults to JSON
• Our eligible symbol reference is updated daily. Use these symbols as values in your symbols parameter.

Response

Key Description
symbol refers to the stock ticker.
price refers to last sale price of the stock on IEX. (Refer to the attribution section above.)
size refers to last sale size of the stock on IEX.
time refers to last sale time in epoch time of the stock on IEX.

HIST

HTTP request example

GET /hist?date=20170515

HTTP request example message

[
  {
    "link": "https://www.googleapis.com/download/storage/v1/b/iex/o/data%2Ffeeds%2F20170515%2F20170515_IEXTP1_DEEP1.0.pcap.gz?generation=1494944895386822&alt=media",
    "date": "20170515",
    "feed": "DEEP",
    "version": "1.0",
    "protocol": "IEXTP1",
    "size": "640265166"
  },
  {
    "link": "https://www.googleapis.com/download/storage/v1/b/iex/o/data%2Ffeeds%2F20170515%2F20170515_IEXTP1_TOPS1.5.pcap.gz?generation=1494945323138905&alt=media",
    "date": "20170515",
    "feed": "TOPS",
    "version": "1.5",
    "protocol": "IEXTP1",
    "size": "503325585"
  }
]

HIST will provide the output of IEX data products for download on a T+1 basis. Data will remain available for the trailing twelve months.

HTTP request

Parameters

Parameter Details
date • Parameter is optional
• Value needs to be in four-digit year, two-digit month, two-digit day format (YYYYMMDD) (i.e May 15, 2017 would be written as 20170515)
• When parameter is not present, request returns all available dates

Response

Key Type
link string
date string
feed string
version string
protocol string
size string

DEEP

HTTP request example

GET /deep?symbols=snap

HTTP request example message

{
  "symbol": "SNAP",
  "marketPercent": 0.00837,
  "volume": 359425,
  "lastSalePrice": 22.975,
  "lastSaleSize": 100,
  "lastSaleTime": 1494446394043,
  "lastUpdated": 1494446715171,
  "bids": [
      {
        "price": 19.13,
        "size": 650,
        "timestamp": 1494446715171
      }
  ],
  "asks": [
      {
        "price": 19.15,
        "size": 891,
        "timestamp": 1494446717238
      }
  ],
  "systemEvent": {
    "systemEvent": "R",
    "timestamp": 1494627280251
  },
  "tradingStatus": {
    "status": "T",
    "reason": "NA",
    "timestamp": 1494588017687
  },
  "opHaltStatus": {
    "isHalted": false,
    "timestamp": 1494588017687
  },
  "ssrStatus": {
    "isSSR": true,
    "detail": "N",
    "timestamp": 1494588094067
  },
  "securityEvent": {
    "securityEvent": "MarketOpen",
    "timestamp": 1494595800005
  },
  "trades": [
    {
      "price": 19.145,
      "size": 400,
      "tradeId": 517365191,
      "isISO": false,
      "isOddLot": false,
      "isOutsideRegularHours": false,
      "isSinglePriceCross": false,
      "isTradeThroughExempt": false,
      "timestamp": 1494619192193
    }
  ],
  "tradeBreaks": [
    {
      "price": 19.145,
      "size": 400,
      "tradeId": 517365191,
      "isISO": false,
      "isOddLot": false,
      "isOutsideRegularHours": false,
      "isSinglePriceCross": false,
      "isTradeThroughExempt": false,
      "timestamp": 1494619192193
    }
  ],
  "auction": {
      "auctionType": "Open",
      "pairedShares": 3600,
      "imbalanceShares": 600,
      "referencePrice": 1.05,
      "indicativePrice": 1.05,
      "auctionBookPrice": 1.05,
      "collarReferencePrice": 1.05,
      "lowerCollarPrice": 0.5,
      "upperCollarPrice": 1.6,
      "extensionNumber": 0,
      "startTime": "09:30:00",
      "lastUpdate": 1506706199025
  }
}

WebSockets example (using socket.io)

const url = 'https://ws-api.iextrading.com/1.0/deep'
const socket = require('socket.io-client')(url)

socket.on('connect', () => {
  socket.emit('subscribe', JSON.stringify({
    symbols: ['snap'],
    channels: ['deep'],
  }))
})

WebSockets example message

{
  "symbol": "SNAP",
  "marketPercent": 0.00837,
  "volume": 359425,
  "lastSalePrice": 22.975,
  "lastSaleSize": 100,
  "lastSaleTime": 1494446394043,
  "lastUpdated": 1494446715171,
  "bids": [
      {
        "price": 19.13,
        "size": 650,
        "timestamp": 1494446715171
      }
  ],
  "asks": [
      {
        "price": 19.15,
        "size": 891,
        "timestamp": 1494446717238
      }
  ],
  "systemEvent": {
    "systemEvent": "R",
    "timestamp": 1494627280251
  },
  "tradingStatus": {
    "status": "T",
    "reason": "NA",
    "timestamp": 1494588017687
  },
  "opHaltStatus": {
    "isHalted": false,
    "timestamp": 1494588017687
  },
  "ssrStatus": {
    "isSSR": true,
    "detail": "N",
    "timestamp": 1494588094067
  },
  "securityEvent": {
    "securityEvent": "MarketOpen",
    "timestamp": 1494595800005
  },
  "trades": [
    {
      "price": 19.145,
      "size": 400,
      "tradeId": 517365191,
      "isISO": false,
      "isOddLot": false,
      "isOutsideRegularHours": false,
      "isSinglePriceCross": false,
      "isTradeThroughExempt": false,
      "timestamp": 1494619192193
    }
  ],
  "tradeBreaks": [
    {
      "price": 19.145,
      "size": 400,
      "tradeId": 517365191,
      "isISO": false,
      "isOddLot": false,
      "isOutsideRegularHours": false,
      "isSinglePriceCross": false,
      "isTradeThroughExempt": false,
      "timestamp": 1494619192193
    }
],
  "auction": {
      "auctionType": "Open",
      "pairedShares": 3600,
      "imbalanceShares": 600,
      "referencePrice": 1.05,
      "indicativePrice": 1.05,
      "auctionBookPrice": 1.05,
      "collarReferencePrice": 1.05,
      "lowerCollarPrice": 0.5,
      "upperCollarPrice": 1.6,
      "extensionNumber": 0,
      "startTime": "09:30:00",
      "lastUpdate": 1506706199025
  }
}

DEEP is used to receive real-time depth of book quotations direct from IEX. The depth of book quotations received via DEEP provide an aggregated size of resting displayed orders at a price and side, and do not indicate the size or number of individual orders at any price level. Non-displayed orders and non-displayed portions of reserve orders are not represented in DEEP.

DEEP also provides last trade price and size information. Trades resulting from either displayed or non-displayed orders matching on IEX will be reported. Routed executions will not be reported.

HTTP request

WebSockets

Emit a subscribe event with a JSON-encoded object that includes the following two keys:

{symbols: [], channels: []}

Note: book channel returns messageTypes pricelevelbuy and pricelevelsell.

Parameters

Parameter Details
symbols • Parameter is required
• Value needs to be a single symbol (i.e snap)

Response

Key Type
symbol string
marketPercent number
volume number
lastSalePrice number
lastSaleSize number
lastSaleTime number
lastUpdated number
bids array
asks array
systemEvent object
tradingStatus object
opHaltStatus object
ssrStatus object
securityEvent object
trades array
tradeBreaks array
auction object

Book

HTTP request example

GET /deep/book?symbols=yelp

HTTP request example response

{
    "YELP": {
        "bids": [
            {
                "price": 63.09,
                "size": 300,
                "timestamp": 1494538496261
            },
        ],
        "asks": [
            {
                "price": 63.92,
                "size": 300,
                "timestamp": 1494538381896
            },
            {
                "price": 63.97,
                "size": 300,
                "timestamp": 1494538381885
            }
        ]
    }
}

WebSockets example (using socket.io)

const url = 'https://ws-api.iextrading.com/1.0/deep'
const socket = require('socket.io-client')(url)

socket.on('connect', () => {
  socket.emit('subscribe', JSON.stringify({
    symbols: ['yelp'],
    channels: ['book'],
  }))
})

pricelevelsell WebSockets message

{
  "symbol": "aapl",
  "messageType": "pricelevelsell",
  "data": [
    {
      "price": 170,
      "size": 100,
      "timestamp": 1494601920999
    },
    {
      "price": 160,
      "size": 200,
      "timestamp": 1494596130847
    }
  ]
}

pricelevelbuy WebSockets message

{
  "symbol": "aapl",
  "messageType": "pricelevelbuy",
  "data": [
    {
      "price": 73.63,
      "size": 143,
      "timestamp": 1494595800085
    },
    {
      "price": 153,
      "size": 3000,
      "timestamp": 1494595904630
    },
    {
      "price": 145,
      "size": 500,
      "timestamp": 1494596980550
    }
  ]
}

Book shows IEX’s bids and asks for given symbols.

HTTP request

WebSockets

Subscribe to the book channel.

Parameters

Parameter Details
symbols • Parameter is required
• Value needs to be a comma-separated list of symbols (i.e SNAP,fb)
• Maximum of 10 symbols

Response

Key Type
bids array
asks array
price number
size number
timestamp number

Trades

Trade report messages are sent when an order on the IEX Order Book is executed in whole or in part. DEEP sends a Trade report message for every individual fill.

HTTP request example

GET /deep/trades?symbols=snap

HTTP request example message

{
  "SNAP": [
    {
      "price": 156.1,
      "size": 100,
      "tradeId": 517341294,
      "isISO": false,
      "isOddLot": false,
      "isOutsideRegularHours": false,
      "isSinglePriceCross": false,
      "isTradeThroughExempt": false,
      "timestamp": 1494619192003
    }
  ]
}

WebSockets example (using socket.io)

const url = 'https://ws-api.iextrading.com/1.0/deep'
const socket = require('socket.io-client')(url)

socket.on('connect', () => {
  socket.emit('subscribe', JSON.stringify({
    symbols: ['snap'],
    channels: ['trades'],
  }))
})

WebSockets example message

{
  "symbol": "SNAP",
  "messageType": "trades",
  "data": [
    {
      "price": 156.1,
      "size": 100,
      "tradeId": 517341294,
      "isISO": false,
      "isOddLot": false,
      "isOutsideRegularHours": false,
      "isSinglePriceCross": false,
      "isTradeThroughExempt": false,
      "timestamp": 1494619192003
    }
  ]
}

HTTP request

WebSockets

Subscribe to the trades channel.

Parameters

Parameter Details
symbols • Parameter is required
• Value needs to be a comma-separated list of symbols (i.e SNAP,fb)
• Maximum of 10 symbols
last • Parameter is optional
• Value needs to be a number (i.e 5)
• Default is 20
• Maximum of 500

Response

Key Type
price number
size number
tradeId number
isISO boolean
isOddLot boolean
isOutsideRegularHours boolean
isSinglePriceCross boolean
isTradeThroughExempt boolean
timestamp number

System Event

HTTP request example

GET /deep/system-event

HTTP request example message

{
  "systemEvent": "S",
  "timestamp": 1494595800005
}

WebSockets example (using socket.io)

const url = 'https://ws-api.iextrading.com/1.0/deep'
const socket = require('socket.io-client')(url)

socket.on('connect', () => {
  socket.emit('subscribe', JSON.stringify({
    channels: ['systemevent'],
  }))
})

WebSockets example message

{
  "messageType": "systemevent",
  "data": {
    "systemEvent": "S",
    "timestamp": 1494595800005
  }
}

The System event message is used to indicate events that apply to the market or the data feed.

There will be a single message disseminated per channel for each System Event type within a given trading session.

HTTP request

WebSockets

Subscribe to the systemevent channel.

Response

Key Type Values
systemEvent string 'O' (Start of messages)
'S' (Start of system hours)
'R' (Start of regular market hours)
'M' (End of regular market hours)
'E' (End of system hours)
'C' (End of messages)
timestamp number

Trading Status

HTTP request example

GET /deep/trading-status?symbols=snap

HTTP request example message

{
  "SNAP": {
    "status": "T",
    "reason": " ",
    "timestamp": 1494588017674
  }
}

WebSockets example (using socket.io)

const url = 'https://ws-api.iextrading.com/1.0/deep'
const socket = require('socket.io-client')(url)

socket.on('connect', () => {
  socket.emit('subscribe', JSON.stringify({
    symbols: ['snap'],
    channels: ['tradingstatus'],
  }))
})

WebSockets example message

{
  "symbol": "SNAP",
  "messageType": "tradingstatus",
  "data": {
    "status": "T",
    "reason": " ",
    "timestamp": 1494588017674
  }
}

The Trading status message is used to indicate the current trading status of a security. For IEX-listed securities, IEX acts as the primary market and has the authority to institute a trading halt or trading pause in a security due to news dissemination or regulatory reasons. For non-IEX-listed securities, IEX abides by any regulatory trading halts and trading pauses instituted by the primary or listing market, as applicable.

IEX disseminates a full pre-market spin of Trading status messages indicating the trading status of all securities. In the spin, IEX will send out a Trading status message with “T” (Trading) for all securities that are eligible for trading at the start of the Pre-Market Session. If a security is absent from the dissemination, firms should assume that the security is being treated as operationally halted in the IEX Trading System.

After the pre-market spin, IEX will use the Trading status message to relay changes in trading status for an individual security. Messages will be sent when a security is:

*The paused and released into an Order Acceptance Period status will be disseminated for IEX-listed securities only. Trading pauses on non-IEX-listed securities will be treated simply as a halt.

HTTP request

WebSockets

Subscribe to the tradingstatus channel.

Parameters

Parameter Details
symbols • Parameter is required
• Value needs to be a comma-separated list of symbols (i.e SNAP,fb)
• Maximum of 10 symbols

Response

Key Type Values
status string 'H' Trading halted across all US equity markets
'O' Trading halt released into an Order Acceptance Period (IEX-listed securities only)
'P' Trading paused and Order Acceptance Period on IEX (IEX-listed securities only)
'T' Trading on IEX
reason string Trading Halt Reasons
'T1' Halt News Pending
'IPO1' IPO/New Issue Not Yet Trading
'IPOD' IPO/New Issue Deferred
'MCB3' Market-Wide Circuit Breaker Level 3 – Breached
'NA' Reason Not Available

Order Acceptance Period Reasons
'T2' Halt News Dissemination
'IPO2' IPO/New Issue Order Acceptance Period
'IPO3' IPO Pre-Launch Period
'MCB1' Market-Wide Circuit Breaker Level 1 – Breached
'MCB2' Market-Wide Circuit Breaker Level 2 – Breached
timestamp number

Operational Halt Status

HTTP request example

GET /deep/op-halt-status?symbols=snap

HTTP request example response

{
  "SNAP": {
    "isHalted": false,
    "timestamp": 1494588017674
  }
}

WebSockets example (using socket.io)

const url = 'https://ws-api.iextrading.com/1.0/deep'
const socket = require('socket.io-client')(url)

socket.on('connect', () => {
  socket.emit('subscribe', JSON.stringify({
    symbols: ['snap'],
    channels: ['ophaltstatus'],
  }))
})

WebSockets example message

{
  "symbol": "SNAP",
  "messageType": "ophaltstatus",
  "data": {
    "isHalted": false,
    "timestamp": 1494588017674
  }
}

The Exchange may suspend trading of one or more securities on IEX for operational reasons and indicates such operational halt using the Operational halt status message.

IEX disseminates a full pre-market spin of Operational halt status messages indicating the operational halt status of all securities. In the spin, IEX will send out an Operational Halt Message with “N” (Not operationally halted on IEX) for all securities that are eligible for trading at the start of the Pre-Market Session. If a security is absent from the dissemination, firms should assume that the security is being treated as operationally halted in the IEX Trading System at the start of the Pre-Market Session.

After the pre-market spin, IEX will use the Operational halt status message to relay changes in operational halt status for an individual security.

HTTP request

WebSockets

Subscribe to the ophaltstatus channel.

Parameters

Parameter Details
symbols • Parameter is required
• Value needs to be a comma-separated list of symbols (i.e SNAP,fb)
• Maximum of 10 symbols

Response

Key Type
isHalted boolean
timestamp number

Short Sale Price Test Status

HTTP request example

GET /deep/ssr-status?symbols=snap

HTTP request example message

{
  "SNAP": {
    "isSSR": true,
    "detail": "N",
    "timestamp": 1494588094067
  }
}

WebSockets example (using socket.io)

const url = 'https://ws-api.iextrading.com/1.0/deep'
const socket = require('socket.io-client')(url)

socket.on('connect', () => {
  socket.emit('subscribe', JSON.stringify({
    symbols: ['snap'],
    channels: ['ssr'],
  }))
})

WebSockets example message

{
  "symbol": "SNAP",
  "messageType": "ssr",
  "data": {
    "isSSR": true,
    "detail": "N",
    "timestamp": 1494588094067
  }
}

In association with Rule 201 of Regulation SHO, the Short Sale Price Test Message is used to indicate when a short sale price test restriction is in effect for a security.

IEX disseminates a full pre-market spin of Short sale price test status messages indicating the Rule 201 status of all securities. After the pre-market spin, IEX will use the Short sale price test status message in the event of an intraday status change.

The IEX Trading System will process orders based on the latest short sale price test restriction status.

HTTP request

WebSockets

Subscribe to the ssr channel.

Parameters

Parameter Details
symbols • Parameter is required
• Value needs to be a comma-separated list of symbols (i.e SNAP,fb)
• Maximum of 10 symbols

Response

Key Type
isSSR boolean
detail string
timestamp number

Security Event

HTTP request example

GET /deep/security-event?symbols=snap

HTTP request example message

{
  "SNAP": {
    "securityEvent": "MarketOpen",
    "timestamp": 1494595800005
  }
}

WebSockets example (using socket.io)

const url = 'https://ws-api.iextrading.com/1.0/deep'
const socket = require('socket.io-client')(url)

socket.on('connect', () => {
  socket.emit('subscribe', JSON.stringify({
    symbols: ['snap'],
    channels: ['securityevent'],
  }))
})

WebSockets example message

{
  "symbol": "SNAP",
  "messageType": "securityevent",
  "data": {
    "securityEvent": "MarketOpen",
    "timestamp": 1494595800005
  }
}

The Security event message is used to indicate events that apply to a security. A Security event message will be sent whenever such event occurs

HTTP request

WebSockets

Subscribe to the securityevent channel.

Parameters

Parameter Details
symbols • Parameter is required
• Value needs to be a comma-separated list of symbols (i.e SNAP,fb)
• Maximum of 10 symbols

Response

Key Type Values
securityEvent string 'MarketOpen'
'MarketClose'
timestamp number

Trade Break

HTTP request example

GET /deep/trade-breaks?symbols=snap

HTTP request example message

{
  "SNAP": [
    {
      "price": 156.1,
      "size": 100,
      "tradeId": 517341294,
      "isISO": false,
      "isOddLot": false,
      "isOutsideRegularHours": false,
      "isSinglePriceCross": false,
      "isTradeThroughExempt": false,
      "timestamp": 1494619192003
    }
  ]
}

WebSockets example (using socket.io)

const url = 'https://ws-api.iextrading.com/1.0/deep'
const socket = require('socket.io-client')(url)

socket.on('connect', () => {
  socket.emit('subscribe', JSON.stringify({
    symbols: ['snap'],
    channels: ['tradebreaks'],
  }))
})

WebSockets example message

{
  "symbol": "SNAP",
  "messageType": "tradebreaks",
  "data": [
    {
      "price": 156.1,
      "size": 100,
      "tradeId": 517341294,
      "isISO": false,
      "isOddLot": false,
      "isOutsideRegularHours": false,
      "isSinglePriceCross": false,
      "isTradeThroughExempt": false,
      "timestamp": 1494619192003
    }
  ]
}

Trade break messages are sent when an execution on IEX is broken on that same trading day. Trade breaks are rare and only affect applications that rely upon IEX execution based data.

HTTP request

WebSockets

Subscribe to the tradebreaks channel.

Parameters

Parameter Details
symbols • Parameter is required
• Value needs to be a comma-separated list of symbols (i.e SNAP,fb)
• Maximum of 10 symbols
last • Parameter is optional
• Value needs to be a number (i.e 5)
• Default is 20
• Maximum of 500

Response

Key Type
price number
size number
tradeId number
isISO boolean
isOddLot boolean
isOutsideRegularHours boolean
isSinglePriceCross boolean
isTradeThroughExempt boolean
timestamp number

Auction

HTTP request example

GET /deep/auction?symbols=ziext

HTTP request example message

{
  "ZIEXT": {
    "auctionType": "Open",
    "pairedShares": 3600,
    "imbalanceShares": 600,
    "referencePrice": 1.05,
    "indicativePrice": 1.05,
    "auctionBookPrice": 1.05,
    "collarReferencePrice": 1.05,
    "lowerCollarPrice": 0.5,
    "upperCollarPrice": 1.6,
    "extensionNumber": 0,
    "startTime": "09:30:00",
    "lastUpdate": 1506706199025
  }
}

WebSockets example (using socket.io)

const url = 'https://ws-api.iextrading.com/1.0/deep'
const socket = require('socket.io-client')(url)

socket.on('connect', () => {
  socket.emit('subscribe', JSON.stringify({
    symbols: ['ziext'],
    channels: ['auction'],
  }))
})

WebSockets example message

{
  "symbol": "ZIEXT",
  "messageType": "auction",
  "data": {
    "auctionType": "Open",
    "pairedShares": 3600,
    "imbalanceShares": 600,
    "referencePrice": 1.05,
    "indicativePrice": 1.05,
    "auctionBookPrice": 1.05,
    "collarReferencePrice": 1.05,
    "lowerCollarPrice": 0.5,
    "upperCollarPrice": 1.6,
    "extensionNumber": 0,
    "startTime": "09:30:00",
    "lastUpdate": 1506706199025
  }
}

DEEP broadcasts an Auction Information Message every one second between the Lock-in Time and the auction match for Opening and Closing Auctions, and during the Display Only Period for IPO, Halt, and Volatility Auctions. Only IEX listed securities are eligible for IEX Auctions.

HTTP request

WebSockets

Subscribe to the auction channel.

Parameters

Parameter Details
symbols • Parameter is required
• Value needs to be a comma-separated list of symbols (i.e ziext,zexit)
• Maximum of 10 symbols

Response

Key Type Values
auctionType string refers to the auction type (Open, Close, Halt, Volatility, IPO)
pairedShares number refers to the number of shares paired at the referencePrice using orders on the auction book
imbalanceShares number refers to the number of unpaired shares at the referencePrice using orders on the auction book
referencePrice number refers to the clearing price at or within the reference price range using ordes on the auction book
indicativePrice number refers to the clearing price using eligible auction orders
auctionBookPrice number refers to the clearing price using orders on the auction book
collarReferencePrice number refers to the reference price used for the auction collar, if any
lowerCollarPrice number refers to the lower threshold price of the auction collar, if any
upperCollarPrice number refers to the upper threshold price of the auction collar, if any
extensionNumber number refers to the number of extensions an auction has received
startTime string refers to the projected time of the auction match. Formatted as HH:MM:SS
lastUpdate number refers to the timestamp of the auction information

Official Price

HTTP request example

GET /deep/official-price?symbols=snap

HTTP request example message

{
  "SNAP": {
    "priceType": "Open",
    "price": 1.05,
    "timestamp": 1494595800005
  }
}

WebSockets example (using socket.io)

const url = 'https://ws-api.iextrading.com/1.0/deep'
const socket = require('socket.io-client')(url)

socket.on('connect', () => {
  socket.emit('subscribe', JSON.stringify({
    symbols: ['snap'],
    channels: ['officialprice'],
  }))
})

WebSockets example message

{
  "symbol": "SNAP",
  "messageType": "officialprice",
  "data": {
    "priceType": "Open",
    "price": 1.05,
    "timestamp": 1494595800005
  }
}

The Official Price message is used to disseminate the IEX Official Opening and Closing Prices.

These messages will be provided only for IEX Listed Securities.

HTTP request

WebSockets

Subscribe to the officialprice channel.

Parameters

Parameter Details
symbols • Parameter is required
• Value needs to be a comma-separated list of symbols (i.e SNAP,fb)
• Maximum of 1 symbols

Response

Key Type Values
priceType string 'Open' (Official Open Price)
'Close' (Official Close Price)
price number
timestamp number

IEX Stats

For an example of an app that’s using stats, see our IEX mobile app.

Intraday

HTTP request example

GET /stats/intraday

The above example will return JSON with the following keys

{
  "volume": {
    "value": 26908038,
    "lastUpdated": 1480433817323
  },
  "symbolsTraded": {
    "value": 4089,
    "lastUpdated": 1480433817323
  },
  "routedVolume": {
    "value": 10879651,
    "lastUpdated": 1480433816891
  },
  "notional": {
    "value": 1090683735,
    "lastUpdated": 1480433817323
  },
  "marketShare": {
    "value": 0.01691,
    "lastUpdated": 1480433817336
  }
}

HTTP request

Response

Key Description
volume refers to single counted shares matched from executions on IEX.
symbolsTraded refers to number of symbols traded on IEX.
routedVolume refers to executions received from order routed to away trading centers.
notional refers to sum of matched volume times execution price of those trades.
marketShare refers to IEX’s percentage of total US Equity market volume.
lastUpdated refers to the last update time of the data in milliseconds since midnight Jan 1, 1970.

Recent

HTTP request example

GET /stats/recent

The above example will return JSON with the following keys

[
  {
    "date": "2017-01-11",
    "volume": 128048723,
    "routedVolume": 38314207,
    "marketShare": 0.01769,
    "isHalfday": false,
    "litVolume": 30520534
  },
  {
    "date": "2017-01-10",
    "volume": 135116521,
    "routedVolume": 39329019,
    "marketShare": 0.01999,
    "isHalfday": false,
    "litVolume": 29721789
  },
  {
    "date": "2017-01-09",
    "volume": 109850518,
    "routedVolume": 31283422,
    "marketShare": 0.01704,
    "isHalfday": false,
    "litVolume": 27699365
  },
  {
    "date": "2017-01-06",
    "volume": 116680433,
    "routedVolume": 29528471,
    "marketShare": 0.01805,
    "isHalfday": false,
    "litVolume": 29357729
  },
  {
    "date": "2017-01-05",
    "volume": 130389657,
    "routedVolume": 40977180,
    "marketShare": 0.01792,
    "isHalfday": false,
    "litVolume": 33169236
  },
  {
    "date": "2017-01-04",
    "volume": 124428433,
    "routedVolume": 38859989,
    "marketShare": 0.01741,
    "isHalfday": false,
    "litVolume": 31563256
  },
  {
    "date": "2017-01-03",
    "volume": 130195733,
    "routedVolume": 34990159,
    "marketShare": 0.01733,
    "isHalfday": false,
    "litVolume": 34150804
  }
]

This call will return a minimum of the last five trading days up to all trading days of the current month.

HTTP request

Response

Key Description
date refers to the trading day.
volume refers to executions received from order routed to away trading centers.
routedVolume refers to single counted shares matched from executions on IEX.
marketShare refers to IEX’s percentage of total US Equity market volume.
isHalfday will be true if the trading day is a half day.
litVolume refers to the number of lit shares traded on IEX (single-counted).

Records

HTTP request example

GET /stats/records

The above example will return JSON with the following keys

{
  "volume": {
    "recordValue": 233000477,
    "recordDate": "2016-01-20",
    "previousDayValue": 99594714,
    "avg30Value": 138634204.5
  },
  "symbolsTraded": {
    "recordValue": 6046,
    "recordDate": "2016-11-10",
    "previousDayValue": 5500,
    "avg30Value": 5617
  },
  "routedVolume": {
    "recordValue": 74855222,
    "recordDate": "2016-11-10",
    "previousDayValue": 29746476,
    "avg30Value": 44520084
  },
  "notional": {
    "recordValue": 9887832327.8355,
    "recordDate": "2016-11-10",
    "previousDayValue": 4175710684.3897,
    "avg30Value": 5771412969.2662
  }
}

HTTP request

Response

Key Description
volume refers to single counted shares matched from executions on IEX.
symbolsTraded refers to number of symbols traded on IEX.
routedVolume refers to executions received from order routed to away trading centers.
notional refers to sum of matched volume times execution price of those trades.

Historical Summary

HTTP request example

GET /stats/historical?date=201605

The above example will return JSON with the following keys

[
  {
    "averageDailyVolume": 112247378.5,
    "averageDailyRoutedVolume": 34282226.24,
    "averageMarketShare": 0,
    "averageOrderSize": 493,
    "averageFillSize": 287,
    "bin100Percent": 0.61559,
    "bin101Percent": 0.61559,
    "bin200Percent": 0.61559,
    "bin300Percent": 0.61559,
    "bin400Percent": 0.61559,
    "bin500Percent": 0.61559,
    "bin1000Percent": 0.61559,
    "bin5000Percent": 0.61559,
    "bin10000Percent": 0.61559,
    "bin10000Trades": 4666,
    "bin20000Trades": 1568,
    "bin50000Trades": 231,
    "uniqueSymbolsTraded": 7419,
    "blockPercent": 0.08159,
    "selfCrossPercent": 0.02993,
    "etfPercent": 0.12646,
    "largeCapPercent": 0.40685,
    "midCapPercent": 0.2806,
    "smallCapPercent": 0.18609,
    "venueARCXFirstWaveWeight": 0.22063,
    "venueBATSFirstWaveWeight": 0.06249,
    "venueBATYFirstWaveWeight": 0.07361,
    "venueEDGAFirstWaveWeight": 0.01083,
    "venueEDGXFirstWaveWeight": 0.0869,
    "venueOverallFirstWaveWeight": 1,
    "venueXASEFirstWaveWeight": 0.00321,
    "venueXBOSFirstWaveWeight": 0.02935,
    "venueXCHIFirstWaveWeight": 0.00108,
    "venueXCISFirstWaveWeight": 0.00008,
    "venueXNGSFirstWaveWeight": 0.20358,
    "venueXNYSFirstWaveWeight": 0.29313,
    "venueXPHLFirstWaveWeight": 0.01511,
    "venueARCXFirstWaveRate": 0.97737,
    "venueBATSFirstWaveRate": 0.99357,
    "venueBATYFirstWaveRate": 0.99189,
    "venueEDGAFirstWaveRate": 0.98314,
    "venueEDGXFirstWaveRate": 0.99334,
    "venueOverallFirstWaveRate": 0.98171,
    "venueXASEFirstWaveRate": 0.94479,
    "venueXBOSFirstWaveRate": 0.97829,
    "venueXCHIFirstWaveRate": 0.65811,
    "venueXCISFirstWaveRate": 0.9468,
    "venueXNGSFirstWaveRate": 0.98174,
    "venueXNYSFirstWaveRate": 0.98068,
    "venueXPHLFirstWaveRate": 0.93629
  }
]

HTTP request

The /stats/historical endpoint without any parameters will return the current month’s stats.

Parameters

Parameter Details
date • Parameter is optional
• Value needs to be in four-digit year, two-digit month format (YYYYMM) (i.e January 2017 would be written as 201701)
• Historical data is only available for prior months, starting with January 2014
• When parameter is not present, request returns prior month’s data
format • Parameter is optional
• Value can only be csv
• When parameter is not present, format defaults to JSON

Response

See our stats page for a reference of the keys.

Historical Daily

HTTP request example

GET /stats/historical/daily?last=5

The above example will return JSON with the following keys

[
  {
    "date": "2017-05-09",
    "volume": 152907569,
    "routedVolume": 46943802,
    "marketShare": 0.02246,
    "isHalfday": 0,
    "litVolume": 35426666
  },
  {
    "date": "2017-05-08",
    "volume": 142923030,
    "routedVolume": 39507295,
    "marketShare": 0.02254,
    "isHalfday": 0,
    "litVolume": 32404585
  },
  {
    "date": "2017-05-05",
    "volume": 155118117,
    "routedVolume": 39974788,
    "marketShare": 0.02358,
    "isHalfday": 0,
    "litVolume": 35124994
  },
  {
    "date": "2017-05-04",
    "volume": 185715463,
    "routedVolume": 56264408,
    "marketShare": 0.02352,
    "isHalfday": 0,
    "litVolume": 40634976
  },
  {
    "date": "2017-05-03",
    "volume": 183103198,
    "routedVolume": 50953175,
    "marketShare": 0.025009999999999998,
    "isHalfday": 0,
    "litVolume": 40296158
  }
]

This call will return daily stats for a given month or day.

HTTP request

The /stats/historical/daily endpoint without any parameters will return the last trading day.

Parameters

Parameter Details
date • Parameter is optional
• Option 1: Value needs to be in four-digit year, two-digit month format (YYYYMM) (i.e January 2017 would be written as 201701)
• Option 2: Value needs to be in four-digit year, two-digit month, two-digit day format (YYYYMMDD) (i.e January 21, 2017 would be written as 20170121)
• Historical data is only available for prior months, starting with January 2014
last • Parameter is optional
• Is used in place of date to retrieve last n number of trading days.
• Value can only be a number up to 90
format • Parameter is optional
• Value can only be csv
• When parameter is not present, format defaults to JSON

Response

Key Description
date refers to the trading day.
volume refers to executions received from order routed to away trading centers.
routedVolume refers to single counted shares matched from executions on IEX.
marketShare refers to IEX’s percentage of total US Equity market volume.
isHalfday will be true if the trading day is a half day.
litVolume refers to the number of lit shares traded on IEX (single-counted).

Markets

For an example of an app that’s using market, see our Market volume app.

Market

HTTP request example

GET /market

The above example will return JSON with the following keys

[
  {
    "mic": "TRF",
    "tapeId": "-",
    "venueName": "TRF Volume",
    "volume": 589171705,
    "tapeA": 305187928,
    "tapeB": 119650027,
    "tapeC": 164333750,
    "marketPercent": 0.37027,
    "lastUpdated": 1480433817317
  },
  {
    "mic": "XNGS",
    "tapeId": "Q",
    "venueName": "NASDAQ",
    "volume": 213908393,
    "tapeA": 90791123,
    "tapeB": 30731818,
    "tapeC": 92385452,
    "marketPercent": 0.13443,
    "lastUpdated": 1480433817311
  },
  {
    "mic": "XNYS",
    "tapeId": "N",
    "venueName": "NYSE",
    "volume": 204280163,
    "tapeA": 204280163,
    "tapeB": 0,
    "tapeC": 0,
    "marketPercent": 0.12838,
    "lastUpdated": 1480433817336
  },
  {
    "mic": "ARCX",
    "tapeId": "P",
    "venueName": "NYSE Arca",
    "volume": 180301371,
    "tapeA": 64642458,
    "tapeB": 78727208,
    "tapeC": 36931705,
    "marketPercent": 0.11331,
    "lastUpdated": 1480433817305
  },
  {
    "mic": "EDGX",
    "tapeId": "K",
    "venueName": "EDGX",
    "volume": 137022822,
    "tapeA": 58735505,
    "tapeB": 32753903,
    "tapeC": 45533414,
    "marketPercent": 0.08611,
    "lastUpdated": 1480433817310
  },
  {
    "mic": "BATS",
    "tapeId": "Z",
    "venueName": "BATS BZX",
    "volume": 100403461,
    "tapeA": 52509859,
    "tapeB": 25798360,
    "tapeC": 22095242,
    "marketPercent": 0.0631,
    "lastUpdated": 1480433817311
  },
  {
    "mic": "BATY",
    "tapeId": "Y",
    "venueName": "BATS BYX",
    "volume": 54413196,
    "tapeA": 28539960,
    "tapeB": 13638779,
    "tapeC": 12234457,
    "marketPercent": 0.03419,
    "lastUpdated": 1480433817310
  },
  {
    "mic": "XBOS",
    "tapeId": "B",
    "venueName": "NASDAQ BX",
    "volume": 31417461,
    "tapeA": 16673166,
    "tapeB": 5875538,
    "tapeC": 8868757,
    "marketPercent": 0.01974,
    "lastUpdated": 1480433817311
  },
  {
    "mic": "EDGA",
    "tapeId": "J",
    "venueName": "EDGA",
    "volume": 30670687,
    "tapeA": 15223428,
    "tapeB": 8276375,
    "tapeC": 7170884,
    "marketPercent": 0.01927,
    "lastUpdated": 1480433817311
  },
  {
    "mic": "IEXG",
    "tapeId": "V",
    "venueName": "IEX",
    "volume": 26907838,
    "tapeA": 16578501,
    "tapeB": 3889245,
    "tapeC": 6440092,
    "marketPercent": 0.01691,
    "lastUpdated": 1480433817235
  },
  {
    "mic": "XPHL",
    "tapeId": "X",
    "venueName": "NASDAQ PSX",
    "volume": 13334403,
    "tapeA": 5802294,
    "tapeB": 4239741,
    "tapeC": 3292368,
    "marketPercent": 0.00838,
    "lastUpdated": 1480433817071
  },
  {
    "mic": "XCHI",
    "tapeId": "M",
    "venueName": "CHX",
    "volume": 4719854,
    "tapeA": 834762,
    "tapeB": 3168434,
    "tapeC": 716658,
    "marketPercent": 0.00296,
    "lastUpdated": 1480433814711
  },
  {
    "mic": "XASE",
    "tapeId": "A",
    "venueName": "NYSE MKT",
    "volume": 4419196,
    "tapeA": 0,
    "tapeB": 4419196,
    "tapeC": 0,
    "marketPercent": 0.00277,
    "lastUpdated": 1480433816276
  },
  {
    "mic": "XCIS",
    "tapeId": "C",
    "venueName": "NSX",
    "volume": 187785,
    "tapeA": 39923,
    "tapeB": 62191,
    "tapeC": 85671,
    "marketPercent": 0.00011,
    "lastUpdated": 1480433816141
  }
]

HTTP request

/market

This endpoint returns near real time traded volume on the markets. Market data is captured by the IEX system from approximately 7:45 a.m. to 5:15 p.m. ET.

Parameters

Parameter Details
format • Parameter is optional
• Value can only be csv
• When parameter is not present, format defaults to JSON

Response

Key Description
mic refers to the Market Identifier Code (MIC).
tapeId refers to the tape id of the venue.
venueName refers to name of the venue defined by IEX.
volume refers to the amount of traded shares reported by the venue.
tapeA refers to the amount of Tape A traded shares reported by the venue.
tapeB refers to the amount of Tape B traded shares reported by the venue.
tapeC refers to the amount of Tape C traded shares reported by the venue.
marketPercent refers to the venue’s percentage of shares traded in the market.
lastUpdated refers to the last update time of the data in milliseconds since midnight Jan 1, 1970.

Changelog

The following is a list of running updates to the IEX API.

Version 2 (Coming early Q4)

Read more

Version 1.0

1.23 (August 8, 2018)

1.22 (May 23, 2018)

1.21 (February 8, 2018)

1.20 (January 30, 2018)

1.19 (September 29, 2017)

1.18 (September 20, 2017)

1.17 (July 5, 2017)

1.16 (June 30, 2017)

1.15 (June 14, 2017)

1.14 (May 16, 2017)

1.13 (May 15, 2017)

1.12 (May 12, 2017)

1.11 (April 19, 2017)

1.10 (February 28, 2017)

1.9 (February 23, 2017)

1.8 (February 17, 2017)

1.7 (February 8, 2017)

1.6 (February 2, 2017)

1.5 (January 27, 2017)

1.4 (January 25, 2017)

1.3 (January 20, 2017)

1.2 (January 19, 2017)

1.1 (January 18, 2017)

1.0 (January 17, 2017)