Introduction

IEX Cloud is a platform that makes financial data and services accessible to everyone.

API Reference

The IEX Cloud API is based on REST, has resource-oriented URLs, returns JSON-encoded responses, and returns standard HTTP response codes.

Authentication

API Tokens

IEX Cloud authenticates your API requests using your account’s API tokens. To use any IEX Cloud API, you must pass an API token with each request. If you do not include your API token when making an API request, or use one that is incorrect or disabled, IEX Cloud returns an error.

IEX Cloud provides two types of API tokens: publishable and secret.

Protecting your API tokens

Data Weighting

Certain products, such as the Core Financial API, measure usage in message counts. We calculate message counts by multiplying the type of data object by that data object’s weight. Data objects are commonly understood units, such as a single stock quote, company fundamentals, or news headline. Weights are determined by taking two factors into consideration: frequency of distribution and acquisition costs. Weighting can be found in the Data Weighting section of each API endpoint.

We’re also expanding our pricing calculator to help you understand how many messages you can expect to use, based on your app and number of users, so check back soon. In the meantime, you should consider the following inputs, which will impact your final cost:

API calls will return iexcloud-messages-used in the header to indicate the total number of messages consumed for the call.

Versioning

IEX Cloud will release new versions when we make backwards-incompatible changes to the API. We plan to support up to three active versions and will give advanced notice before releasing a new version or retiring an old version.

Backwards compatible changes:

Versions are added to the base url

Current Version is v1 https://cloud.iexapis.com/v1/

Naming convention

stable can be used to access the latest stable API version. For example, https://cloud.iexapis.com/stable/

latest can be used to access the latest API version which may be in beta. For example, https://cloud.iexapis.com/latest/

Beta versions will include a -beta, for example, https://cloud.iexapis.com/v2-beta/

Sandbox

Every account will be assigned two test tokens available via the Console. All the same endpoints as production will be available in the Sandbox Environment. Please note API data will be manipulated to scramble values and is not suitable for production usage. We’ve also updated the Usage Report to allow you to view the number of test messages the same way as production message usage.

How to use

Test tokens look like Tpk_ and Tsk_.

To make a call for test data, use the same url, but pass your test token.

Limits

IEX Cloud only applies request limits per IP address to ensure system stability. We limit requests to 100 per second per IP measured in milliseconds, so no more than 1 request per 10 milliseconds. We do allow bursts, but this should be sufficient for almost all use cases.

SSE endpoints are limited to 50 symbols per connection. You can make multiple connections if you need to consume more than 50 symbols.

Errors

IEX Cloud uses HTTP response codes to indicate the success or failure of an API request.

General HTML status codes

2xx Success.

4xx Errors based on information provided in the request

5xx Errors on IEX Cloud servers

IEX Cloud HTTP status codes

HTTP Code Type Description
400 Incorrect Values Invalid values were supplied for the API request
400 No Symbol No symbol provided
400 Type Required Batch request types parameter requires a valid value
401 Authorization Restricted Hashed token authorization is restricted
401 Authorization Required Hashed token authorization is required
401 Restricted The requested data is marked restricted and the account does not have access.
401 No Key An API key is required to access the requested endpoint.
401 Secret Key Required The secret key is required to access to requested endpoint.
401 Denied Referer The referer in the request header is not allowed due to API token domain restrictions.
402 Over Limit You have exceeded your allotted message quota and pay-as-you-go is not enabled.
402 Free tier not allowed The requested endpoint is not available to free accounts.
402 Tier not allowed The requested data is not available to your current tier.
403 Authorization Invalid Hashed token authorization is invalid.
403 Disabled Key The provided API token has been disabled
403 Invalid Key The provided API token is not valid.
403 Test token in production A test token was used for a production endpoint.
403 Production token in sandbox A production token was used for a sandbox endpoint.
403 Circuit Breaker Your pay-as-you-go circuit breaker has been engaged and further requests are not allowed.
403 Inactive Your account is currently inactive.
404 Unknown Symbol Unknown symbol provided
404 Not Found Resource not found
413 Max Types Maximum number of types values provided in a batch request.
429 Too many requests Too many requests hit the API too quickly. An exponential backoff of your requests is recommended.
451 Enterprise Permission Required The requested data requires additional permission to access.
500 System Error Something went wrong on an IEX Cloud server.

Query Parameters

Data Formats

Most endpoints support a format parameter to return data in a format other than the default JSON.

Supported formats

Format Content Type Example
json application/json ?format=json or by not passing the format parameter.
csv text/csv ?format=csv
psv text/plain ?format=psv

Filter results

Most endpoints support a filter parameter to return a subset of data. Pass a comma-delimited list of response attributes to filter. Response attributes are case-sensitive and are found in the Response Attributes section of each endpoint.

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

Streaming

NOTE: Available for Launch, Grow, and Scale tiers only.

We support Server-sent Events (SSE Streaming) for streaming data as an alternative to WebSockets. You will need to decide whether SSE streaming is more efficient for your workflow than REST calls. In many cases streaming is more efficient since you will only receive the latest available data. If you need to control how often you receive updates, then you may use REST to set a timed interval.

When you connect to an SSE endpoint, you should receive a snapshot of the latest message, then updates as they are available. You can disable this feature by passing a url parameter of nosnapshot=true

Curl Example

curl --header 'Accept: text/event-stream' https://cloud-sse.iexapis.com/stable/stocksUS\?symbols\=spy\&token\=YOUR_TOKEN

Curl Firehose Example

curl --header 'Accept: text/event-stream' https://cloud-sse.iexapis.com/stable/stocksUS\?token\=YOUR_TOKEN

How messages are counted

We use a reserve system for streaming endpoints due to high data rates. This is similar to how a credit card puts a hold on an account and reconciles the amount at a later time.

When you connect to an SSE endpoint, we will validate your API token, then attempt to reserve an amount of messages from your account. For example, 1000 messages.

If you have enough messages in your quota, or you have pay-as-you-go enabled, we will allow data to start streaming.

We keep track of the number of messages streamed to your account during our reserve interval.

Once our reserve interval expires, we will reconcile usage. This means we will compare how many messages were sent versus the number of messages we reserved. For example, if we delivered 1200 messages, you would have used 200 more than we reserved, so we will apply 200 additional messages to your account. If we only delivered 100 messages, we would credit the 900 unused messages back to your account.

After we reconcile the messages, we will attempt another reserve.

The reserve and reconcile process is seamless and does not impact your data stream. If we attempt to reserve messages and your account does not have enough quota and pay-as-you-go disabled, then we will disconnect your connection. You can avoid service disruptions by enabling pay-as-you-go in the Console.

When you disconnect from an endpoint, we will reconcile your message usage immediately.

SSE

Firehose

Scale users can firehose stream all symbols (excluding DEEP endpoints) by leaving off the symbols parameter.

Interval Streaming

Some SSE endpoints are offered on set intervals such as 1 second, 5 seconds, or 1 minute. This means we will send out messages no more than the interval subscribed to. This helps make message delivery more predictable.

Supported Endpoints

# Stock Quotes
# Firehose can be about 100 million messages per day
curl --header 'Accept: text/event-stream' 'https://cloud-sse.iexapis.com/stable/stocksUS?token=YOUR_TOKEN&symbols=spy'

# Stock Quotes every 1 second
# Can be up to 54,000 messages per symbol per day
curl --header 'Accept: text/event-stream' 'https://cloud-sse.iexapis.com/stable/stocksUS1Second?token=YOUR_TOKEN&symbols=spy'

# Stock Quotes every 5 seconds
# Can be up to 10,800 messages per symbol per day
curl --header 'Accept: text/event-stream' 'https://cloud-sse.iexapis.com/stable/stocksUS5Second?token=YOUR_TOKEN&symbols=spy'

# Stock Quotes every 1 minute
# Can be up to 900 messages per symbol per day
curl --header 'Accept: text/event-stream' 'https://cloud-sse.iexapis.com/stable/stocksUS1Minute?token=YOUR_TOKEN&symbols=spy'

# Social Sentiment
curl --header 'Accept: text/event-stream' 'https://cloud-sse.iexapis.com/stable/sentiment?token=YOUR_TOKEN&symbols=spy'

# News
curl --header 'Accept: text/event-stream' 'https://cloud-sse.iexapis.com/stable/news-stream?token=YOUR_TOKEN&symbols=spy'


# IEX TOPS
curl --header 'Accept: text/event-stream' 'https://cloud-sse.iexapis.com/stable/tops?token=YOUR_TOKEN&symbols=spy'


# IEX LAST
curl --header 'Accept: text/event-stream' 'https://cloud-sse.iexapis.com/stable/last?token=YOUR_TOKEN&symbols=spy,aapl,tsla'


# IEX DEEP
curl --header 'Accept: text/event-stream' 'https://cloud-sse.iexapis.com/stable/deep?token=YOUR_TOKEN&symbols=spy&channels=deep'

# IEX DEEP by channel

curl --header 'Accept: text/event-stream' 'https://cloud-sse.iexapis.com/stable/deep?token=YOUR_TOKEN&symbols=spy&channels=auction'

curl --header 'Accept: text/event-stream' 'https://cloud-sse.iexapis.com/stable/deep?token=YOUR_TOKEN&symbols=spy&channels=book'

curl --header 'Accept: text/event-stream' 'https://cloud-sse.iexapis.com/stable/deep?token=YOUR_TOKEN&symbols=spy&channels=op-halt-status'

curl --header 'Accept: text/event-stream' 'https://cloud-sse.iexapis.com/stable/deep?token=YOUR_TOKEN&symbols=spy&channels=official-price'

curl --header 'Accept: text/event-stream' 'https://cloud-sse.iexapis.com/stable/deep?token=YOUR_TOKEN&symbols=spy&channels=security-event'

curl --header 'Accept: text/event-stream' 'https://cloud-sse.iexapis.com/stable/deep?token=YOUR_TOKEN&symbols=spy&channels=trades'

curl --header 'Accept: text/event-stream' 'https://cloud-sse.iexapis.com/stable/deep?token=YOUR_TOKEN&symbols=spy&channels=trade-breaks'

curl --header 'Accept: text/event-stream' 'https://cloud-sse.iexapis.com/stable/deep?token=YOUR_TOKEN&symbols=spy&channels=trading-status'

Node.js SSE client example

'use strict';
const request = require('request');
var stream;

function connect() {
    stream = request({
        url: 'https://cloud-sse.iexapis.com/stable/stocksUS?token=YOUR_TOKEN&symbols=spy',
        headers: {
            'Content-Type': 'text/event-stream'
        }
    })
}
connect();

stream.on('socket', () => {
    console.log("Connected");
});

stream.on('end', () => {
    console.log("Reconnecting");
    connect();
});

stream.on('complete', () => {
    console.log("Reconnecting");
    connect();
});

stream.on('error', (err) => {
    console.log("Error", err);
    connect();
});

stream.on('data', (response) => {
    var str = response.toString();
    var obj = JSON.parse(str.replace('data:', ''));

    console.log(obj);
});

function wait () {
    setTimeout(wait, 1000);
};

wait();

Attribution

Attribution is required for all users. It is as simple as putting “Data provided by IEX Cloud” somewhere on your site or app and linking that text to https://iexcloud.io. In case of limited screen space, or design constraints, the attribution link can be included in your terms of service.

<a href="https://iexcloud.io">Data provided by IEX Cloud</a>

A note on currency

Prices and monetary values such as historical financials are returned in a symbol’s associated currency. You can see the currency for any given symbol in the reference data.

SSL

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

Support

If you find any issues with our API or have any questions, please file an issue at Github. If your account includes support, you’ll find additional support options when logged into your Console.

Libraries

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 team@iexcloud.io.

Libraries and applications that support IEX Cloud

Language URL
C# IEXCloudDotNet
Excel IEX-Excel-Sharp
Go goinvest
Hubot hubot-stock-checker
NodeJS iexcloud-api-wrapper
Outlook IEX-Outlook-Sharp
PowerPoint IEX-PowerPoint-Sharp
Python pyEX
iexfinance
R iexcloudR
Riex
Ruby iex-ruby-client
Word IEX-Word-Sharp

Applications that support IEX Cloud

Application URL
Perspective GitHub Link
Postman Collections GitHub Link
Stock Analysis Engine GitHub Link Docs
TOP - an HTML5 Trading Terminal from SoftCapital Top - By SoftCapital

Libraries that support the original IEX API v1

Reach out to the developer and ask about supporting IEX Cloud.

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

How To

REST How-To

Making your first REST API call is easy and can be done from your browser.

You will need:

REST calls are made up of:

Examples

Free IEX price for Apple

https://cloud.iexapis.com/stable/tops?token=YOUR_TOKEN_HERE&symbols=aapl

Stock quote for Apple

https://cloud.iexapis.com/stable/stock/aapl/quote?token=YOUR_TOKEN_HERE

Curl quote for Apple from the command line

curl -k 'https://cloud.iexapis.com/stable/stock/aapl/quote?token=YOUR_TOKEN_HERE'

Excel How-To

IEX Cloud supports Excel and Google Sheets data import methods.

Excel

Excel provides the Webservice function to import data into a cell. We support this in endpoints like quote, stats, financials, cash-flow, balance-sheet, income, and dividends.

Example:

This will pull just the latest price for Apple
=WEBSERVICE("https://cloud.iexapis.com/stable/stock/aapl/quote/latestPrice?token=YOUR_TOKEN_HERE")

IEX Cloud provides an example Excel file that can be used to see how the Webservice function works. Download it here - the Excel webservice function only works on Excel for Windows.

Please note, the highlighted column for latestUpdate is a formula that converts the Unix timestamp into an excel date/time. To get this to work you’ll have to put your token in column B1. And don’t forget that you need to refresh the workbook to update (CTRL + ALT + F9)

Google Sheets

Google Sheets provides IMPORT functions to populate cells with data.

This will pull just the latest price for Apple
=IMPORTDATA("https://cloud.iexapis.com/stable/stock/aapl/quote/latestPrice?token=YOUR_TOKEN_HERE")

Next earnings report date for Apple
=IMPORTDATA("https://cloud.iexapis.com/stable/stock/aapl/estimates/1/reportDate?token=YOUR_TOKEN_HERE")

CSV Files

You can also return most endpoints as CSV by passing a query parameter of format=csv.
https://cloud.iexapis.com/stable/stock/aapl/quote?token=YOUR_TOKEN_HERE&format=csv

Account

Metadata

Used to retrieve account details such as current tier, payment status, message quote usage, etc.

HTTP Request Example

GET /account/metadata

The above example will return JSON with the following keys

{
    "payAsYouGoEnabled": true,
    "effectiveDate": 1547590582000,
    "endDateEffective": 1547830921000,
    "subscriptionTermType": "monthly",
    "tierName": "launch",
    "messageLimit": 1000000000,
    "messagesUsed": 215141655,
    "circuitBreaker": 3000000000
}

Requires SK token to access.

Data Weighting

Free

Data Timing

Start users End of day
Launch, Grow, and Scale users realtime

Available Methods

/account/metadata

Usage

Used to retrieve current month usage for your account.

HTTP Request Example

GET /account/usage/{type}

The following keys are returned

{
    "monthlyUsage": 215200,
    "monthlyPayAsYouGo": 0,
    "dailyUsage": {
        "20190120": 115200, 
        "20190121": 100000
    },
    "tokenUsage": {
        "pk_123": 215200
    },
    "keyUsage": {
        "IEX_STATS": 0, 
        "EARNINGS": 115200, 
        "STOCK_QUOTES": 100000
    }
}

Requires SK token to access

Data Weighting

Free

Data Timing

realtime

Notes

Billing resets on the first of every month at 00:00:00 UTC

Available Methods

GET /account/usage/{type}

Path Parameters

Option Description
type Optional. Used to specify which quota to return. Ex: messages, rules, rule-records, alerts, alert-records

Pay as you go

Used to toggle Pay-as-you-go on your account.

HTTP Request Example

POST /account/payasyougo

Note when you turn off pay-as-you-go, there is a 30 second period before you can re-enable.

Requires SK token to access

Data Weighting

Free

Data Timing

Available Methods

POST /account/payasyougo

Query Parameters

Option Description
token Required (Boolean) Your SK API token.
allow Required (Boolean) Pass true to enable Pay-as-you-go, or false to disable.

Message Cutoff

Used to set an upper limit, “circuit breaker”, on pay as you go messages where you want to make sure not to go above a certain amount. Set the total messages you wish to consume for the month, and once that limit is reached, all API calls will stop until the limit is removed or increased.

HTTP Request Example

POST /account/circuitbreaker

Requires SK token to access

Data Weighting

Free

Available Methods

POST /account/circuitbreaker

Query Parameters

Option Description
token Required (Boolean) Your SK API token.
totalMessages Required (Number) The total messages your account is allowed to consume for the current month above your quota. For example: If your account is allowed 5 million messages, and you do not want to exceed 10 million for the month, then you will pass 10000000 as total messages.

Signed Requests

Making your first Signed REST API requires a little more effort. This approach has been heavily based on Amazon’s V4 signing approach. The basic idea is to take your secret key, and use that to generate a cryptographic fingerprint of all aspects of your request, so they can be verified by the server, so the interception of the data over the network does not compromise your account. However, you must take care that your secret key for your publishable key is not compromised!

You will need:

Signed REST calls are made up of:

Setting up signed token

Signs a token, so it will require signed headers when a request is made using this token.

HTTP request example

POST content-type:application/json { "token" : "SK_TOKEN", "tokenToSign" : "PK/SK_TOKEN_TO_BE_SIGNED", ("unsign" : true) } /account/signed

The above example will return JSON with the following keys

{
    "secret" : "e2700e6b-3be0-4f31-a408-61365caa263a",
    "signedToken" : "pk_6b95e1fac3114f0392a5becd4d8f08e1"
}

Note that the unsign attribute is optional and will allow you to unsign a key. You may run this API call more than once, and it will generate a new secret for the token each time.

Data Weighting

Free

Notes

Only available to Grow and Scale users

Examples

See below

Response Attributes

Key Type Description
secret string The secret key for the token
signedToken string The token that has just been signed

Getting the secret for a signed token

Returns the secret for a token, thus making it “signed”.

HTTP request example

GET /account/signed?token=SK_TOKEN&signedToken=TOKEN

The above example will return JSON with the following keys

{
    "secret" : "e2700e6b-3be0-4f31-a408-61365caa263a",
}

Data Weighting

Free

Notes

Only available to Grow and Scale users

Examples

See below

Response Attributes

Key Type Description
secret string The secret key for the token

Examples on how to make a signed request:

Node.js Example

#!/usr/bin/env node

/*
Copyright 2019-2020 iexcloud. or its affiliates. All Rights Reserved.

This file is licensed under the Apache License, Version 2.0 (the "License").
You may not use this file except in compliance with the License. A copy of the
License is located at

https://www.apache.org/licenses/LICENSE-2.0

This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
OF ANY KIND, either express or implied. See the License for the specific
language governing permissions and limitations under the License.
*/

const moment = require('moment');
const crypto = require('crypto');
const https  = require('https');

const method = 'GET'
const host = 'cloud.iexapis.com'

const access_key = process.env.IEX_PUBLIC_KEY // public key
const secret_key = process.env.IEX_SECRET_KEY // secret key for public key

const canonical_querystring = 'token=' + access_key ;
const canonical_uri = '/stable/stock/aapl/company'

var ts = moment.utc();
const iexdate = ts.format("YYYYMMDDTHHmmss") + 'Z';
const datestamp = ts.format("YYYYMMDD");

function sign(secret, data) {
    return crypto.createHmac('sha256', secret).update(data, "utf8").digest('hex');
};

function getSignatureKey(key, datestamp) {
    const signedDate = sign(key, datestamp);
    return sign(signedDate, 'iex_request');
}

if ( ! access_key || ! secret_key ) {
    console.warn('No access key is available.')
    process.exit(1);
}

const canonical_headers = 'host:' + host + '\n' + 'x-iex-date:' + iexdate + '\n';
const signed_headers = 'host;x-iex-date'
const payload = '';
const payload_hash = crypto.createHash('sha256').update(payload).digest('hex');
const canonical_request = method + '\n' + canonical_uri + '\n' + canonical_querystring + '\n' + canonical_headers + '\n' + signed_headers + '\n' + payload_hash;
const algorithm = 'IEX-HMAC-SHA256';
const credential_scope = datestamp + '/' + 'iex_request';
const string_to_sign = algorithm + '\n' +  iexdate + '\n' +  credential_scope + '\n' + crypto.createHash('sha256').update(canonical_request, "utf8").digest('hex');
const signing_key = getSignatureKey(secret_key, datestamp)
const signature = crypto.createHmac('sha256', signing_key).update(string_to_sign, "utf8").digest('hex');
const authorization_header = algorithm + ' ' + 'Credential=' + access_key + '/' + credential_scope + ', ' +  'SignedHeaders=' + signed_headers + ', ' + 'Signature=' + signature
const headers = {'x-iex-date':iexdate, 'Authorization':authorization_header}

const options = {
    host: host,
    port: 443,
    path: canonical_uri + "?" + canonical_querystring,
    method: 'GET',
    headers: headers
};

const req = https.request(options, function(res) {
    res.setEncoding('utf8');
    res.on('data', function(chunk) {
        var parsed = JSON.parse(chunk);
        console.log(parsed);
    });
});
req.end();

Python Example

#!/usr/bin/env python

# Copyright 2019-2020 iexcloud. or its affiliates. All Rights Reserved.
#
# This file is licensed under the Apache License, Version 2.0 (the "License").
# You may not use this file except in compliance with the License. A copy of the
# License is located at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
# OF ANY KIND, either express or implied. See the License for the specific
# language governing permissions and limitations under the License.

import sys, os, base64, datetime, hashlib, hmac
import requests # pip install requests

# ************* REQUEST VALUES *************
method = 'GET'
host = 'cloud.iexapis.com'

access_key = os.environ.get('IEX_PUBLIC_KEY')
secret_key = os.environ.get('IEX_SECRET_KEY')

canonical_querystring = 'token=' + access_key
canonical_uri = '/stable/stock/aapl/company'
endpoint = "https://" + host + canonical_uri

def sign(key, msg):
    return hmac.new(key, msg.encode('utf-8'), hashlib.sha256).hexdigest()

def getSignatureKey(key, dateStamp):
    kDate = sign(key, dateStamp)
    return sign(kDate, 'iex_request')

if access_key is None or secret_key is None:
    print('No access key is available.')
    sys.exit()

t = datetime.datetime.utcnow()
iexdate = t.strftime('%Y%m%dT%H%M%SZ')
datestamp = t.strftime('%Y%m%d') # Date w/o time, used in credential scope
canonical_headers = 'host:' + host + '\n' + 'x-iex-date:' + iexdate + '\n'
signed_headers = 'host;x-iex-date'
payload_hash = hashlib.sha256(('').encode('utf-8')).hexdigest()
canonical_request = method + '\n' + canonical_uri + '\n' + canonical_querystring + '\n' + canonical_headers + '\n' + signed_headers + '\n' + payload_hash
algorithm = 'IEX-HMAC-SHA256'
credential_scope = datestamp + '/' + 'iex_request'
string_to_sign = algorithm + '\n' +  iexdate + '\n' +  credential_scope + '\n' +  hashlib.sha256(canonical_request.encode('utf-8')).hexdigest()
signing_key = getSignatureKey(secret_key, datestamp)
signature = hmac.new(signing_key, (string_to_sign).encode('utf-8'), hashlib.sha256).hexdigest()
authorization_header = algorithm + ' ' + 'Credential=' + access_key + '/' + credential_scope + ', ' +  'SignedHeaders=' + signed_headers + ', ' + 'Signature=' + signature

headers = {'x-iex-date':iexdate, 'Authorization':authorization_header}

# ************* SEND THE REQUEST *************
request_url = endpoint + '?' + canonical_querystring

print('\nBEGIN REQUEST++++++++++++++++++++++++++++++++++++')
print('Request URL = ' + request_url)
r = requests.get(request_url, headers=headers)

print('\nRESPONSE++++++++++++++++++++++++++++++++++++')
print('Response code: %d\n' % r.status_code)
print(r.text)

Data APIs

IEX Cloud data can be organized into three generic data APIs: time-series, data-tables, and data-points. Each API type is self describing and the docs can be accessed without an API token.

Time Series

Time series is the most common type of data available, and consists of a collection of data points over a period of time. Time series data is indexed by a single date field, and can be retrieved by any portion of time.

To use this endpoint, you’ll first make a free call to get an inventory of available time series data.

HTTP request example

# List all available time series data
GET /time-series
// Example return
[
  {
    "id": "REPORTED_FINANCIALS",
    "description": "Reported financials",
    "key": "a valid symbol",
    "subkey": "10-K,10-Q",  
    "schema": {
      "type": "object",
      "properties": {
        "formFiscalYear": {
          "type": "number"
        },
        "formFiscalQuarter": {
          "type": "number"
        },
        "version": {
          "type": "string"
        },
        "periodStart": {
          "type": "string"
        },
        "periodEnd": {
          "type": "string"
        },
        "dateFiled": {
          "type": "string"
        },
        "reportLink": {
          "type": "string"
        },
        "adsh": {
          "type": "string"
        },
        "stat": {
          "type": "object"
        }
      }
    },
    "weight": 5000,
    "created": "2019-06-04 21:32:20",
    "lastUpdated": "2019-06-04 21:32:20"
  }
]

A full inventory of time series data is returned by calling /time-series without a data id. The data structure returned is an array of available data sets that includes the data set id, a description of the data set, the data weight, a data schema, date created, and last updated date. The schema defines the minimum data properties for the data set, but note that additional properties can be returned. This is possible when data varies between keys of a given data set.

Each inventory entry may include a key and subkey which describes what can be used for the key or subkey parameter.

Once you find the data set you want, use the id to query the time series data.

# Get time series data
GET /time-series/{id}/{key?}/{subkey?}

Time series data is queried by a required data set id. For example, “REPORTED_FINANCIALS”. Some time series data sets are broken down further by a data set key. This may commonly be a symbol. For example, REPORTED_FINANCIALS accepts a symbol such as “AAPL” as a key. Data sets can be even further broken down by sub key. For example, REPORTED_FINANCIALS data set with the key “AAPL” can have a sub key of “10-Q” or “10-K”.

Keys and sub keys will be defined in the data set inventory.

Data Weighting

The time series inventory call is Free
Time series data weight is specified in the inventory call and applied per array item (row) returned.

Data Timing

Varies

Data Schedule

Varies

Data Source(s)

Varies

Notes

Access to each data point will be based on the source Stocks endpoint

Available Methods

GET /time-series

GET /time-series/{id}/{key?}/{subkey}

Path Parameters

Parameter Details
id Required
ID used to identify a time series dataset.
key Required
Key used to identify data within a dataset. A common example is a symbol such as AAPL.
subkey Optional
The optional subkey can used to further refine data for a particular key if available.

Query String Parameters

Parameter Details
from Optional
Returns data on or after the given from date. Format YYYY-MM-DD. Used together with the to parameter to define a date range.
to Optional
Returns data on or before the given to date. Format YYYY-MM-DD
on Optional
Returns data on the given date. Format YYYY-MM-DD
last Optional
Returns the latest n number of records in the series
first Optional
Returns the first n number of records in the series
filter Optional
The standard filter parameter. Filters return data to the specified comma delimited list of keys (case-sensitive)
format Optional
The standard format parameter. Returns data as JSON by default. See the data format section for supported types.

Examples

/time-series/REPORTED_FINANCIALS/AAPL

/time-series/REPORTED_FINANCIALS/AAPL/10-K

/time-series/REPORTED_FINANCIALS/AAPL/10-Q?last=2

/time-series/REPORTED_FINANCIALS/AAPL/10-Q?first=3

/time-series/REPORTED_FINANCIALS/AAPL/10-Q?from=2018-01-01&to=2019-06-01

/time-series/REPORTED_FINANCIALS/AAPL/10-Q?from=2016-01-01

/time-series/REPORTED_FINANCIALS/AAPL/10-Q?on=2016-01-01

/time-series/REPORTED_FINANCIALS/AAPL/10-Q?from=2010-01-01&interval=2&format=csv

Response Attributes

Time series call returns an array of objects. The data returned varies by dataset ID, but each will contain common attributes.

Name Type Description
id string The dataset ID
source string source of the data if available
key string The requested dataset key
subkey string The requested dataset subkey
date number The date field of the time series as epoch timestamp

Time series inventory call returns:

Name Type Description
id string Dataset ID
description string Description of the dataset
key string Dataset key
subkey string Dataset subkey
schema object Data weight to call the individual data point in number of messages.
weight number Data weight to call the time series in number of messages per array item (row) returned.
created string ISO 8601 formatted date time the time series dataset was created.
lastUpdated string ISO 8601 formatted date time the time series dataset was last updated.

Data Points

Data points are available per symbol and return individual plain text values. Retrieving individual data points is useful for Excel and Google Sheet users, and applications where a single, lightweight value is needed. We also provide update times for some endpoints which allow you to call an endpoint only once it has new data.

To use this endpoint, you’ll first make a free call to list all available data points for your desired symbol, which can be a security or data category.

HTTP request example

# List available data keys
GET /data-points/{symbol}
// Example return
[
  {
    "key": "QUOTE-LATESTPRICE",
    "weight": 1,
    "description": "Quote: latestPrice",
    "lastUpdated": "2019-04-15T13:56:39+00:00"
  },
  {
    "key": "LATEST-FINANCIAL-REPORT-DATE",
    "weight": 0,
    "description": "Latest financials report date available",
    "lastUpdated": "2019-04-15T08:08:10+00:00"
  },
  {
    "key": "LATEST-NEWS",
    "weight": 0,
    "description": "Timestamp of the latest available news item",
    "lastUpdated": "2019-04-15T13:50:11+00:00"
  },
  {
    "key": "PRICE-TARGET",
    "weight": 500,
    "description": "Price target average",
    "lastUpdated": "2019-04-15T12:00:08+00:00"
  },
]

Once you find the data point you want, use the key to fetch the individual data point.

# Get a data point
GET /data-points/{symbol}/{key}

Data Weighting

List available data keys Free
Get a data point: The weight specified in the data list.

Data Timing

Varies

Data Schedule

Varies

Data Source(s)

Varies

Notes

Access to each data point will be based on the source Stocks endpoint

Available Methods

GET /data-points/{symbol}

GET /data-points/{symbol}/{key}

Examples

/data-points/aapl/QUOTE-LATESTPRICE

Response Attributes

Data point call returns a single plain text value

Available data keys call returns:

Name Type Description
key string Data key used to call a specific data point
weight number Data weight to call the individual data point in number of messages.
description string Description of the data point
lastUpdated string ISO 8601 formatted date time the data point was last updated.

Data Tables

In Development The data tables endpoint provides structured data that is not date or time dependent. Data can contain a variety of rows, columns, and data types and is structured as a JSON array of objects.

Stocks

Advanced Stats

Returns everything in key stats plus additional advanced stats such as EBITDA, ratios, key financial data, and more.

HTTP request example

GET /stock/{symbol}/advanced-stats

The above example will return JSON with the following keys

{
    // ...key stats
    "totalCash": 66301000000,
    "currentDebt": 20748000000,
    "revenue": 265809000000,
    "grossProfit": 101983000000,
    "totalRevenue": 265809000000,
    "EBITDA": 80342000000,
    "revenuePerShare": 0.02,
    "revenuePerEmployee": 2013704.55,
    "debtToEquity": 1.07,
    "profitMargin": 22.396157,
    "enterpriseValue": 1022460690000,
    "enterpriseValueToRevenue": 3.85
    "priceToSales": 3.49,
    "priceToBook": 8.805916432564608,
    "forwardPERatio": 18.14,
    "pegRatio": 2.19,
    "beta": 1.4661365583766115
}

Data Weighting

3,000 per symbol + Key Stats weight

Data Timing

End of day

Data Schedule

4am, 5am ET

Data Source(s)

Primary Partner

Notes

Launch, Grow, and Scale tiers only.

Available Methods

GET /stock/{symbol}/advanced-stats/

Examples

Response Attributes

Key Type Description
Inherited stats See key stats
totalCash number Cash on hand
currentDebt number The current debt
revenue number In accounting, revenue is the income that a business has from its normal business activities, usually from the sale of goods and services to customers
grossProfit number Gross profit is the profit a company makes after deducting the costs associated with making and selling its products, or the costs associated with providing its services
totalRevenue number Calculated as the sum of gross income (the difference between sales or revenues and cost of goods sold and depreciation) and cost of goods sold for the period
EBITDA number Earnings before interest, tax, depreciation and amoritzation
revenuePerShare number Amount of revenue over common shares outstanding
revenuePerEmployee number Net Income per employee (NIPE) is a company’s net income divided by the number of employees
debtToEquity number The debt-to-equity (D/E) ratio is calculated by dividing a company’s total liabilities by its shareholder equity
profitMargin number A measure of profitability by finding the net profit as a percentage of the revenue
enterpriseValue number Enterprise value (EV) is a measure of a company’s total value, often used as a more comprehensive alternative to equity market capitalization
enterpriseValueToRevenue number The enterprise value-to-revenue multiple (EV/R) is a measure of the value of a stock that compares a company’s enterprise value to its revenue
priceToSales number Price–sales ratio, P/S ratio, or PSR, is a valuation metric for stocks. It is calculated by dividing the company’s market capitalization by the revenue in the most recent year; or, equivalently, divide the per-share stock price by the per-share revenue
priceToBook number The price-to-book ratio, or P/B ratio, is a financial ratio used to compare a company’s current market price to its book value
forwardPERatio number Forward price-to-earnings (forward P/E) is a version of the ratio of price-to-earnings (P/E) that uses forecasted earnings for the P/E calculation
pegRatio number The PEG ratio is calculated easily and represents the ratio of the P/E to the expected future earnings per share (EPS) growth rate of a company
beta number Beta is a measure used in fundamental analysis to determine the volatility of an asset or portfolio in relation to the overall market. Levered beta calculated with 1 year historical data and compared to SPY.
peHigh string 52 week high of the symbol’s PE Ratio.
peLow string 52 week low of the symbol’s PE Ratio.

As Reported Financials

As reported financials are available through the Time Series endpoint. Returns financials reported directly in 10-K and 10-Q filings.

Go to the Time Series docs to get as reported financial data.

[
  {
    "id": "REPORTED_FINANCIALS",
    "source": "SEC",
    "key": "GOOGL",
    "subkey": "10-K",
    "date": 1549324800,
    "updated": 1560349214,
    "DecreaseInUnrecognizedTaxBenefitsIsReasonablyPossible": 600000000,
    "formFiscalYear": 2018,
    "version": "us-gaap",
    "periodStart": 1514764800000,
    "periodEnd": 1546214400000,
    "dateFiled": 1549324800000,
    "formFiscalQuarter": null,
    "reportLink": "",
    "OtherAccruedLiabilitiesCurrent": 7394000000,
    "OtherAssetsCurrent": 4236000000,
    "DeferredFederalStateAndLocalTaxExpenseBenefit": 907000000,
    "OtherAssetsNoncurrent": 2693000000,
    "DeferredForeignIncomeTaxExpenseBenefit": -134000000,
    "DeferredIncomeTaxAssetsNet": 737000000,
    "DeferredIncomeTaxesAndTaxCredits": 778000000,
    "DeferredIncomeTaxExpenseBenefit": 773000000,
    "DeferredIncomeTaxLiabilities": 3491000000,
    "DeferredIncomeTaxLiabilitiesNet": 1264000000,
    "OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax": -823000000,
    "OtherComprehensiveIncomeLossAvailableForSaleSecuritiesTax": -156000000,
    "OtherComprehensiveIncomeLossCashFlowHedgeGainLossAfterReclassificationAndTax": 388000000,
    "OtherComprehensiveIncomeLossCashFlowHedgeGainLossAfterReclassificationTax": 103000000,
    "OtherComprehensiveIncomeLossCashFlowHedgeGainLossBeforeReclassificationAfterTax": 290000000,
    "OtherComprehensiveIncomeLossCashFlowHedgeGainLossReclassificationAfterTax": -98000000,
    "DeferredTaxAssetsGross": 5781000000,
    "DeferredTaxAssetsLiabilitiesNet": 250000000,
    "DeferredTaxAssetsNet": 2964000000,
    "DeferredTaxAssetsOperatingLossCarryforwards": 557000000,
    "DeferredTaxAssetsOther": 251000000,
    "OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax": -781000000,
    "OtherComprehensiveIncomeLossNetOfTax": -1216000000,
    "OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent": -1314000000,
    "OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax": 911000000,
    "DeferredTaxAssetsTaxCreditCarryforwardsOther": 1979000000,
    "DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsEmployeeBenefits": 387000000,
    "DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost": 291000000,
    "DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsOther": 1062000000,
    "DeferredTaxAssetsValuationAllowance": 2817000000,
    "DeferredTaxLiabilities": 527000000,
    "DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets": 229000000,
    "DeferredTaxLiabilitiesInvestments": 1143000000,
    "DeferredTaxLiabilitiesOther": 237000000,
    "DeferredTaxLiabilitiesPropertyPlantAndEquipment": 1382000000,
    "LossContingencyAccrualCarryingValueCurrent": 7754000000,
    "DefinedContributionPlanCostRecognized": 691000000,
    "InventoryNet": 1107000000,
    "EmployeeRelatedLiabilitiesCurrent": 6839000000,
    "LossContingencyLossInPeriod": 5071000000,
    "IncreaseDecreaseInIncomeTaxes": -2251000000,
    "ForeignCurrencyCashFlowHedgeGainLossToBeReclassifiedDuringNext12Months": 247000000,
    "AccountsPayableCurrent": 4378000000,
    "IncreaseDecreaseInOtherOperatingAssets": 1207000000,
    "OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax": 88000000,
    "EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense": 1500000000,
    "ForeignCurrencyTransactionGainLossBeforeTax": -80000000,
    "ForeignCurrencyTransactionLossBeforeTax": 195000000,
    "AccountsReceivableNetCurrent": 20838000000,
    "ContractWithCustomerLiabilityCurrent": 1784000000,
    "ContractWithCustomerLiabilityNoncurrent": 396000000,
    "ContractWithCustomerLiabilityRevenueRecognized": 1500000000,
    "Assets": 232792000000,
    "AssetsCurrent": 135676000000,
    "ImpairmentOfInvestments": 0,
    "IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic": 15800000000,
    "IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign": 19100000000,
    "IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments": 34913000000,
    "IncomeTaxesPaidNet": 5671000000,
    "IncomeTaxesReceivable": 355000000,
    "IncomeTaxExpenseBenefit": 4177000000,
    "CommercialPaper": 0,
    "CommitmentsAndContingencies": 0,
    "MarketableSecuritiesCurrent": 92439000000,
    "CommonStockCapitalSharesReservedForFutureIssuance": 31848134,
    "MarketingAndAdvertisingExpense": 6400000000,
    "PreferredStockParOrStatedValuePerShare": 0.001,
    "PreferredStockSharesAuthorized": 100000000,
    "PreferredStockSharesIssued": 0,
    "PreferredStockSharesOutstanding": 0,
    "DerivativeAssetFairValueGrossLiability": 56000000,
    "DerivativeAssetFairValueOffsetAgainstCollateralNetOfNotSubjectToMasterNettingArrangementPolicyElection": 102000000,
    "AssetsNoncurrent": 97116000000,
    "CommonStockParOrStatedValuePerShare": 0.001,
    "CommonStockSharesAuthorized": 15000000000,
    "CommonStockSharesIssued": 695556000,
    "CommonStockSharesOutstanding": 695556000,
    "CommonStocksIncludingAdditionalPaidInCapital": 45049000000,
    "AccruedIncomeTaxesCurrent": 69000000,
    "AccruedIncomeTaxesNoncurrent": 11327000000,
    "AccruedLiabilitiesCurrent": 16958000000,
    "IncreaseDecreaseInAccountsPayable": 1067000000,
    "IncreaseDecreaseInAccountsReceivable": 2169000000,
    "IncreaseDecreaseInAccruedLiabilities": 8614000000,
    "ConvertiblePreferredStockNonredeemableOrRedeemableIssuerOptionValue": 0,
    "LongTermDebt": 4062000000,
    "LongTermDebtAndCapitalLeaseObligations": 4012000000,
    "ComprehensiveIncomeNetOfTax": 29520000000,
    "LongTermDebtFairValue": 3900000000,
    "LongTermDebtMaturitiesRepaymentsOfPrincipalAfterYearFive": 3039000000,
    "LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths": 0,
    "NetCashProvidedByUsedInFinancingActivities": -13179000000,
    "NetCashProvidedByUsedInInvestingActivities": -28504000000,
    "NetCashProvidedByUsedInOperatingActivities": 47971000000,
    "DerivativeAssetNotOffsetPolicyElectionDeduction": 90000000,
    "DerivativeAssets": 513000000,
    "EntityPublicFloat": 680000000000,
    "NetIncomeLoss": 30736000000,
    "IncreaseDecreaseInCollateralHeldUnderSecuritiesLending": 0,
    "IncreaseDecreaseInContractWithCustomerLiability": 371000000,
    "DerivativeCollateralObligationToReturnCash": 307000000,
    "DerivativeCollateralObligationToReturnSecurities": 14000000,
    "DerivativeCollateralRightToReclaimCash": 0,
    "DerivativeCollateralRightToReclaimSecurities": 0,
    "AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment": 22788000000,
    "PaymentsForRepurchaseOfCommonStock": 9075000000,
    "LeaseAndRentalExpense": 1300000000,
    "LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFive": 3000000,
    "LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFour": 3000000,
    "LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree": 1003000000,
    "LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo": 14000000,
    "LongTermDebtNoncurrent": 3950000000,
    "DerivativeFairValueOfDerivativeAsset": 569000000,
    "DerivativeFairValueOfDerivativeLiability": 289000000,
    "AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax": 213000000,
    "AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax": 1054000000,
    "AccumulatedOtherComprehensiveIncomeLossNetOfTax": -2306000000,
    "ProceedsFromCollectionOfNotesReceivable": 0,
    "ProceedsFromDebtNetOfIssuanceCosts": 6766000000,
    "IntangibleAssetsNetExcludingGoodwill": 2220000000,
    "UnrecognizedTaxBenefits": 4652000000,
    "UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions": 623000000,
    "UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities": 191000000,
    "UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued": 490000000,
    "UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions": 449000000,
    "UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions": 321000000,
    "AvailableForSaleSecuritiesDebtMaturitiesAfterFiveThroughTenYearsFairValue": 2236000000,
    "AvailableForSaleSecuritiesDebtMaturitiesAfterOneThroughFiveYearsFairValue": 54504000000,
    "AvailableForSaleSecuritiesDebtMaturitiesAfterTenYearsFairValue": 10808000000,
    "EquityMethodInvestments": 1300000000,
    "CapitalLeasedAssetsGross": 648000000,
    "CapitalLeaseObligationsNoncurrent": 62000000,
    "ProceedsFromMinorityShareholders": 950000000,
    "ProceedsFromPaymentsForSecuritiesPurchasedUnderAgreementsToResell": 0,
    "DerivativeLiabilities": 233000000,
    "DerivativeLiabilityFairValueGrossAsset": 56000000,
    "DerivativeLiabilityFairValueOffsetAgainstCollateralNetOfNotSubjectToMasterNettingArrangementPolicyElection": 143000000,
    "DerivativeLiabilityNotOffsetPolicyElectionDeduction": 90000000,
    "EquitySecuritiesFvNiGainLoss": 5460000000,
    "EquitySecuritiesFvNiRealizedGainLoss": 1458000000,
    "EquitySecuritiesFvNiUnrealizedGainLoss": 4002000000,
    "AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue": 23669000000,
    "AvailableForSaleSecuritiesDebtSecurities": 91217000000,
    "ProceedsFromSaleAndMaturityOfMarketableSecurities": 48507000000,
    "ProceedsFromSaleAndMaturityOfOtherInvestments": 1752000000,
    "PaymentsToAcquireMarketableSecurities": 50158000000,
    "PaymentsToAcquireOtherInvestments": 2073000000,
    "PaymentsToAcquirePropertyPlantAndEquipment": 25139000000,
    "EquitySecuritiesWithoutReadilyDeterminableFairValueAmount": 12275000000,
    "EquitySecuritiesWithoutReadilyDeterminableFairValueDownwardPriceAdjustmentAnnualAmount": 178000000,
    "EquitySecuritiesWithoutReadilyDeterminableFairValueDownwardPriceAdjustmentCumulativeAmount": -178000000,
    "EquitySecuritiesWithoutReadilyDeterminableFairValueUpwardPriceAdjustmentAnnualAmount": 4285000000,
    "EquitySecuritiesWithoutReadilyDeterminableFairValueUpwardPriceAdjustmentCumulativeAmount": -4285000000,
    "CashAndCashEquivalentsAtCarryingValue": 16701000000,
    "CashAndCashEquivalentsFairValueDisclosure": 3493000000,
    "CashAndCashEquivalentsPeriodIncreaseDecrease": 5986000000,
    "CashCashEquivalentsAndShortTermInvestments": 109140000000,
    "PurchaseObligation": 7400000000,
    "AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue": 9353000000,
    "NoncontrollingInterestIncreaseFromSaleOfParentEquityInterest": 659000000,
    "Liabilities": 55164000000,
    "LiabilitiesAndStockholdersEquity": 232792000000,
    "LiabilitiesCurrent": 34620000000,
    "ProceedsFromSaleOfPropertyPlantAndEquipment": 98000000,
    "InterestCostsCapitalized": 92000000,
    "InterestExpense": 114000000,
    "GeneralAndAdministrativeExpense": 8126000000,
    "PropertyPlantAndEquipmentGross": 82507000000,
    "PropertyPlantAndEquipmentNet": 59719000000,
    "AllocatedShareBasedCompensationExpense": 10000000000,
    "CostMethodInvestments": 4500000000,
    "CostMethodInvestmentsFairValueDisclosure": 8800000000,
    "InterestIncomeOther": 1878000000,
    "InterestPaidNet": 69000000,
    "SellingAndMarketingExpense": 16333000000,
    "Goodwill": 17888000000,
    "GoodwillAcquiredDuringPeriod": 1227000000,
    "AllowanceForDoubtfulAccountsReceivableCurrent": 729000000,
    "NonoperatingIncomeExpense": 8592000000,
    "StockholdersEquity": 177628000000,
    "GoodwillImpairmentLoss": 0,
    "GoodwillTransfers": 0,
    "GoodwillTranslationAndPurchaseAccountingAdjustments": -86000000,
    "FiniteLivedIntangibleAssetsAccumulatedAmortization": 3957000000,
    "FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive": 182000000,
    "FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths": 712000000,
    "FiniteLivedIntangibleAssetsAmortizationExpenseYearFive": 7000000,
    "FiniteLivedIntangibleAssetsAmortizationExpenseYearFour": 201000000,
    "FiniteLivedIntangibleAssetsAmortizationExpenseYearThree": 533000000,
    "FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo": 585000000,
    "FiniteLivedIntangibleAssetsGross": 6177000000,
    "FiniteLivedIntangibleAssetsNet": 2220000000,
    "EarningsPerShareBasic": 44.22,
    "EarningsPerShareDiluted": 43.7,
    "RevenueFromContractWithCustomerExcludingAssessedTax": 136819000000,
    "OciBeforeReclassificationsNetOfTaxAttributableToParent": -527000000,
    "EffectiveIncomeTaxRateContinuingOperations": 0.12,
    "EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate": 0.21,
    "EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance": -0.02,
    "EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate": -0.012,
    "EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential": -0.049,
    "CostOfRevenue": 59549000000,
    "EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost": 0.022,
    "EffectiveIncomeTaxRateReconciliationOtherAdjustments": 0.007,
    "EffectiveIncomeTaxRateReconciliationTaxCreditsResearch": 0.024,
    "RetainedEarningsAccumulatedDeficit": 134885000000,
    "CostsAndExpenses": 110498000000,
    "RepaymentsOfDebtAndCapitalLeaseObligations": 6827000000,
    "EffectOfExchangeRateOnCashAndCashEquivalents": -302000000,
    "CumulativeEffectOfNewAccountingPrincipleInPeriodOfAdoption": -697000000,
    "CurrentFederalStateAndLocalTaxExpenseBenefit": 2153000000,
    "OperatingIncomeLoss": 26321000000,
    "UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate": 2900000000,
    "StockIssuedDuringPeriodValueNewIssues": 148000000,
    "StockRepurchasedAndRetiredDuringPeriodValue": 9075000000,
    "CurrentForeignTaxExpenseBenefit": 1251000000,
    "CurrentIncomeTaxExpenseBenefit": 3404000000,
    "OperatingLeasesFutureMinimumPaymentsDue": 10102000000,
    "OperatingLeasesFutureMinimumPaymentsDueCurrent": 1319000000,
    "OperatingLeasesFutureMinimumPaymentsDueInFiveYears": 980000000,
    "OperatingLeasesFutureMinimumPaymentsDueInFourYears": 1153000000,
    "OperatingLeasesFutureMinimumPaymentsDueInThreeYears": 1337000000,
    "OperatingLeasesFutureMinimumPaymentsDueInTwoYears": 1397000000,
    "OperatingLeasesFutureMinimumPaymentsDueThereafter": 3916000000,
    "OperatingLeasesFutureMinimumPaymentsReceivable": 55000000,
    "OperatingLeasesFutureMinimumPaymentsReceivableCurrent": 16000000,
    "OperatingLeasesFutureMinimumPaymentsReceivableInFiveYears": 3000000,
    "OperatingLeasesFutureMinimumPaymentsReceivableInFourYears": 8000000,
    "OperatingLeasesFutureMinimumPaymentsReceivableInThreeYears": 10000000,
    "OperatingLeasesFutureMinimumPaymentsReceivableInTwoYears": 13000000,
    "OperatingLeasesFutureMinimumPaymentsReceivableThereafter": 5000000,
    "DebtAndEquitySecuritiesGainLoss": 6650000000,
    "VariableInterestEntityConsolidatedAssetsPledged": 2400000000,
    "VariableInterestEntityConsolidatedLiabilitiesNoRecourse": 909000000,
    "ResearchAndDevelopmentExpense": 21419000000,
    "DebtInstrumentUnamortizedDiscount": 50000000,
    "DebtSecuritiesAvailableForSaleRealizedLoss": 143000000,
    "DebtSecuritiesAvailableForSaleUnrealizedLossPosition": 71665000000,
    "DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss": 1054000000,
    "DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss": 267000000,
    "DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months": 27724000000,
    "DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss": 787000000,
    "DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger": 43941000000,
    "DebtSecuritiesAvailableForSaleRealizedGain": 1300000000,
    "DebtSecuritiesRealizedGainLoss": 1190000000,
    "ShareBasedCompensation": 9353000000,
    "TaxCreditCarryforwardAmount": 2400000000,
    "OtherLiabilitiesNoncurrent": 3545000000,
    "OtherLongTermInvestments": 13859000000,
    "OtherNoncashIncomeExpense": 189000000,
    "OtherNonoperatingIncomeExpense": 378000000,
    "ReclassificationFromAociCurrentPeriodNetOfTaxAttributableToParent": 813000000
  }
]

Data Weighting

Reported in the time series inventory

Data Source(s)

SEC Filings

Notes

Not available to Start users

Examples

/time-series/REPORTED_FINANCIALS/AAPL

/time-series/REPORTED_FINANCIALS/AAPL/10-K

/time-series/REPORTED_FINANCIALS/AAPL/10-Q?last=2

/time-series/REPORTED_FINANCIALS/AAPL/10-Q?first=3

/time-series/REPORTED_FINANCIALS/AAPL/10-Q?from=2018-01-01&to=2019-06-01

/time-series/REPORTED_FINANCIALS/AAPL/10-Q?from=2016-01-01

/time-series/REPORTED_FINANCIALS/AAPL/10-Q?on=2016-01-01

/time-series/REPORTED_FINANCIALS/AAPL/10-Q?from=2010-01-01&interval=2&format=csv

Balance Sheet

Pulls balance sheet data. Available quarterly or annually with the default being the last available quarter

HTTP request example

GET /stock/{symbol}/balance-sheet

The above example will return JSON with the following keys

{
  "symbol": "AAPL",
  "balancesheet": [
    {
      "reportDate": "2017-03-31",
      "currentCash": 25913000000,
      "shortTermInvestments": 40388000000,
      "receivables": 23186000000,
      "inventory": 3956000000,
      "otherCurrentAssets": 12087000000,
      "currentAssets": 131339000000,
      "longTermInvestments": 170799000000,
      "propertyPlantEquipment": 41304000000,
      "goodwill": null,
      "intangibleAssets": null,
      "otherAssets": 22283000000,
      "totalAssets": 365725000000,
      "accountsPayable": 55888000000,
      "currentLongTermDebt": 8784000000,
      "otherCurrentLiabilities": 40230000000,
      "totalCurrentLiabilities": 116866000000,
      "longTermDebt": 93735000000,
      "otherLiabilities": 4268000000,
      "minorityInterest": 0,
      "totalLiabilities": 258578000000,
      "commonStock": 40201000000,
      "retainedEarnings": 70400000000,
      "treasuryStock": null,
      "capitalSurplus": null,
      "shareholderEquity": 107147000000,
      "netTangibleAssets": 107147000000
    } // , { ... }
  ]
}

Data Weighting

3000 per symbol per period

Data Timing

End of day

Data Schedule

Updates at 8am, 9am UTC daily

Data Source(s)

Primary Partner

Notes

Financial information is limited for some financial firms.

Available Methods

/stock/aapl/balance-sheet
/stock/aapl/balance-sheet?period=annual

Query String Parameters

Parameter Details
period Optional
string. Allows you to specify annual or quarterly balance sheet. Defaults to quarterly. Values should be annual or quarter
last • Optional
• number. Specify the number of quarters or years to return. One quarter is returned by default. You can specify up to 12 quarters with quarter, or up to 4 years with annual.

Response Attributes

Key Type Description
reportDate string The last day of the relevant fiscal period.
currentCash number Represents current cash excluding short-term investments. Current cash excludes commercial paper issued by unconsolidated subsidiaries to the parent company, amount due from sale of debentures, checks written by the company but not yet deposited and charged to the company’s bank account, and promissory notes.
shortTermInvestments number Total short-term investments.
receivables number Represents net claims against customers for merchandise sold or services performed in the ordinary course of business. Investopedia
inventory number Represents tangible items or merchandise net of advances and obsolescence acquired for either resale directly or included in the production of finished goods manufactured for sale in the normal course of operation. Excludes tools that are listed in current assets, supplies and prepaid expenses for companies that lump these items together, advances from customers, and contract billings. For non-U.S. companies, if negative inventories arise from advances from customers greater than costs on long-term contracts, it is reclassified to current liabilities.
otherCurrentAssets number Represents other current assets for the period. Investopedia
currentAssets number Represents cash and other assets that are reasonably expected to be realized in cash, sold or consumed within one year or one operating cycle. Generally, the sum of cash and equivalents, receivables, inventories, prepaid expenses, and other current assets. For non-U.S. companies, long term receivables are excluded from current assets even though included in net receivables. Investopedia
longTermInvestments number Represents total investments and advances for the period. Calculated as long term investment minus affiliate companies and other long term investments. Investopedia
propertyPlantEquipment number Represents gross property, plant, and equipment less accumulated reserves for depreciation, depletion, and ammortization. Investopedia
goodwill number Represents the excess cost over the fair market value of the net assets purchased. Is excluded from other intangible assets. Investopedia
intangibleAssets number Represents other assets not having a physical existence. The value of these assets lie in their expected future return. This excludes goodwill. Investopedia
otherAssets number Returns other assets for the period calculated as other assets including intangibles minus intangible other assets.
totalAssets number Represents the sum of total current assets, long-term receivables, investment in unconsolidated subsidiaries, other investments, net property plant and equipment, deferred tax assets, and other assets.
accountsPayable number Represents the claims of trade creditors for unpaid goods and services that are due within the normal operating cycle of the company. Investopedia
currentLongTermDebt number Represents the amount of long term debt due within the next twelve months. Excludes notes payable arising from short term borrowings, current maturities of participation and entertainment obligation, contracts payable for broadcast rights, current portion of advances and production payments Bank overdrafts, advances from subsidiaries/associated companies, and current portion of preferred stock of a subsidiary. Investopedia
otherCurrentLiabilities number Represents other current liabilities and calculated as the sum of misc current liabilities, dividends payable, and accrued payroll.
totalCurrentLiabilities number Represents debt or other obligations that the company expects to satisfy within one year.
longTermDebt number Represents all interest-bearing financial obligations, excluding amounts due within one year, net of premium or discount. Excludes current portion of long-term debt, pensions, deferred taxes, and minority interest. Investopedia
otherLiabilities number Returns other liabilities for the period calculated as the sum of other liabilities excluding deferred revenue, deferred income, and deferred tax liability in untaxed reserves.
minorityInterest number Represents the portion of earnings/losses of a subsidiary pertaining to common stock not owned by the controlling company or other members of the consolidated group. Minority Interest is subtracted from consolidated net income to arrive at the company’s net income.
totalLiabilities number Represents all short and long term obligations expected to be satisfied by the company. Excludes minority interest preferred stock equity, preferred stock equity, common stock equity, and non-equity reserves.
commonStock number Represents the par or stated value of the issued common shares of the company. It includes the value of all multiple shares. Along with capital surplus it is the equity capital received from parties outside the company. Excess involuntary liquidation value of preferred stock over stated value when common stock value and capital surplus are reported combined. Investopedia
retainedEarnings number Represents the accumulated after tax earnings of the company which have not been distributed as dividends to shareholders or allocated to a reserve amount. Excess involuntary liquidation value over stated value of preferred stock is deducted if there is an insufficient amount in the capital surplus account. Investopedia
treasuryStock number Represents the acquisition cost of shares held by the company. For non-U.S. companies treasury stock may be carried at par value. This stock is not entitled to dividends, has no voting rights, and does not share in the profits in the event of liquidation. Investopedia
capitalSurplus number Represents the amount received in excess of par value from the sale of common stock. Along with common stock it is the equity capital received from parties outside the company.
shareholderEquity number Total shareholders’ equity for the period calculated as the sum of total common equity and preferred stock carrying value.
netTangibleAssets number Calculated as shareholder equity less goodwill and less

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": [...]
  },
}

Data Weighting

Based on each type of call

Path Parameters

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

Query String Parameters

Parameter Details
types • Required
• Comma delimited list of endpoints to call. The names should match the individual endpoint names. Limited to 10 endpoints.
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. For example, last can be used for the news endpoint to specify the number of articles

Examples

Response Attributes

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": {...},
}

Data Weighting

1 per quote returned

Data Timing

realtime + 15min delayed

Data Schedule

realtime during Investors Exchange market hours

Data Source(s)

Investors Exchange Primary Partner Consolidated Tape

Available Methods

/stock/{symbol}/book

Examples

Response Attributes

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

Cash Flow

Pulls cash flow data. Available quarterly or annually, with the default being the last available quarter.

HTTP request example

GET /stock/{symbol}/cash-flow

The above example will return JSON with the following keys

{
  "symbol": "AAPL",
  "cashflow": [
    {
      "reportDate": "2018-09-30",
      "netIncome": 14125000000,
      "depreciation": 2754000000,
      "changesInReceivables": -9082000000,
      "changesInInventories": 1942000000,
      "cashChange": -6058000000,
      "cashFlow": 19523000000,
      "capitalExpenditures": -3041000000,
      "investments": -926000000,
      "investingActivityOther": 1566000000,
      "totalInvestingCashFlows": -3001000000,
      "dividendsPaid": -3530000000,
      "netBorrowings": -27000000,
      "otherFinancingCashFlows": -260000000,
      "cashFlowFinancing": -22580000000,
      "exchangeRateEffect": null
    } // , { ... }
  ]
}

Data Weighting

1,000 per symbol per period

Data Timing

End of day

Data Schedule

Updates at 8am, 9am UTC daily

Data Source(s)

Primary Partner

Available Methods

/stock/aapl/cash-flow
/stock/aapl/cash-flow?period=annual

Query String Parameters

Parameter Details
period • Optional
• string. Allows you to specify annual or quarterly cash flow. Defaults to quarterly. Values should be annual or quarter
last • Optional
• number. Specify the number of quarters or years to return. One quarter is returned by default. You can specify up to 12 quarters with quarter, or up to 4 years with annual.

Response Attributes

Key Type Description
reportDate string The last day of the relevant fiscal period.
netIncome number Represents income before extraordinary items and preferred and common dividends, but after operating and non-operating income and expenses, minority interest and equity in earnings.
depreciation number Depreciation represents the process of allocating the cost of a depreciable asset to the accounting periods covered during its expected useful life to a business. Depletion refers to cost allocation for natural resources such as oil and mineral deposits. Amortization relates to cost allocation for intangible assets such as patents and leasehold improvements, trademarks, book plates, tools & film costs. This item includes dry-hole expense, abandonments and oil and gas property valuation provision for extractive companies. This item excludes amortization of discounts or premiums on financial instruments owned or outstanding and depreciation on discontinued operations.
changesInReceivables number
changesInInventories number Represents the change in the amount of inventories from one year to the next as reported in the cash flow statement.
cashChange number Represents the change in cash and short term investments from one year to the next. This item is available only when the Statement of Changes in Financial Position is based on cash and short term investments.
cashFlow number Returns net cash from operating activities for the period calculated as the sum of funds from operations, extraordinary items, and funds from other operating activities.
capitalExpenditures number Returns total capital expenditures for the period calculated as the sum of capital expenditures additions to fixed assets, and additions to other assets.
investments number Returns purchase/sale of investments for the period calculated as the sum of the negative of increase in investments, and decrease in investments
investingActivityOther number Represents any other funds employed in investing activities and not included in capital expenditures, net assets from acquisitions, increase in investments, decrease in investments or additions to property.
totalInvestingCashFlows number Returns net cash from investing activities for the period calculated as (Cash Flow from Investing Activity) - Net. If this is not available, then it is calculated as (Other Uses/(Sources) Investing) + (Disposal of fixed assets) + (decrease in investments) - (net assets from acquisitions) - (capital expenditures other assets) - (increase in investments) - (capital expenditures additions to fixed assets)
dividendsPaid number Represents the total common and preferred dividends paid to shareholders of the company. Excludes dividends paid to minority shareholders.
netBorrowings number Returns net issuance/reduction of debt for the period calculated as (increase/decrease in short term borrowings) + (long term borrowings - reduction in long term debt)
otherFinancingCashFlows number Returns other financing activities for the period.
cashFlowFinancing number Returns net cash from financing activities for the period.
exchangeRateEffect number Represents the effect of translating from one currency to another on the cash flow of the company.

Collections

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

HTTP request example

GET /stock/market/collection/{collectionType}

The above example will return JSON with the following keys

[
    quote,
    ...
]

Data Weighting

Weight of /stock/quote per quote returned

Available Methods

/stock/market/collection/sector?collectionName=Technology
/stock/market/collection/tag?collectionName=Airlines
/stock/market/collection/list?collectionName=mostactive

Query String 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 in the sector ref data.
  • Supported tags can be found in the tag ref data.
  • *You must URL encode the collection name before sending

    Response Attributes

    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",
      "industry": "Telecommunications Equipment",
      "website": "http://www.apple.com",
      "description": "Apple, Inc. engages in the design, manufacture, and marketing of mobile communication, media devices, personal computers, and portable digital music players. It operates through the following geographical segments: Americas, Europe, Greater China, Japan, and Rest of Asia Pacific. The Americas segment includes North and South America. The Europe segment consists of European countries, as well as India, the Middle East, and Africa. The Greater China segment comprises of China, Hong Kong, and Taiwan. The Rest of Asia Pacific segment includes Australia and Asian countries. The company was founded by Steven Paul Jobs, Ronald Gerald Wayne, and Stephen G. Wozniak on April 1, 1976 and is headquartered in Cupertino, CA.",
      "CEO": "Timothy Donald Cook",
      "securityName": "Apple Inc.",
      "issueType": "cs",
      "sector": "Electronic Technology",
      "employees": 132000,
      "tags": [
        "Electronic Technology",
        "Telecommunications Equipment"
      ]
    }
    

    Data Weighting

    1 per symbol

    Data Timing

    End of Day

    Data Schedule

    Updates at 4am and 5am UTC every day

    Data Source(s)

    Primary Partner

    Available Methods

    /stock/aapl/company

    Response Attributes

    Key Type Description
    symbol string
    companyName string Name of the company
    employees number Number of employees
    exchange string
    industry string
    website string
    description string
    CEO string
    securityName string Name of the security
    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)
    wt – Warrant
    rt – Right
    (blank) = Not Available, i.e., Note, or (non-filing) Closed Ended Funds
    sector string
    tags array an array of strings used to classify the company.

    Delayed Quote

    This returns the 15 minute delayed market 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,
      "high": 143.90,
      "low": 142.26,
      "totalVolume": 33547893,
      "processedTime": 1498763640156
    }
    

    Data Weighting

    1 per symbol per quote

    Data Timing

    15min delayed

    Data Schedule

    4:30am - 8pm ET M-F when market is open

    Data Source(s)

    Primary Partner

    Available Methods

    GET /stock/{symbol}/delayed-quote

    Examples

    Response Attributes

    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

    [
        {
            "symbol": "AAPL",
            "exDate": "2017-08-10",
            "paymentDate": "2017-08-17",
            "recordDate": "2017-08-14",
            "declaredDate": "2017-08-01",
            "amount": 0.63,
            "flag": "Dividend income",
            "currency": "USD",
            "description": "Apple declares dividend of .63",
            "frequency": "quarterly"
        } // , { ... }
    ]
    

    Data Weighting

    10 per symbol per period returned

    Data Timing

    End of day

    Data Schedule

    Updated at 9am UTC every day

    Data Source(s)

    Data Partner

    Available Methods

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

    Examples

    Path Parameters

    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
    next The next upcoming dividend Historical market data

    Response Attributes

    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 Type of dividend event
    currency string Currency of the dividend
    description string Description of the dividend event
    frequency string Frequency of the dividend

    Earnings

    Earnings data for a given company including the actual EPS, consensus, and fiscal period. Earnings are available quarterly (last 4 quarters).

    HTTP request example

    GET /stock/{symbol}/earnings/{last}/{field}
    

    The above example will return JSON with the following keys

    {
      "symbol": "AAPL",
      "earnings": [
        {
          "actualEPS": 2.1,
          "consensusEPS": 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,
        },
        {
          "actualEPS": 3.36,
          "consensusEPS": 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,
        },
      ]
    }
    

    Data Weighting

    1000 per symbol per period

    Data Timing

    End of day

    Data Schedule

    Updates at 9am, 11am, 12pm UTC every day

    Data Source(s)

    Primary Partner

    Available Methods

    GET /stock/{symbol}/earnings

    GET /stock/{symbol}/earnings/{last}

    GET /stock/{symbol}/earnings/{last}/{field}

    Path Parameters

    Parameter Details
    last Optional (Number) - Number of quarters or years to return. Default is 1.
    field Optional (String) - case sensitive string matching a response attribute below. Returns raw value of field specified. Useful for Excel Webservice calls.

    Query Parameters

    Parameter Details
    last Optional (Number) - Number of quarters or years to return. Default is 1.

    Examples

    Response Attributes

    Key Type Description
    actualEPS number Actual earnings per share for the period. EPS data is split-adjusted by default. Earnings data accounts for all corporate actions including dilutions, splits, reverse splits, spin-offs, exceptional dividends, and rights issues.
    consensusEPS number Consensus EPS estimate trend 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.

    Earnings Today

    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 example

    GET /stock/market/today-earnings
    

    The above example will return JSON with the following keys

    {
      "bto": [
        {
            "consensusEPS": "-0.03",
            "announceTime": "BTO",
            "numberOfEstimates": 4,
            "fiscalPeriod": "Q4 2018",
            "fiscalEndDate": "2018-12-31",
            "symbol": "Z",
            "quote": {
              ...
            },
        },
        ...
      ],
      "amc": [
        {
            "consensusEPS": "-0.03",
            "announceTime": "AMC",
            "numberOfEstimates": 4,
            "fiscalPeriod": "Q4 2018",
            "fiscalEndDate": "2018-12-31",
            "symbol": "NBEV",
            "quote": {
              ...
            },
        },
        ...
      ],
      "dmt": []
    }
    

    Data Weighting

    1000 per symbol returned + 1 per quote returned

    Data Timing

    End of day

    Data Schedule

    Updates at 9am, 11am, 12pm UTC daily

    Data Source(s)

    Primary Partner

    Available Methods

    GET /stock/market/today-earnings

    Examples

    Response Attributes

    Key Type Description
    actualEPS number Actual earnings per share for the period
    consensusEPS number Consensus EPS estimate trend for the period
    announceTime string Time of earnings announcement. BTO (Before open), DMT (During trading or if the time is unknown), 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 consensusEPS
    symbol string The symbol the earning relates to
    quote object See quote

    Estimates

    Provides the latest consensus estimate for the next fiscal period

    HTTP request example

    GET /stock/{symbol}/estimates
    

    The above example will return JSON with the following keys

    {
      "symbol": "AAPL",
      "estimates": [
        {
          "consensusEPS": 2.02,
          "numberOfEstimates": 14,
          "fiscalPeriod": "Q2 2017",
          "fiscalEndDate": "2017-03-31",
          "reportDate": "2017-04-15",
        }
      ]
    }
    

    Data Weighting

    10,000 per symbol per period

    Data Timing

    End of day

    Data Schedule

    Updates at 9am, 11am, 12pm UTC every day

    Data Source(s)

    Primary Partner

    Available Methods

    GET /stock/{symbol}/estimates

    Examples

    Response Attributes

    Key Type Description
    consensusEPS number Consensus EPS estimate trend for the period. EPS data is split-adjusted by default. Earnings data accounts for all corporate actions including dilutions, splits, reverse splits, spin-offs, exceptional dividends, and rights issues. Investopedia
    numberOfEstimates number Number of estimates for the period
    fiscalPeriod string The fiscal quarter the earnings data applies to Q# YYYY
    fiscalEndDate string Date representing the company fiscal quarter end YYYY-MM-DD
    reportDate string Expected report date of next earnings

    Financials

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

    HTTP request example

    GET /stock/{symbol}/financials/
    

    The above example will return JSON with the following keys

    {
      "symbol": "AAPL",
      "financials": [
        {
          "reportDate": "2019-03-31",
          "grossProfit": 21648000000,
          "costOfRevenue": 36270000000,
          "operatingRevenue": 57918000000,
          "totalRevenue": 57918000000,
          "operatingIncome": 13242000000,
          "netIncome": 11561000000,
          "researchAndDevelopment": 3948000000,
          "operatingExpense": 44676000000,
          "currentAssets": 123346000000,
          "totalAssets": 341998000000,
          "totalLiabilities": 236138000000,
          "currentCash": 38329000000,
          "currentDebt": 22429000000,
          "shortTermDebt": 22429000000,
          "longTermDebt": 90201000000,
          "totalCash": 80433000000,
          "totalDebt": 112630000000,
          "shareholderEquity": 105860000000,
          "cashChange": -4954000000,
          "cashFlow": 11155000000
        } // , { ... }
      ]
    }
    

    Data Weighting

    5000 per symbol per period

    Data Timing

    End of day

    Data Schedule

    Updates at 8am, 9am UTC daily

    Data Source(s)

    Primary Partner

    Notes

    Financial Firms report financials in a different format than our 3rd party processes therefore our data is limited.

    Available Methods

    /stock/aapl/financials
    /stock/aapl/financials?period=annual

    Query String Parameters

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

    Response Attributes

    Key Type Description
    reportDate string The last day of the relevant fiscal period.
    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
    currentDebt number
    shortTermDebt number
    longTermDebt number
    totalCash number
    totalDebt number
    shareholderEquity number
    cashChange number
    cashFlow number
    operatingGainsLosses string

    Fund Ownership

    Returns the top 10 fund holders, meaning any firm not defined as buy-side or sell-side such as mutual funds, pension funds, endowments, investment firms, and other large entities that manage funds on behalf of others.

    HTTP request example

    GET /stock/{symbol}/fund-ownership
    

    The above example will return JSON with the following keys

    [
        {
            "adjHolding": 150,
            "adjMv": 87,
            "entityProperName": "Random Corporation",
            "reportDate": 1490918400000,
            "reportedHolding": 100,
            "reportedMv": 100 
        }
    ]
    

    Data Weighting

    10,000 per symbol per period

    Data Timing

    End of day

    Data Schedule

    Updates at 5am, 6am ET every day

    Data Source(s)

    Primary Partner

    Notes

    Only available to Launch, Grow, and Scale users

    Available Methods

    GET /stock/{symbol}/fund-ownership

    Examples

    Response Attributes

    Key Type Description
    adjHolding number Share amount held by the fund as of the report date, adjusted for corporate actions
    adjMv number Total share amount multiplied by the latest month-end share price, adjusted for corporate actions in USD
    entityProperName string Name of the entity
    reportDate number refers to the update time of report_date in milliseconds since midnight Jan 1, 1970.
    reportedHolding number Share amount held by the fund as reported in the source
    reportedMv number Market value held by the fund as reported in the source, represented in USD.

    Historical Prices

    Returns adjusted and unadjusted historical data for up to 15 years. Useful for building charts.

    HTTP request examples

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

    The above example will return JSON with the following keys

    // .../3m
    
    [
        {
            "date": "2017-04-03",
            "open": 143.1192,
            "high": 143.5275,
            "low": 142.4619,
            "close": 143.1092,
            "volume": 19985714,
            "uOpen": 143.1192,
            "uHigh": 143.5275,
            "uLow": 142.4619,
            "uClose": 143.1092,
            "uVolume": 19985714,
            "change": 0.039835,
            "changePercent": 0.028,
            "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,
              "uOpen": 143.1192,
              "uHigh": 143.5275,
              "uLow": 142.4619,
              "uClose": 143.1092,
              "uVolume": 19985714,
              "change": 0.039835,
              "changePercent": 0.028,
              "label": "Apr 03, 17",
              "changeOverTime": -0.0039
          } // , { ... }
      ]
    }
    

    Data Weighting

    Adjusted + Unadjusted
    10 per symbol per time interval returned (Excluding 1d)
    Example: If you query for AAPL 5 day, it will return 5 days of prices for AAPL for a total of 50.

    Adjusted close only
    2 per symbol per time interval returned (Excluding 1d)
    use chartCloseOnly param

    NOTE: For minute-bar historical prices when a specific date is used in the range parameter, the weight is 50 messages
    Example: If you query for AAPL minute-bar for 20190610, it will return 390 minutes of data at a cost of 50 messages.

    Data Timing

    End of Day

    Data Schedule

    Prior trading day adjusted data available after 4am ET Tue-Sat

    Data Source(s)

    Primary Partner
    Investors Exchange

    Available Methods

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

    Examples

    Path Parameters

    symbol
    Valid symbol

    range

    Ranges Description Source
    max All available data up to 15 years Historically adjusted market-wide data
    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
    1mm One month Historically adjusted market-wide data in 30 minute intervals
    5d Five Days Historically adjusted market-wide data by day.
    5dm Five Days Historically adjusted market-wide data in 10 minute intervals
    date Specific date If used with the query parameter chartByDay, then this returns historical OHLCV data for that date. Otherwise, IEX-only data by minute for a specified date if available. Date format YYYYMMDD. Currently supporting trailing 30 calendar days of minute bar data.
    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.

    Query String Parameters

    Parameter Details
    chartCloseOnly • Optional
    • boolean. Will return adjusted data only with keys date, close, and volume.
    chartByDay • Optional
    • boolean. Used only when range is date to return OHLCV data instead of minute bar data.
    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 from the time period defined by the range parameter
    range • Optional
    • string. Same format as the path parameter. This can be used for batch calls.
    exactDate • Optional
    • string. Formatted as YYYYMMDD. This can be used for batch calls when range is 1d or date.

    Response Attributes

    Key Type Description
    date string Formatted as YYYY-MM-DD
    high number Adjusted data for historical dates. Split adjusted only.
    low number Adjusted data for historical dates. Split adjusted only.
    volume number Adjusted data for historical dates. Split adjusted only.
    open number Adjusted data for historical dates. Split adjusted only.
    close number Adjusted data for historical dates. Split adjusted only.
    uHigh number Unadjusted data for historical dates.
    uLow number Unadjusted data for historical dates.
    uVolume number Unadjusted data for historical dates.
    uOpen number Unadjusted data for historical dates.
    uClose number Unadjusted data for historical dates.
    changeOverTime number Percent change of each interval relative to first value. Useful for comparing multiple stocks.
    label number A human readable format of the date depending on the range.
    change number Change from previous trading day.
    changePercent number Change percent from previous trading day.

    Income Statement

    Pulls income statement data. Available quarterly or annually with the default being the last available quarter.

    HTTP request example

    GET /stock/{symbol}/income
    

    The above example will return JSON with the following keys

    {
      "symbol": "AAPL",
      "income": [
        {
          "reportDate": "2017-03-31",
          "totalRevenue": 62681000000,
          "costOfRevenue": 39086000000,
          "grossProfit": 23595000000,
          "researchAndDevelopment": 3750000000,
          "sellingGeneralAndAdmin": 4216000000,
          "operatingExpense": 47052000000,
          "operatingIncome": 15629000000,
          "otherIncomeExpenseNet": 792000000,
          "ebit": 15629000000,
          "interestIncome": 868000000,
          "pretaxIncome": 16421000000,
          "incomeTax": 2296000000,
          "minorityInterest": 0,
          "netIncome": 14125000000,
          "netIncomeBasic": 14125000000
        } // , { ... }
      ]
    }
    

    Data Weighting

    1,000 per symbol per period

    Data Timing

    End of day

    Data Schedule

    Updates at 8am, 9am UTC daily

    Data Source(s)

    Primary Partner

    Available Methods

    /stock/aapl/income
    /stock/aapl/income?period=annual

    Query String Parameters

    Parameter Details
    period • Optional
    • string. Allows you to specify annual or quarterly income statement. Defaults to quarterly. Values should be annual or quarter
    last • Optional
    • number. Specify the number of quarters or years to return. One quarter is returned by default. You can specify up to 12 quarters with quarter, or up to 4 years with annual.

    Response Attributes

    Key Type Description
    reportDate string The last day of the relevant fiscal period.
    totalRevenue number Refers to the sum of both operating and non-operating revenues . Investopedia
    costOfRevenue number Represents the cost of goods sold for the period including depletion and amortization. Investopedia
    grossProfit number Represents the difference between sales or revenues and cost of goods sold and depreciation. Investopedia
    researchAndDevelopment number Represents all direct and indirect costs related to the creation and development of new processes, techniques, applications and products with commercial possibilities. Excludes customer or government sponsored research, purchase of mineral rights (for oil, gas, coal, drilling and mining companies), engineering expense, and contributions by government, customers, partnerships or other corporations to the company’s research and development expense
    sellingGeneralAndAdmin number Represents expenses not directly attributable to the production process but relating to selling, general and administrative functions. Excludes research and development.
    operatingExpense number Calculated as cost of revenue minus selling, general & administrative expense. Investopedia
    operatingIncome number Represents operating income for the period calculated as (net sales or revenue) - (cost of goods sold) - (selling, general & administrative expenses) - (other operating expenses). This will only return for industrial companies.
    otherIncomeExpenseNet number Calculated as income before tax minus operating income.
    ebit number Represents operating income for the period calculated as (net sales or revenue) - (cost of goods sold) - (selling, general & administrative expenses) - (other operating expenses). This will only return for industrial companies. Investopedia
    interestIncome number Represents interest expense, net of interest capitalized for the period calculated as (interest expense on debt) - (interest capitalized) Investopedia
    pretaxIncome number Represents all income/loss before any federal, state or local taxes. Extraordinary items reported net of taxes are excluded.
    incomeTax number Represents all income taxes levied on the income of a company by federal, state and foreign governments. Excludes domestic international sales corporation taxes, ad valorem taxes, excise taxes, windfall profit taxes, taxes other than income, and general and services taxes.
    minorityInterest number Represents the portion of earnings/losses of a subsidiary pertaining to common stock not owned by the controlling company or other members of the consolidated group.
    netIncome number Represents income before extraordinary items and preferred and common dividends, but after operating and non-operating income and expenses, minority interest and equity in earnings. Investopedia
    netIncomeBasic number Represents net income available to common basic EPS before extraordinaries for the period calculated as (net income after preferred dividends) - (discontinued operations)

    Insider Roster

    Returns the top 10 insiders, with the most recent information.

    HTTP request example

    GET /stock/{symbol}/insider-roster
    

    The above example will return JSON with the following keys

    [
        {
            'entityName' : "Random insider",
            'position' : 12345,
            'reportDate' : 1546387200000
        }
    ]
    

    Data Weighting

    5000 per symbol

    Data Timing

    End of day

    Data Schedule

    Updates at 5am, 6am ET every day

    Data Source(s)

    Primary Partner

    Notes

    Only available to Launch, Grow, and Scale users

    Available Methods

    GET /stock/{symbol}/insider-roster

    Examples

    Response Attributes

    Key Type Description
    entityName string Name of the entity
    reportDate number refers to the update time of report_date in milliseconds since midnight Jan 1, 1970.
    position number Number of shares held, adjusted for corporate actions

    Insider Summary

    Returns aggregated insiders summary data for the last 6 months.

    HTTP request example

    GET /stock/{symbol}/insider-summary
    

    The above example will return JSON with the following keys

    [
        {
            "fullName": "John Appleseed",
            "netTransacted": -15,
            "reportedTitle": "General Counsel",
            "totalBought": 0,
            "totalSold": -15
        },
    ]
    

    Data Weighting

    5000 per symbol

    Data Timing

    End of day

    Data Schedule

    Updates at 5am, 6am ET every day

    Data Source(s)

    Primary Partner

    Notes

    Only available to Launch, Grow, and Scale users

    Available Methods

    GET /stock/{symbol}/insider-summary

    Examples

    Response Attributes

    Key Type Description
    fullName string Full name of the individual. This field concatenates the individuals First Name, Middle Name, Last Name and Suffix.
    netTransacted number As-reported (unadjusted) number of shares acquired or disposed
    reportedTitle string Insiders job title per the sourced filing
    totalBought number Total shares purchased
    totalSold number Total shares sold

    Insider Transactions

    Returns insider transactions.

    HTTP request example

    GET /stock/{symbol}/insider-transactions
    

    The above example will return JSON with the following keys

    [
        {
            "effectiveDate": 1522540800000,
            "fullName": "Joe Smith",
            "reportedTitle": "Vice President",
            "tranPrice": 0,
            "tranShares": 10000,
            "tranValue": 0
        }
    ]
    

    Data Weighting

    50 per transaction

    Data Timing

    End of day

    Data Schedule

    Updates at UTC every day

    Data Source(s)

    Primary Partner

    Notes

    Only available to Launch, Grow, and Scale users. Insider transactions for the last 12 months on a rolling basis.

    Available Methods

    GET /stock/{symbol}/insider-transactions

    Examples

    Response Attributes

    Key Type Description
    effectiveDate number Effective date of the transaction.
    fullName string Full name of the individual. This field concatenates the individuals First Name, Middle Name, Last Name and Suffix.
    reportedTitle string Insiders job title per the sourced filing
    tranPrice number As-reported (unadjusted) unit price at which shares were acquired or disposed, represented in USD.
    tranShares number As-reported (unadjusted) number of shares acquired or disposedValue of the transaction, calculated as Tran_Shares * Tran_Price, represented in USD. This value is not adjusted for corporate actions.
    tranValue number Value of the transaction, calculated as Tran_Shares * Tran_Price, represented in USD. This value is not adjusted for corporate actions.

    Institutional Ownership

    Returns the top 10 institutional holders, defined as buy-side or sell-side firms.

    HTTP request example

    GET /stock/{symbol}/institutional-ownership
    

    The above example will return JSON with the following keys

    [
        {
            "adjHolding": 10085320,
            "adjMv": 59188155,
            "entityProperName": "Random Corp.",
            "reportDate": 1548892800000,
            "reportedHolding": 2085320
        }
    ]
    

    Data Weighting

    10000 per symbol per period

    Data Timing

    End of day

    Data Schedule

    Updates at 5am, 6am ET every day

    Data Source(s)

    Primary Partner

    Notes

    Only available to Launch, Grow, and Scale users

    Available Methods

    GET /stock/{symbol}/institutional-ownership

    Examples

    Response Attributes

    Key Type Description
    adjHolding number Share amount held by the fund as of the report date, adjusted for corporate actions
    adjMv number Total share amount multiplied by the latest month-end share price, adjusted for corporate actions in USD
    entityProperName string Name of the entity
    reportDate number refers to the update time of report_date in milliseconds since midnight Jan 1, 1970.
    reportedHolding number Share amount held by the institution as reported in the source

    Intraday Prices

    This endpoint will return aggregated intraday prices in one minute buckets

    HTTP request examples

    GET /stock/{symbol}/intraday-prices
    

    The above example will return JSON with the following keys

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

    Data Weighting

    1 per symbol per time interval up to a max use of 50 messages
    Example: If you query for AAPL 1d at 11:00am, it will return 90 minutes of data for a total of 50.

    IEX Only intraday minute bar
    Free This will only return IEX data with keys minute, high, low, average, volume, notional, and numberOfTrades
    Use the chartIEXOnly param

    Data Timing

    No delay for IEX data
    15 minutes delayed for market data

    Data Schedule

    9:30-4pm ET Mon-Fri on regular market trading days
    9:30-1pm ET on early close trading days

    Data Source(s)

    Primary Partner
    Investors Exchange

    Available Methods

    GET /stock/{symbol}/intraday-prices

    Examples

    Path Parameters

    symbol
    Valid symbol

    Query String Parameters

    Parameter Details
    chartIEXOnly • Optional
    • boolean. Limits the return of intraday prices to IEX only data.
    chartReset • Optional
    • boolean. If true, 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 Attributes

    Key Type Description
    date string
    minute string Formatted as HHmm
    marketAverage number 15 minute delayed data. Average price during the minute across all markets. This represents data from all markets. If the value is null, then the market did not trade during the minute.
    marketNotional number 15 minute delayed data. Total notional value during the minute for trades across all markets. This represents data from all markets. If the value is null, then the market did not trade during the minute.
    marketNumberOfTrades number 15 minute delayed data. Number of trades during the minute across all markets. This represents data from all markets. If the value is null, then the market did not trade during the minute.
    marketOpen number 15 minute delayed data. First price during the minute across all markets. This represents data from all markets. If the value is null, then the market did not trade during the minute.
    marketClose number 15 minute delayed data. Last price during the minute across all markets. This represents data from all markets. If the value is null, then the market did not trade during the minute.
    marketHigh number 15 minute delayed data. Highest price during the minute across all markets. This represents data from all markets. If the value is null, then the market did not trade during the minute.
    marketLow number 15 minute delayed data. Lowest price during the minute across all markets. This represents data from all markets. If the value is null, then the market did not trade during the minute.
    marketVolume number 15 minute delayed data. Total volume of trades during the minute across all markets. This represents data from all markets. If the value is null, then the market did not trade during the minute.
    marketChangeOverTime number Percent change of each interval relative to first value. 15 minute delayed consolidated data.
    simplifyFactor array Only when chartSimplify is true. The first element is the original number of points. Second element is how many remain after simplification.
    changeOverTime number Percent change of each interval relative to first value. Useful for comparing multiple stocks.
    label number A human readable format of the date depending on the range.
    average number IEX only data. Average price during the minute for trades on IEX.
    notional number IEX only data. Total notional value during the minute for trades on IEX.
    numberOfTrades number IEX only data. Number of trades during the minute on IEX.
    high number IEX only data. Highest price during the minute on IEX.
    low number IEX only data. Lowest price during the minute on IEX.
    volume number IEX only data. Total volume during the minute on IEX.
    open number IEX only data. First price during the minute on IEX.
    close number IEX only data. Last price during the minute on IEX.

    IPO Calendar

    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 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"
            },
            ...
        ]
    }
    

    Data Weighting

    100 per IPO returned for upcoming-ipos
    500 per IPO returned for today-ipos

    Data Timing

    End of day

    Data Schedule

    10am, 10:30am UTC daily

    Data Source(s)

    IEX Cloud

    Available Methods

    GET /stock/market/upcoming-ipos

    GET /stock/market/today-ipos

    Examples

    Response Attributes

    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

    Key Stats

    HTTP request example

    GET /stock/{symbol}/stats/{stat?}
    

    The above example will return JSON with the following keys

    {
      "companyName": "Apple Inc.",
      "marketcap": 760334287200,
      "week52high": 156.65,
      "week52low": 93.63,
      "week52change": 58.801903,
      "sharesOutstanding": 5213840000,
      "float": 5203997571,
      "symbol": "AAPL",
      "avg10Volume": 2774000,
      "avg30Volume": 12774000,
      "day200MovingAvg": 140.60541,
      "day50MovingAvg": 156.49678,
      "employees": 120000,
      "ttmEPS": 16.5,
      "ttmDividendRate": 2.25,
      "dividendYield": .021,
      "nextDividendDate": '2019-03-01',
      "exDividendDate": '2019-02-08',
      "nextEarningsDate": '2019-01-01',
      "peRatio": 14,
      "beta": 1.25,
      "maxChangePercent": 153.021,
      "year5ChangePercent": 0.5902546932200027,
      "year2ChangePercent": 0.3777449874142869,
      "year1ChangePercent": 0.39751716851558366,
      "ytdChangePercent": 0.36659492036160124,
      "month6ChangePercent": 0.12208398133748043,
      "month3ChangePercent": 0.08466584665846649,
      "month1ChangePercent": 0.009668596145283263,
      "day30ChangePercent": -0.002762605699968781,
      "day5ChangePercent": -0.005762605699968781
    }
    

    Data Weighting

    5 per call per symbol for full stats
    1 per call per symbol for single stat filter

    Data Timing

    End of day

    Data Schedule

    8am, 9am ET

    Data Source(s)

    Primary Partner

    Path Parameter

    Parameter Details
    stat Optional. Case sensitive string matching the name of a single key to return one value. Ex: If you only want the next earnings date, you would call /stock/aapl/stats/nextEarningsDate

    Available Methods

    GET /stock/{symbol}/stats/{stat?}

    Examples

    Response Attributes

    Key Type Description
    symbol string
    companyName string Company name of the security
    marketcap number Market cap of the security calculated as shares outstanding * previous day close.
    week52high number
    week52low number
    week52change number Percentage change
    sharesOutstanding number Number of shares outstanding as the difference between issued shares and treasury shares. Investopedia
    avg30Volume number Average 30 day volume
    avg10Volume number Average 10 day volume
    float number Returns the annual shares outstanding minus closely held shares.
    employees number
    ttmEPS number Trailing twelve month earnings per share. Investopedia
    ttmDividendRate number Trailing twelve month dividend rate per share
    dividendYield number The ratio of trailing twelve month dividend compared to the previous day close price. The dividend yield is represented as a percentage calculated as (ttmDividendRate) / (previous day close price) Investopedia
    nextDividendDate string Expected ex date of the next dividend
    exDividendDate string Ex date of the last dividend
    nextEarningsDate string Expected next earnings report date
    peRatio number Price to earnings ratio calculated as (previous day close price) / (ttmEPS)
    beta number Beta is a measure used in fundamental analysis to determine the volatility of an asset or portfolio in relation to the overall market. Levered beta calculated with 1 year historical data and compared to SPY.
    day200MovingAvg number
    day50MovingAvg number
    maxChangePercent number
    year5ChangePercent number
    year2ChangePercent number
    year1ChangePercent number
    ytdChangePercent number
    month6ChangePercent number
    month3ChangePercent number
    month1ChangePercent number
    day30ChangePercent number
    day5ChangePercent number

    Largest Trades

    This returns 15 minute delayed, last sale eligible 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"
      },
      ...
    ]
    

    Data Weighting

    1 per trade returned

    Data Timing

    15min delayed

    Data Schedule

    9:30-4pm ET M-F during regular market hours

    Data Source(s)

    Consolidated Tape

    Available Methods

    GET /stock/{symbol}/largest-trades

    Examples

    Response Attributes

    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

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

    HTTP request example

    GET /stock/market/list/{list-type}
    

    The above example will return JSON with the following keys

     [
        // Array of quotes
     ]
    

    Data Weighting

    Weight of /stock/quote for each quote returned in the list

    Data Timing

    realtime
    15 minute delayed

    Data Schedule

    Updated intraday

    Data Source(s)

    Investors Exchange Consolidated Tape

    Notes

    Available Methods

    GET /stock/market/list/{list-type}

    Examples

    Query String 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)
    listLimit • Optional
    • Number of items to return, defaults to 10

    Response Attributes

    Refer to the quote section.

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

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

    Data Weighting

    1 per logo

    Data Timing

    End of day

    Data Schedule

    8am UTC daily

    Data Source(s)

    Web

    Available Methods

    GET /stock/{symbol}/logo

    Examples

    Response Attributes

    Key Type
    url string

    Market Volume (U.S.)

    This endpoint returns real time traded volume on U.S. markets.

    HTTP request example

    GET /stock/market/volume
    

    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
      }
    ]
    

    Data Weighting

    1 per call

    Data Timing

    realtime

    Data Schedule

    7:45am-5:15pm ET Mon-Fri

    Data Source(s)

    IEX Cloud Consolidate Tape

    Available Methods

    GET /stock/market/volume

    Examples

    Query String Parameters

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

    Response Attributes

    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.

    News

    HTTP request example

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

    The above example will return JSON with the following keys

    [
      {
        "datetime": 1545215400000,
        "headline": "Voice Search Technology Creates A New Paradigm For Marketers",
        "source": "Benzinga",
        "url": "https://cloud.iexapis.com/stable/news/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://cloud.iexapis.com/stable/news/image/7594023985414148",
        "lang": "en",
        "hasPaywall": true
      }
    ]
    

    SSE Example

    curl --header 'Accept: text/event-stream' https://cloud-sse.iexapis.com/stable/news-stream\?symbols\=aapl\&token\=YOUR_TOKEN
    

    Data Weighting

    1 per symbol per news item returned

    Data Timing

    Intraday

    Data Schedule

    Continuous

    Data Source(s)

    CityFalcon

    Available Methods

    GET /stock/{symbol}/news

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

    Path Parameters

    Option Description
    symbol
    last Number between 1 and 50. Default is 10. (i.e. .../news/last/1)

    Examples

    Response Attributes

    Key Type Description
    datetime number  Millisecond epoch of time of article
    headline string 
    source string  Source of the news article. Make sure to always attribute the source.
    url string  URL to IEX Cloud for associated news image. Note: You will need to append your token before calling.
    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 to IEX Cloud for associated news image. Note: You will need to append your token before calling.
    lang string  Language of the source article
    hasPaywall boolean  Whether the news source has a paywall

    OHLC

    Returns the official open and close for a give symbol. The official open is available as soon as 9:45am ET and the official close as soon as 4:15pm ET. Some stocks can report late open or close prices.

    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
    }
    

    Data Weighting

    2 per symbol

    Data Timing

    15min delayed

    Data Schedule

    9:30am-5pm ET Mon-Fri

    Data Source(s)

    Consolidated Tape

    Available Methods

    GET /stock/{symbol}/ohlc

    Examples

    Response Attributes

    Key Type Description
    open Object refers to the official open
        price number refers to the official open price. Will return 0 if symbol has no volume for the day.
        time number refers to the official listing exchange time for the open in millisecond epoch
    close Object refers to the official close
        price number refers to the official close price. Will return 0 if symbol has no volume for the day.
        time number refers to the official listing exchange time for the close in millisecond epoch
    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)

    Open / Close Price

    HTTP request example

    Refer to ohlc

    Options

    Returns end of day options data

    HTTP request example

    # Lookup available expiration dates
    GET /stock/{symbol}/options
    
    [
        "201906",
        "201907",
        "202001"
    ]
    
    # Get options data
    GET /stock/{symbol}/options/{expiration}/{optionSide?}
    

    The above example will return JSON with the following keys

    [
        {
            "symbol": "AAPL",
            "id": "AAPL20190621C00240000",
            "expirationDate": "20190621",
            "contractSize": 100,
            "strikePrice": 240,
            "closingPrice": 0.39,
            "side": "call",
            "type": "equity",
            "volume": 884,
            "openInterest": 12197,
            "bid": 0.38,
            "ask": 0.42,
            "lastUpdated": "2019-04-25"
        },
    ]
    

    Data Weighting

    1,000 per symbol per expiration date
    1 per date lookup

    Data Timing

    End of day

    Data Schedule

    9:30am ET Tue-Sat

    Data Source(s)

    Primary Partner

    Notes

    Launch, Grow, and Scale tiers only.

    Path Parameters

    Parameter Details
    symbol valid symbol
    expiration expiration date as YYYYMM. Optional. If not passed, the call will return all available expiration dates for the symbol.
    optionSide Optional. put or call will return just those types of contracts.

    Available Methods

    GET /stock/{symbol}/options/{expiration}/{optionSide?}

    Examples

    Lookup available expiration dates for a symbol

    Response Attributes

    Key Type Description
    symbol string Symbol associated with the option
    id string ID of the individual contract. symbol + date + side + 8 digit strike price
    contractSize string contract size
    strikePrice number strike price
    closingPrice number closing price
    side number “call” or “put”
    type string “equity” or “index”
    volume string
    openInterest number
    bid number final bid price of the day
    ask number final ask price of the day
    lastUpdated string date the EOD options data was last updated as YYYY-MM-DD

    Peers

    HTTP request example

    GET /stock/{symbol}/peers
    

    The above example will return an array

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

    Data Weighting

    500 per call

    Data Timing

    End of day

    Data Schedule

    8am UTC daily

    Data Source(s)

    IEX Cloud

    Available Methods

    GET /stock/{symbol}/peers

    Examples

    Response Attributes

    An array of peer symbols.

    Previous Day Price

    This returns previous day adjusted price data for one or more stocks.

    HTTP request example

    GET /stock/{symbol}/previous
    

    The above example will return JSON with the following keys

    {
      "date": "2019-03-25",
      "open": 191.51,
      "close": 188.74,
      "high": 191.98,
      "low": 186.6,
      "volume": 43845293,
      "uOpen": 191.51,
      "uClose": 188.74,
      "uHigh": 191.98,
      "uLow": 186.6,
      "uVolume": 43845293,
      "change": 0,
      "changePercent": 0,
      "changeOverTime": 0,
      "symbol": "AAPL"
    }
    

    Data Weighting

    2 per symbol

    Data Timing

    End of day

    Data Schedule

    Available after 4am ET Tue-Sat

    Data Source(s)

    Primary Partner

    Available Methods

    GET /stock/{symbol}/previous

    GET /stock/market/previous

    Examples

    Response Attributes

    Returns the same attributes as historical prices

    Price

    HTTP request example

    GET /stock/{symbol}/price
    

    The above example will return a number

    143.28
    

    Data Weighting

    1 per call

    Data Timing

    realtime 15min delayed End of day

    Data Schedule

    4:30am-8pm ET Mon-Fri

    Data Source(s)

    Primary Partner Investors Exchange Consolidated Tape

    Available Methods

    GET /stock/{symbol}/price

    Examples

    Response Attributes

    Returns a number. Refer to the latestPrice attribute in the quote endpoint for a description.

    Price Target

    Provides the latest avg, high, and low analyst price target for a symbol.

    HTTP request example

    GET /stock/{symbol}/price-target
    

    The above example will return JSON with the following keys

    {
      "symbol": "AAPL",
      "updatedDate": "2019-01-30",
      "priceTargetAverage": 178.59,
      "priceTargetHigh": 245,
      "priceTargetLow": 140,
      "numberOfAnalysts": 34
    }
    

    Data Weighting

    500 per symbol

    Data Timing

    End of day

    Data Schedule

    Updates at 10am, 11am, 12pm UTC every day

    Data Source(s)

    Primary Partner

    Available Methods

    GET /stock/{symbol}/price-target

    Examples

    Response Attributes

    Key Type Description
    symbol number
    updatedDate string Date of the most recent price target
    priceTargetAverage number Average price target
    priceTargetHigh number Highest price target
    priceTargetLow number Lowest price target
    numberOfAnalysts number Number of analysts that provided price targets

    Quote

    HTTP request example

    GET /stock/{symbol}/quote/{field}
    

    SSE Streaming Example (Launch & Scale only)

    curl --header 'Accept: text/event-stream' https://cloud-sse.iexapis.com/stable/stocksUS\?symbols\=spy\&token\=YOUR_TOKEN
    

    The above example will return JSON with the following keys

    {
      "symbol": "AAPL",
      "companyName": "Apple Inc.",
      "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,
      "week52High": 159.65,
      "week52Low": 93.63,
      "ytdChange": 0.3665,
    }
    

    Data Weighting

    1 per quote called or streamed

    Data Timing

    Realtime 15min delayed End of day

    Data Schedule

    4:30am-8pm ET Mon-Fri

    Data Source(s)

    Primary Partner Investors Exchange Consolidated Tape

    Available Methods

    GET /stock/{symbol}/quote

    GET /stock/{symbol}/quote/{field}

    Path Parameters

    Parameter Details
    field • Optional
    • Case sensitive string matching a response attribute below. Specifying an attribute will return just the attribute value. This is useful for Excel Webservice calls.

    Query String 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)

    Examples

    /stock/aapl/quote

    Here is an example of how to pull the latest price of the stock as a number. This is a great way to get values into Excel.
    /stock/aapl/quote/latestPrice

    Response Attributes

    Key Type Description
    latestPrice number Use this to get the latest price Refers to the latest relevant price of the security which is derived from multiple sources. We first look for an IEX real time price. If an IEX real time price is older than 15 minutes, 15 minute delayed market price is used. If a 15 minute delayed price is not available, we will use the current day close price. If a current day close price is not available, we will use the last available closing price (listed below as previousClose)

    IEX real time price represents trades on IEX only. Trades occur across over a dozen exchanges, so the last IEX price can be used to indicate the overall market price.

    15 minute delayed prices are from all markets using the Consolidated Tape

    This will not included pre or post market prices.
    latestVolume number Use this to get the latest volume Refers to the latest total market volume of the stock across all markets. This will be the most recent volume of the stock during trading hours, or it will be the total volume of the last available trading day.
    latestUpdate number refers to the machine readable epoch timestamp of when latestPrice was last updated. Represented in milliseconds since midnight Jan 1, 1970.
    latestTime string refers to a human readable time of when latestPrice was last updated. The format will vary based on latestSource is inteded to be displayed to a user. Use latestUpdated for machine readable timestamp.
    calculationPrice string refers to the source of the latest price.
    ("tops", "sip", "previousclose" or "close")
    latestSource string This will represent a human readable description of the source of latestPrice.

    Possible values are "IEX real time price", "15 minute delayed price", "Close" or "Previous close"
    change number Refers to the change in price between latestPrice and previousClose
    changePercent number Refers to the percent change in price between latestPrice and previousClose. For example, a 5% change would be represented as 0.05. You can use the query string parameter displayPercent to return this field multiplied by 100. So, 5% change would be represented as 5.
    open number refers to the official open price from the SIP. 15 minute delayed (can be null after 00:00 ET, before 9:45 and weekends)
    openTime number refers to the official listing exchange time for the open from the SIP. 15 minute delayed
    close number refers to the official close price from the SIP. 15 minute delayed
    closeTime number refers to the official listing exchange time for the close from the SIP. 15 minute delayed
    high number refers to the market-wide highest price from the SIP. 15 minute delayed during normal market hours 9:30 - 16:00 (null before 9:45 and weekends).
    low number refers to the market-wide lowest price from the SIP. 15 minute delayed during normal market hours 9:30 - 16:00 (null before 9:45 and weekends).
    extendedPrice number refers to the 15 minute delayed price outside normal market hours 0500 - 0930 ET and 1600 - 2000 ET. This provides pre market and post market price. This is purposefully separate from latestPrice so users can display the two prices separately.
    extendedChange number refers to the price change between extendedPrice and latestPrice.
    extendedChangePercent number refers to the price change percent between extendedPrice and latestPrice.
    extendedPriceTime number refers to the last update time of extendedPrice
    delayedPrice number refers to the 15 minute delayed market price from the SIP during normal market hours 9:30 - 16:00 ET.
    delayedPriceTime number refers to the last update time of the delayed market price during normal market hours 9:30 - 16:00 ET.
    marketCap number is calculated in real time using latestPrice.
    avgTotalVolume number refers to the 30 day average volume.
    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.
    iexRealtimePrice number refers to the price of the last trade on IEX.
    iexRealtimeSize number refers to the size of the last trade on IEX.
    iexLastUpdated number refers to the last update time of iexRealtimePrice 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.
    iexMarketPercent number refers to IEX’s percentage of the market in the stock.
    iexVolume number refers to shares traded in the stock on IEX.
    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.
    symbol string refers to the stock ticker.
    companyName string refers to the company name.

    Pulls data from the last four months.

    HTTP request example

    GET /stock/{symbol}/recommendation-trends
    

    The above example will return JSON with the following keys

    [
        {
            "consensusEndDate": 1542240000000,
            "consensusStartDate": 1541462400000,
            "corporateActionsAppliedDate": 1055721600000,
            "ratingBuy": 8,
            "ratingHold": 1,
            "ratingNone": 2,
            "ratingOverweight": 2,
            "ratingScaleMark": 1.042857,
            "ratingSell": 1,
            "ratingUnderweight": 1
        }
    ]
    

    Data Weighting

    1000 per symbol

    Data Timing

    End of day

    Data Schedule

    Updates at 9am, 11am, 12pm UTC every day

    Data Source(s)

    Primary Partner

    Available Methods

    GET /stock/{symbol}/recommendation-trends

    Examples

    Response Attributes

    Key Type Description
    consensusEndDate number Date that represents the last date the consensus value was effective. A NULL value indicates the consensus value is considered current. Represented as millisecond epoch time
    consensusStartDate number Date that represents the earliest date the consensus value was effective Represented as millisecond epoch time
    corporateActionsAppliedDate number Date through which corporate actions have been applied Represented as millisecond epoch time
    ratingBuy number Number of recommendations that fall into the Buy category
    ratingHold number Number of recommendations that fall into the Hold category
    ratingNone number Number of brokers where no recommendation is available
    ratingOverweight number Number of recommendations that fall into the Overweight category
    ratingScaleMark number Numeric value based on a standardized scale representing the consensus of broker recommendations
    ratingSell number Number of recommendations that fall into the Sell category
    ratingUnderweight number Number of recommendations that fall into the Underweight category

    Sector Performance

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

    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
      },
      ...
    ]
    

    Data Weighting

    1 per sector

    Data Timing

    Realtime 15min delayed

    Data Schedule

    8am-5pm ET Mon-Fri

    Data Source(s)

    Primary Partner IEX Cloud

    Available Methods

    GET /stock/market/sector-performance

    Examples

    Response Attributes

    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",
            "ratio": 0.142857,
            "toFactor": 7,
            "fromFactor": 1,
            "description": "7-for-1 split"
        } // , { ... }
    ]
    

    Data Weighting

    10 per symbol per record

    Data Timing

    End of day

    Data Schedule

    Updated at 9am UTC every day

    Data Source(s)

    Data Partner

    Available Methods

    GET /stock/{symbol}/splits

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

    Path Parameters

    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
    next Next upcoming split Historical market data

    Examples

    Response Attributes

    Key Type Description
    exDate string refers to the split ex-date
    declaredDate string refers to the split declaration 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 fromfactor/tofactor = ratio (eg ½ = 0.5)
    fromFactor string From factor of the split. Used to calculate the split ratio fromfactor/tofactor = ratio (eg ½ = 0.5)
    description string Description of the split event.

    Upcoming Events

    This will return all upcoming estimates, dividends, splits for a given symbol or the market. If market is passed for the symbol, ipos will also be included.

    HTTP request example

    GET /stock/{symbol}/upcoming-events
    GET /stock/{symbol}/upcoming-earnings
    GET /stock/{symbol}/upcoming-dividends
    GET /stock/{symbol}/upcoming-splits
    GET /stock/{symbol}/upcoming-ipos
    

    The above example will return JSON with the following keys

    // If symbol is specified
    {
        "earnings": [],
        "dividends": [],
        "splits": []
    }
    
    
    // If symbol is market
    {
        "ipos": {
            "rawData": [],
            "viewData": []
        },
        "earnings": [],
        "dividends": [],
        "splits": []
    }
    

    Data Weighting

    Weight is equal to the number of items return by each type. estimates, dividends, splits, ipos

    By default, earnings will only return symbol and reportDate for a weight of 5 for each item. If you use fullUpcomingEarnings parameter, the full estimates object is returned for the full weight.

    Data Timing

    Timing based on each type

    Data Schedule

    Schedule of each type

    Data Source(s)

    Primary Partner IEX Cloud

    Notes

    Only available to Launch, Grow, and Scale users.

    Available Methods

    GET /stock/{symbol}/upcoming-events

    GET /stock/{symbol}/upcoming-dividends

    GET /stock/{symbol}/upcoming-splits

    GET /stock/{symbol}/upcoming-earnings

    GET /stock/{symbol}/upcoming-ipos

    Examples

    Query String Parameters

    Parameter Details
    fullUpcomingEarnings Boolean. If set to true and passed to upcoming-events or upcoming-earnings, it will return the full estimate object at the full estimate weight. This can cause the call to be in the millions of messages.

    Response Attributes

    Response is an object with each item being an array of objects matching the type of data returned.

    Volume by Venue

    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 example

    GET /stock/{symbol}/volume-by-venue
    

    The above example will return JSON with the following keys

    [
      {
        "volume": 289791,
        "venue": "IEXG",
        "venueName": "IEX",
        "date": "2017-09-19",
        "marketPercent": 0.014105441890783691,
      },
      // ...
    ]
    

    Data Weighting

    20 per call

    Data Timing

    15 min delayed

    Data Schedule

    Updated during regular market hours 9:30am-4pm ET

    Data Source(s)

    Consolidated Tape Investors Exchange

    Notes

    Available Methods

    /stock/aapl/volume-by-venue

    Response Attributes

    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

    Alternative Data

    Crypto

    This will a quote for Cryptocurrencies supported by the IEX API. Each element is a standard quote.

    HTTP request example

    GET /crypto/{symbol}/quote
    

    The above example will return JSON with the following keys

      quote,
      ...
    

    Data Weighting

    1 per symbol

    Data Timing

    Realtime

    Data Schedule

    continuous

    Data Source(s)

    Binance

    Available Methods

    GET /crypto/{symbol}/quote

    Examples

    Response Attributes

    See quote

    Social Sentiment

    This endpoint provides social sentiment data from StockTwits. Data can be viewed as a daily value, or by minute for a given date.

    HTTP request example

    GET /stock/{symbol}/sentiment/{type}/{?date}
    

    SSE Streaming Example

    curl --header 'Accept: text/event-stream' https://cloud-sse.iexapis.com/stable/sentiment\?symbols\=aapl\&token\=YOUR_TOKEN
    

    The above example will return JSON with the following keys

    // Daily
    {
      "sentiment": 0.20365833333333336,
      "totalScores": 24,
      "positive": 0.88,
      "negative": 0.12
    }
    
    // By minute
    [
      {
        "sentiment": 0.23336666666666664,
        "totalScores": 3,
        "positive": 1,
        "negative": 0,
        "minute": "1258"
      },
    ]
    
    // SSE
    {
      "symbol": "AAPL",
      "score": -.41,
      "sequence": 6808168,
      "date": 1506605400394,
    }
    

    Data Weighting

    100 per symbol per date for daily sentiment
    200 per symbol per date for by minute sentiment
    5 per message using SSE

    Data Timing

    Realtime

    Data Schedule

    Continuous

    Data Source(s)

    StockTwits

    Notes

    Launch, Grow, and Scale tiers only.

    Available Methods

    GET /stock/{symbol}/sentiment/{type}/{date}

    Path Parameters

    Option Description
    symbol valid symbol
    type Optional. Can only be daily or minute. Default is daily.
    date Optional. Format YYYYMMDD date to fetch sentiment data.

    Examples

    Response Attributes

    Key Type Description
    sentiment number  Number between -1 and 1 where -1 is most bearish and 1 is most bullish.
    totalScores number  Number of social data inputs to generate the sentiment value.
    positive string  Percent of social messages with positive sentiment.
    negative string  Percent of social messages with negative sentiment.
    minute string  Only provided when minute is requested. Minute represented as HHmm.

    CEO Compensation

    This endpoint provides CEO compensation for a company by symbol.

    HTTP request example

    GET /stock/{symbol}/ceo-compensation
    

    The above example will return JSON with the following keys

    // Daily
    
    {
        "symbol": "AVGO",
        "name": "Hock E. Tan",
        "companyName": "Broadcom Inc.",
        "location": "Singapore, Asia",
        "salary": 1100000,
        "bonus": 0,
        "stockAwards": 98322843,
        "optionAwards": 0,
        "nonEquityIncentives": 3712500,
        "pensionAndDeferred": 0,
        "otherComp": 75820,
        "total": 103211163,
        "year": "2017"
    }
    
    

    Data Weighting

    20 per symbol

    Data Timing

    End of day

    Data Schedule

    1am daily

    Data Source(s)

    IEX Cloud

    Notes

    Launch, Grow, and Scale tiers only.

    Available Methods

    GET /stock/{symbol}/ceo-compensation

    Path Parameters

    Option Description
    symbol valid symbol

    Examples

    Response Attributes

    Key Type Description
    symbol string 
    name string  CEO name
    companyName string 
    location string  Location of the company
    salary number 
    bonus number 
    stockAwards number 
    optionAwards number 
    nonEquityIncentives number 
    pensionAndDeferred number 
    otherComp number 
    total number 
    year string  Fiscal year for the compensation data

    Reference Data

    Symbols

    This call returns an array of symbols that IEX Cloud supports for API calls.

    HTTP request example

    GET /ref-data/symbols
    

    The above example will return JSON with the following keys

    [
      {
        "symbol": "A",
        "name": "Agilent Technologies Inc.",
        "date": "2019-03-07",
        "type": "cs",
        "iexId": "IEX_46574843354B2D52",
        "region": "US",
        "currency": "USD",
        "isEnabled": true
      },
      {
        "symbol": "AA",
        "name": "Alcoa Corp.",
        "date": "2019-03-07",
        "type": "cs",
        "iexId": "IEX_4238333734532D52",
        "region": "US",
        "currency": "USD",
        "isEnabled": true
      }
    ]
    

    Data Weighting

    100 per call

    Data Timing

    End of day

    Data Schedule

    8am, 9am, 12pm, 1pm UTC daily

    Data Source(s)

    Primary Partner
    Investors Exchange

    Available Methods

    /ref-data/symbols

    Query String Parameters

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

    Response Attributes

    Key Description
    symbol refers to the symbol represented in Nasdaq Integrated symbology (INET).
    exchange refers to Exchange using IEX Supported Exchanges list
    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
    WT - Warrant
    OEF - Open Ended Fund
    CEF - Closed Ended Fund
    PS - Preferred Stock)
    region refers to the country code for the symbol using ISO 3166-1 alpha-2
    currency refers to the currency the symbol is traded in using ISO 4217
    iexId unique ID applied by IEX to track securities through symbol changes.

    IEX Symbols

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

    HTTP request example

    GET /ref-data/iex/symbols
    

    The above example will return JSON with the following keys

    [
      {
        "symbol": "A",
        "date": "2017-04-19",
        "isEnabled": true,
      },
      {
        "symbol": "AA",
        "date": "2017-04-19",
        "isEnabled": true,
      }
    ]
    

    Data Weighting

    Free

    Data Timing

    End of day

    Data Schedule

    8am, 9am, 12pm, 1pm UTC daily

    Data Source(s)

    Investors Exchange

    Available Methods

    /ref-data/iex/symbols

    Query String Parameters

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

    Response Attributes

    Key Description
    symbol refers to the symbol represented in Nasdaq Integrated symbology (INET).
    date refers to the date the symbol reference data was generated.
    isEnabled will be true if the symbol is enabled for trading on IEX.

    International Symbols

    This call returns an array of international symbols that IEX Cloud supports for API calls.

    HTTP request example

    GET /ref-data/region/{region}/symbols
    GET /ref-data/exchange/{exchange}/symbols
    

    The above example will return JSON with the following keys

    [
        {
            "symbol": "A.V",
            "exchange": "TSX",
            "name": "Armor Minerals Inc.",
            "date": "2019-03-12",
            "type": "cs",
            "iexId": "IEX_4656374258322D52",
            "region": "CA",
            "currency": "CAD",
            "isEnabled": true
        },
        {
            "symbol": "AA.V",
            "exchange": "TSX",
            "name": "Alba Minerals Ltd.",
            "date": "2019-03-12",
            "type": "cs",
            "iexId": "IEX_4E44474238422D52",
            "region": "CA",
            "currency": "CAD",
            "isEnabled": true
        }
    ]
    

    Data Weighting

    100 per call

    Data Timing

    End of day

    Data Schedule

    8am, 9am, 12pm, 1pm UTC daily

    Data Source(s)

    Primary Partner Investors Exchange

    Notes

    Currently International symbols only have End of Day prices.

    Available Methods

    GET /ref-data/region/{region}/symbols

    GET /ref-data/exchange/{exchange}/symbols

    Path Parameters

    Parameter Details
    region • Required
    • 2 letter case insensitive string of country codes using ISO 3166-1 alpha-2
    exchange • Required
    • Case insensitive string of Exchange using IEX Supported Exchanges list

    Examples

    Query String Parameters

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

    Response Attributes

    Key Description
    symbol refers to the symbol
    exchange refers to Exchange using IEX Supported Exchanges list
    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 trading.
    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
    WT - Warrant
    OEF - Open Ended Fund
    CEF - Closed Ended Fund
    PS - Preferred Stock)
    region refers to the region of the world the symbol is in
    currency refers to the currency the symbol is traded in
    iexId unique ID applied by IEX to track securities through symbol changes.

    International Exchanges

    Returns an array of exchanges.

    HTTP request example

    GET /ref-data/exchanges
    

    The above example will return JSON with the following keys

    [
        {
            exchange: "ADS",
            region: "AE",
            description: "Abu Dhabi Securities Exchange",
            mic: "XADS",
            exchangeSuffix: "-DH"
        }
    ]
    

    Data Weighting

    1 per call

    Data Timing

    End of day

    Data Schedule

    8am, 9am, 12pm, 1pm UTC daily

    Data Source(s)

    Investors Exchange

    Available Methods

    GET /ref-data/exchanges

    Examples

    Query String Parameters

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

    Response Attributes

    Key Type Description
    exchange string Exchange abbreviation
    region string 2 letter case insensitive string of country codes using ISO 3166-1 alpha-2
    description string Full name of the exchange.
    mic string Market Identifier Code using ISO 10383
    exchangeSuffix string Exchange Suffix to be added for symbols on that exchange

    U.S. Exchanges

    Returns an array of U.S. exchanges.

    HTTP request example

    GET /ref-data/market/us/exchanges
    

    The above example will return JSON with the following keys

    [
      {
        "name": "IEX",
        "longName": "Investors Exchange",
        "mic": "IEXG",
        "tapeId": "V",
        "oatsId": "XV",
        "refId": "IEXG",
        "type": "equities"
      },
    ]
    

    Data Weighting

    1 per call

    Data Timing

    End of day

    Data Schedule

    8am, 9am, 12pm, 1pm UTC daily

    Data Source(s)

    Investors Exchange

    Available Methods

    GET /ref-data/market/us/exchanges

    Examples

    Response Attributes

    Key Type Description
    name string Short name of the exchange.
    longName string Full name of the exchange.
    mic string Market identifier code for the exchange.
    tapeId string ID used to identify the exchange on the Consolidated Tape.
    oatsId string FINRA OATS exchange participant ID.
    refId string ID used to map exchange across individual markets. Useful when mapping ISIN
    type string Type of securities traded by the exchange

    U.S. Holidays and Trading Dates

    This call allows you to fetch a number of trade dates or holidays from a given date. For example, if you want the next trading day, you would call /ref-data/us/dates/trade/next/1.

    HTTP request example

    GET /ref-data/us/dates/{type}/{direction}/{last?}/{startDate?}
    

    The above example will return JSON with the following keys

    [
      {
        "date": "2019-02-07",
        "settlementDate": "2019-02-09",
      },
    ]
    

    Data Weighting

    1 per row returned

    Data Timing

    End of day

    Data Schedule

    Back to 2017 to forward 2 years.

    Data Source(s)

    Investors Exchange

    Available Methods

    GET /ref-data/us/dates/{type}/{direction?}/{last?}/{startDate?}

    Examples

    Next /ref-data/us/dates/

    Path Parameters

    Parameter Type Details
    type string Required. Can be trade or holiday
    direction string Required. Can be next or last. Default is next. next will return today if today is a holiday.
    last number • Optional. Number of days to go back or forward. Default is 1
    startDate string • Optional. Used to specify the start date for next or last. Format is YYYYMMDD. Defaults to today.

    Response Attributes

    Key Type Description
    date string Trading or holiday date depending on the type specified. Formatted as YYYY-MM-DD.
    settlementDate string T+2 trade settlement date depending on the type specified. Formatted as YYYY-MM-DD.

    Sectors

    Returns an array of sectors.

    HTTP request example

    GET /ref-data/sectors
    

    The above example will return JSON with the following keys

    [
        { "name": "Technology" },
        { "name": "Consumer Cyclical" },
        ...
    ]
    

    Data Weighting

    1 per call

    Data Source(s)

    Primary Partner Investors Exchange

    Available Methods

    GET /ref-data/sectors

    Examples

    Response Attributes

    Key Type Description
    name string Name of Sector

    Tags

    Returns an array of tags. Tags can be found on each company

    HTTP request example

    GET /ref-data/tags
    

    The above example will return JSON with the following keys

    [
        { "name" : "Financial Services" },
        { "name" : "Industrials" },
        ...
    ]
    

    Data Weighting

    1 per call

    Data Source(s)

    Primary Partner Investors Exchange

    Available Methods

    GET /ref-data/tags

    Examples

    /ref-data/tags

    Response Attributes

    Key Type Description
    name string Name of Tag

    ISIN Mapping

    Helper call to convert ISIN to IEX Cloud symbols. Note that due to licensing restrictions we are unable to return the ISIN.

    HTTP request example

    POST /ref-data/isin  { "token" : "YOUR_TOKEN", "isin" : [ "isin", "isin", "isin" ] }
    

    The above example will return JSON with the following keys

    [
        {
            "symbol" : "foo",
            "exchange" : "NAS",
            "region" : "US"
        }
    ]
    

    Data Weighting

    100 per call

    Data Source(s)

    Investors Exchange

    Available Methods

    POST /ref-data/isin

    Examples

    Response Attributes

    Key Type Description
    symbol string The ticker
    exchange string An identifier of where the symbol is listed
    region string The geographic identifier where the symbol is listed

    Mutual Fund Symbols

    This call returns an array of mutual fund symbols that IEX Cloud supports for API calls.

    HTTP request example

    GET /ref-data/mutual-funds/symbols
    

    The above example will return JSON with the following keys

    [
      {
        "symbol": "AAAAX",
        "name": "DWS Alternative Asset Allocation Fund Class A",
        "date": "2019-03-07",
        "type": "oef",
        "iexId": "IEX_4258444437432D52",
        "region": "US",
        "currency": "USD",
        "isEnabled": true
      },
    ]
    

    Data Weighting

    100 per call

    Data Timing

    End of day

    Data Schedule

    8am, 9am, 12pm, 1pm UTC daily

    Data Source(s)

    Primary Partner Investors Exchange

    Examples

    Query String Parameters

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

    Response Attributes

    Key Description
    symbol refers to the symbol
    name refers to the name of the company or security.
    date refers to the date the symbol reference data was generated.
    type refers to the common issue type (
    OEF - Open Ended Fund
    CEF - Closed Ended Fund)
    region refers to the region of the world the symbol is in
    currency refers to the currency the symbol is traded in
    iexId unique ID applied by IEX to track securities through symbol changes.

    OTC Symbols

    This call returns an array of OTC symbols that IEX Cloud supports for API calls.

    HTTP request example

    GET /ref-data/otc/symbols
    

    The above example will return JSON with the following keys

    [
      {
        "symbol": "A",
        "name": "AGILENT TECHNOLOGIES INC",
        "date": "2019-01-01",
        "type": "cs",
        "iexId": "IEX_46574843354B2D52"
      },
    ]
    

    Data Weighting

    100 per call

    Data Timing

    End of day

    Data Schedule

    8am, 9am, 12pm, 1pm UTC daily

    Data Source(s)

    Primary Partner Investors Exchange

    Notes

    Available Methods

    Examples

    Query String Parameters

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

    Response Attributes

    Key Description
    symbol refers to the symbol
    name refers to the name of the company or security.
    date refers to the date the symbol reference data was generated.
    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
    WT - Warrant)
    region refers to the region of the world the symbol is in
    currency refers to the currency the symbol is traded in
    iexId unique ID applied by IEX to track securities through symbol changes.

    FX Symbols

    This call returns a list of supported currencies and currency pairs.

    HTTP request example

    GET /ref-data/fx/symbols
    

    The above example will return JSON with the following keys

    {
      "currencies": [
        {
          "code": "USD",
          "name": "U.S. Dollar",
        },
      ],
      "pairs": [
        {
          "from": "EUR",
          "to": "USD",
        }
      ]
    }
    

    Data Weighting

    1 per call

    Data Timing

    End of day

    Data Schedule

    7am, 9am, UTC daily

    Data Source(s)

    Primary Partner

    Notes

    Launch, Grow, and Scale users only

    Available Methods

    GET /ref-data/fx/symbols

    Examples

    Response Attributes

    Key Type Description
    currencies array Array of currencies. Each currency is an object containing a code and name as strings.
    pairs array Array of supported currency pairs. Each pair is an object containing from code and to code.

    Options Symbols

    This call returns an object keyed by symbol with the value of each symbol being an array of available contract dates.

    HTTP request example

    GET /ref-data/options/symbols
    

    The above example will return JSON with the following keys

    {
      "DAL": [
        "201904",
        "201905",
        "201906",
        "201909",
        "201912",
        "202001",
        "202101"
      ],
      "RUSS": [
        "201905",
        "201906",
        "201909",
        "201912"
      ],
      //...
    }
    

    Data Weighting

    100 per call

    Data Timing

    End of day

    Data Schedule

    9:30am ET Tue-Sat

    Data Source(s)

    Primary Partner Investors Exchange

    Notes

    Only available to Launch, Grow, and Scale users.

    Available Methods

    GET /ref-data/options/symbols

    Examples

    Response Attributes

    Key Description
    symbol Array of available contract date strings formatted as YYYYMM

    Commodities Symbols In Dev

    Bonds Symbols In Dev

    Crypto Symbols In Dev

    Forex / Currencies

    Exchange Rates

    This endpoint provides an end of day exchange rate of a given currency pair.

    HTTP request example

    GET /fx/rate/{from}/{to}
    

    The above example will return JSON with the following keys

    {
      "date": "2019-03-05",
      "fromCurrency": "EUR",
      "toCurrency": "USD",
      "rate": 1.13 
    }
    

    Data Weighting

    1 per rate

    Data Timing

    End of day

    Data Schedule

    7am, 9am UTC

    Data Source(s)

    Primary Partner

    Notes

    Launch, Grow, and Scale tiers only.

    Available Methods

    GET /fx/rate/{from}/{to}

    Path Parameters

    Option Description
    from valid three character currency code
    to valid three character currency code

    Examples

    Response Attributes

    Key Type Description
    date string  Date formatted as ‘YYYY-MM-DD’
    fromCurrency string  currency code
    toCurrency string  currency code
    rate number  exchange rate

    Options

    End of Day Options

    Returns end of day options data

    HTTP request example

    # Lookup available expiration dates
    GET /stock/{symbol}/options
    
    [
        "201906",
        "201907",
        "202001"
    ]
    
    # Get options data
    GET /stock/{symbol}/options/{expiration}/{optionSide?}
    

    The above example will return JSON with the following keys

    [
        {
            "symbol": "AAPL",
            "id": "AAPL20190621C00240000",
            "expirationDate": "20190621",
            "contractSize": 100,
            "strikePrice": 240,
            "closingPrice": 0.39,
            "side": "call",
            "type": "equity",
            "volume": 884,
            "openInterest": 12197,
            "bid": 0.38,
            "ask": 0.42,
            "lastUpdated": "2019-04-25"
        },
    ]
    

    Data Weighting

    1,000 per symbol per expiration date
    1 per date lookup

    Data Timing

    End of day

    Data Schedule

    9:30am ET Tue-Sat

    Data Source(s)

    Primary Partner

    Notes

    Launch, Grow, and Scale tiers only.

    Path Parameters

    Parameter Details
    symbol valid symbol
    expiration expiration date as YYYYMM. Optional. If not passed, the call will return all available expiration dates for the symbol.
    optionSide Optional. put or call will return just those types of contracts.

    Available Methods

    GET /stock/{symbol}/options/{expiration}/{optionSide?}

    Examples

    Lookup available expiration dates for a symbol

    Response Attributes

    Key Type Description
    symbol string Symbol associated with the option
    id string ID of the individual contract. symbol + date + side + 8 digit strike price
    contractSize string contract size
    strikePrice number strike price
    closingPrice number closing price
    side number “call” or “put”
    type string “equity” or “index”
    volume string
    openInterest number
    bid number final bid price of the day
    ask number final ask price of the day
    lastUpdated string date the EOD options data was last updated as YYYY-MM-DD

    Commodities In Dev

    Bonds In Dev

    Investors Exchange Data

    TOPS

    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 the TOPS viewer app.

    HTTP request example

    GET /tops?symbols=snap
    

    The above examples will return JSON with the following keys

    [
      {
        "symbol": "SNAP",
        "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",
        "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+",
        "bidSize": 0,
        "bidPrice": 0,
        "askSize": 0,
        "askPrice": 0,
        "volume": 3400,
        "lastSalePrice": 21.52,
        "lastSaleSize": 100,
        "lastSaleTime": 1480446206461,
        "lastUpdated": -1,
        "sector": "insurance",
        "securityType": "commonstock"
      }
    ]
    

    Data Weighting

    Free

    Data Timing

    Realtime

    Data Schedule

    9:30am-4pm ET Market hours

    Data Source(s)

    Investors Exchange

    Examples

    Query String 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

    Response Attributes

    Key Description
    symbol refers to the stock ticker.
    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

    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 example

    GET /last?symbols=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
      }
    ]
    

    Data Weighting

    Free

    Data Timing

    Realtime

    Data Schedule

    9:30am-4pm ET market hours

    Data Source(s)

    Investors Exchange

    Examples

    Query String 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 Attributes

    Key Description
    symbol refers to the stock ticker.
    price refers to last sale price of the stock on IEX.
    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.

    DEEP

    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 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
      }
    }
    

    Data Weighting

    Free

    Data Timing

    Realtime

    Data Schedule

    9:30am-4pm ET market hours

    Data Source(s)

    Investors Exchange

    Examples

    Query String Parameters

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

    Response Attributes

    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

    DEEP Auction

    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 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-cloud.iexapis.com/stable/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
      }
    }
    

    Data Weighting

    Free

    Data Timing

    Data Schedule

    Data Source(s)

    Notes

    Available Methods

    /deep/auction?symbols=ziext

    WebSockets

    Subscribe to the auction channel.

    Query String 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 Attributes

    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

    DEEP Book

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

    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-cloud.iexapis.com/stable/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
        }
      ]
    }
    

    Data Weighting

    Free

    Data Timing

    Data Schedule

    Data Source(s)

    Notes

    Available Methods

    /deep/book?symbols=yelp

    WebSockets

    Subscribe to the book channel.

    Query String 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 Attributes

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

    DEEP Operational Halt Status

    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 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-cloud.iexapis.com/stable/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
      }
    }
    

    Data Weighting

    Free

    Data Timing

    Data Schedule

    Data Source(s)

    Notes

    Available Methods

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

    WebSockets

    Subscribe to the ophaltstatus channel.

    Query String 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 Attributes

    Key Type
    isHalted boolean
    timestamp number

    DEEP Official Price

    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 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-cloud.iexapis.com/stable/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
      }
    }
    

    Data Weighting

    Free

    Data Timing

    Data Schedule

    Data Source(s)

    Investors Exchange

    Notes

    Available Methods

    /deep/official-price?symbols=snap

    WebSockets

    Subscribe to the officialprice channel.

    Query String Parameters

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

    Response Attributes

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

    DEEP Security Event

    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 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-cloud.iexapis.com/stable/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
      }
    }
    

    Data Weighting

    Free

    Data Timing

    Data Schedule

    Data Source(s)

    Investors Exchange

    Notes

    Available Methods

    /deep/security-event?symbols=snap

    WebSockets

    Subscribe to the securityevent channel.

    Query String 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 Attributes

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

    DEEP Short Sale Price Test Status

    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 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-cloud.iexapis.com/stable/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
      }
    }
    

    Data Weighting

    Free

    Data Timing

    Data Schedule

    Data Source(s)

    Investors Exchange

    Notes

    Available Methods

    /deep/ssr-status?symbols=snap

    WebSockets

    Subscribe to the ssr channel.

    Query String 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 Attributes

    Key Type
    isSSR boolean
    detail string
    timestamp number

    DEEP System Event

    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 example

    GET /deep/system-event
    

    HTTP request example message

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

    WebSockets example (using socket.io)

    const url = 'https://ws-cloud.iexapis.com/stable/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
      }
    }
    

    Data Weighting

    Free

    Data Timing

    Data Schedule

    Data Source(s)

    Investors Exchange

    Notes

    Available Methods

    /deep/system-event

    WebSockets

    Subscribe to the systemevent channel.

    Response Attributes

    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

    DEEP 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-cloud.iexapis.com/stable/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
        }
      ]
    }
    

    Data Weighting

    Free

    Data Timing

    Data Schedule

    Data Source(s)

    Investors Exchange

    Notes

    Available Methods

    /deep/trades?symbols=snap

    WebSockets

    Subscribe to the trades channel.

    Query String 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 Attributes

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

    DEEP Trade Break

    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 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-cloud.iexapis.com/stable/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
        }
      ]
    }
    

    Data Weighting

    Free

    Data Timing

    Data Schedule

    Data Source(s)

    Investors Exchange

    Notes

    Available Methods

    /deep/trade-breaks?symbols=snap

    WebSockets

    Subscribe to the tradebreaks channel.

    Query String 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 Attributes

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

    DEEP Trading Status

    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:

    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-cloud.iexapis.com/stable/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
      }
    }
    

    Data Weighting

    Free

    Data Timing

    Data Schedule

    Data Source(s)

    Investors Exchange

    Notes

    Available Methods

    /deep/trading-status?symbols=snap

    WebSockets

    Subscribe to the tradingstatus channel.

    Query String 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 Attributes

    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

    Listed Regulation SHO Threshold Securities List In Dev

    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 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"
      },
      {...}
    ]
    

    Data Weighting

    Free

    Data Timing

    Data Schedule

    Data Source(s)

    Investors Exchange

    Notes

    Available Methods

    /stock/market/threshold-securities
    /stock/market/threshold-securities/20171210
    /stock/market/threshold-securities/sample

    Path Parameters

    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

    Query String 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 Attributes

    Refer to the Threshold Securities specification for further details

    Listed Short Interest List In Dev

    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 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"
      },
      {...}
    ]
    

    Data Weighting

    Free

    Data Timing

    Data Schedule

    Data Source(s)

    Investors Exchange

    Notes

    Available Methods

    /stock/ziext/short-interest
    /stock/market/short-interest/20171210
    /stock/market/short-interest/sample

    Path Parameters

    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

    Query String 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 Attributes

    Refer to the Short Interest specification for further details

    Stats Historical Daily In Dev

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

    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
      }
    ]
    

    Data Weighting

    Free

    Data Timing

    Data Schedule

    Data Source(s)

    Investors Exchange

    Notes

    Available Methods

    /stats/historical/daily
    /stats/historical/daily?date=201605
    /stats/historical/daily?last=5
    /stats/historical/daily?date=201605&format=csv

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

    Query String 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 Attributes

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

    Stats 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
      }
    ]
    

    Data Weighting

    Free

    Data Timing

    End of month

    Data Schedule

    Data Source(s)

    Investors Exchange

    Notes

    Available Methods

    /stats/historical
    /stats/historical?date=201605
    /stats/historical?date=201605&format=csv

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

    Query String 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 Attributes

    See our stats page for a reference of the keys.

    Stats 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
      }
    }
    

    Data Weighting

    Free

    Data Timing

    realtime

    Data Schedule

    Regular market hours

    Data Source(s)

    Investors Exchange

    Notes

    Available Methods

    /stats/intraday

    Response Attributes

    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.

    Stats Recent

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

    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
      }
    ]
    

    Data Weighting

    Free

    Data Timing

    Data Schedule

    Data Source(s)

    Investors Exchange

    Notes

    Available Methods

    /stats/recent

    Response Attributes

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

    Stats 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
      }
    }
    

    Data Weighting

    Free

    Data Timing

    End of day

    Data Schedule

    7am ET

    Data Source(s)

    Investors Exchange

    Notes

    Available Methods

    /stats/records

    Response Attributes

    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.

    API System Metadata

    Status

    Used to retrieve current system status.

    HTTP Request Example

    GET /status
    

    Data returned

    {
        "status":"up",
        "version":"BETA",
        "time":1548097469618
    }
    

    Data Weighting

    Free

    Data Timing

    realtime

    Available Methods

    /status

    Notes

    No token required

    Changelog

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

    v1

    2019-06-14

    2019-06-03

    2019-05-28

    2019-05-16

    2019-05-15

    2019-05-10

    2019-04-30

    2019-04-26

    2019-04-18

    Beta

    2019-04-15

    2019-04-10

    2019-04-09

    2019-03-22

    2019-03-21

    2019-03-20

    2019-03-18

    2019-03-14

    2019-03-13

    2019-03-12

    2019-03-08

    2019-03-07

    2019-03-06

    2019-02-28

    2019-02-27

    2019-02-26

    2019-02-21

    2019-02-20

    2019-02-19

    2019-02-14

    2019-02-12

    2019-02-07

    2019-02-01