API Endpoints v1
Note: All the new functionalities and new endpoints listed in the pricing plans are designed for use with the new API endpoints in Version V2. Please refer to the V2 API endpoints documentation page for proper usage of the service. Please be aware that Version V1 of the API endpoints will be deprecated for use after June 30th, 2025.
Welcome to the Marketstack API documentation! In the following series of articles, you will learn how to query the Marketstack JSON API for real-time, intraday, and historical stock market data, define multiple stock symbols, retrieve extensive data about 70+ stock exchanges, 170,000+ stock tickers from more than 50 countries, as well as 750+ market indices, information about time zones, currencies, and more.
Our API is built on a RESTful, easy-to-understand request-and-response structure. API requests are always sent using a simple API request URL with a series of required and optional HTTP GET parameters, and API responses are provided in lightweight JSON format. Continue below to get started, or click the button above to jump to our 3-Step Quickstart Guide.
Quickstart Guide
Supported Endpoint
End-of-Day Data
You can use the API's eod endpoint to obtain end-of-day data for one or multiple stock tickers. A single or multiple comma-separated ticker symbols are passed to the API using the symbols parameter.
Note: To request end-of-day data for single ticker symbols, you can also use the API's Tickers Endpoint.
Example API Request:
Sign Up to Run API Request
Endpoint Features:
| Object | Description |
|---|---|
/eod/[date] | Specify a date in YYYY-MM-DD format. You can also specify an exact time in ISO-8601 date format, e.g. 2020-05-21T00:00:00+0000. Example: /eod/2020-01-01 |
/eod/latest | Obtain the latest available end-of-day data for one or multiple stock tickers. |
Parameters:
| Object | Description |
|---|---|
access_key | [Required] Specify your API access key, available in your account dashboard. |
symbols | [Required] Specify one or multiple comma-separated stock symbols (tickers) for your request, e.g. AAPL or AAPL,MSFT. Each symbol consumes one API request. Maximum: 100 symbols |
exchange | [Optional] Filter your results based on a specific stock exchange by specifying the MIC identification of a stock exchange. Example: XNAS |
sort | [Optional] By default, results are sorted by date/time descending. Use this parameter to specify a sorting order. Available values: DESC (Default), ASC. |
date_from | [Optional] Filter results based on a specific timeframe by passing a from-date in YYYY-MM-DD format. You can also specify an exact time in ISO-8601 date format, e.g. 2020-05-21T00:00:00+0000. |
date_to | [Optional] Filter results based on a specific timeframe by passing an end-date in YYYY-MM-DD format. You can also specify an exact time in ISO-8601 date format, e.g. 2020-05-21T00:00:00+0000. |
limit | [Optional] Specify a pagination limit (number of results per page) for your API request. Default limit value is 100, maximum allowed limit value is 1000. |
offset | [Optional] Specify a pagination offset value for your API request. Example: An offset value of 100 combined with a limit value of 10 would show results 100-110. Default value is 0, starting with the first available result. |
Example API Response: If your API request was successful, the Marketstack API will return both pagination information as well as a data object, which contains a separate sub-object for each requested date/time and symbol. All response objects are explained below.
API Response Objects:
| Response Object | Description |
|---|---|
pagination > limit | Returns your pagination limit value. |
pagination > offset | Returns your pagination offset value. |
pagination > count | Returns the results count on the current page. |
pagination > total | Returns the total count of results available. |
date | Returns the exact UTC date/time the given data was collected in ISO-8601 format. |
symbol | Returns the stock ticker symbol of the current data object. |
exchange | Returns the exchange MIC identification associated with the current data object. |
split_factor | Returns the split factor, which is used to adjust prices when a company splits, reverse splits, or pays a distribution. |
dividend | Returns the dividend, which are the distribution of earnings to shareholders. |
open | Returns the raw opening price of the given stock ticker. |
high | Returns the raw high price of the given stock ticker. |
low | Returns the raw low price of the given stock ticker. |
close | Returns the raw closing price of the given stock ticker. |
volume | Returns the raw volume of the given stock ticker. |
adj_open | Returns the adjusted opening price of the given stock ticker. |
adj_high | Returns the adjusted high price of the given stock ticker. |
adj_low | Returns the adjusted low price of the given stock ticker. |
adj_close | Returns the adjusted closing price of the given stock ticker. |
adj_volume | Returns the adjusted volume of given stock ticker. |
Adjusted Prices: "Adjusted" prices are stock price values that were amended to accurately reflect the given stock's value after accounting for any corporate actions, such as splits or dividends. Adjustments are made in accordance with the "CRSP Calculations" methodology set forth by the Center for Research in Security Prices (CRSP).
End-of-Day Data: You can use the API's eod endpoint in order to obtain end-of-day data for one or multiple stock tickers. A single or multiple comma-separated ticker symbols are passed to the API using the symbols parameter.
JavaScript Axios
Python Request
Python HTTP.client
Market Indices
The API is also capable of delivering end-of-day for 750+ of the world's major indices, including the S&P 500 Index, the Dow Jones Industrial Average Index as well as the NASDAQ Composite Index. Index data is available both on a "latest" basis as well as historically.
To list or access index data, simply pass INDX as your stock exchange MIC identification, as seen in the examples below. The example API request below illustrates how to obtain end-of-day data for the DJI market index.
Example API Request:
Sign Up to Run API Request
Parameters: For more information about request parameters, please refer to the End-of-day Data section of this documentation.
API Response:
API Response Objects: For more information about response objects, please refer to the End-of-day Data section of this documentation.
Market Indices in Other API Endpoints:
| Object | Description |
|---|---|
/exchanges/INDX/tickers | Obtain all available market indices by passing INDX as the exchange MIC identification. |
/tickers/[symbol].INDX | Obtain meta information for a specific market index. |
/tickers/[symbol].INDX/eod | Obtain end-of-day data for a specific market index. |
Historical Data
Historical stock prices are available both from the end-of-day (eod) and intraday (intraday) API endpoints. To obtain historical data, simply use the date_from and date_to parameters as shown in the example request below.
Example API Request:
Sign Up to Run API Request
Parameters: For details on request parameters on the eod data endpoint, please jump to the End-of-Day Data section.
Example API Response:
API Response Objects: For details on API response objects, please jump to the End-of-Day Data section.
Note: Historical end-of-day data (
eod) is available for up to 30 years back, while intraday data (intraday) always only offers the last 10,000 entries for each of the intervals available. Example: For a 1-minute interval, historical intraday data is available for up to 10,000 minutes back.
Historial Data: Historical stock prices are available both from the end-of-day (eod) and intraday (intraday) API endpoints. To obtain historical data, simply use the date_from and date_to parameters as shown in the example request below.
JavaScript Axios
Python Requests
Python Http.client
Intraday Data
In additional to daily end-of-day stock prices, the marketstack API also supports intraday data with data intervals as short as one minute. Intraday prices are available for all US stock tickers included in the IEX (Investors Exchange) stock exchange.
To obtain intraday data, you can use the API's intraday endpoint and specify your preferred stock ticker symbols.
Note: To request intraday data for single ticker symbols, you can also use the API's Tickers Endpoint.
Example API Request:
Sign Up to Run API Request
Endpoint Features:
| Object | Description |
|---|---|
/intraday/[date] | Specify a date in YYYY-MM-DD format. You can also specify an exact time in ISO-8601 date format, e.g. 2020-05-21T00:00:00+0000. Example: /intraday/2020-01-01 |
/intraday/latest | Obtain the latest available intraday data for one or multiple stock tickers. |
Parameters:
| Object | Description |
|---|---|
access_key | [Required] Specify your API access key, available in your account dashboard. |
symbols | [Required] Specify one or multiple comma-separated stock symbols (tickers) for your request, e.g. AAPL or AAPL,MSFT. Each symbol consumes one API request. Maximum: 100 symbols |
exchange | [Optional] Filter your results based on a specific stock exchange by specifying the MIC identification of a stock exchange. Example: IEXG |
interval | [Optional] Specify your preferred data interval. Available values: 1min, 5min, 10min, 15min, 30min, 1hour (Default), 3hour, 6hour, 12hour and 24hour. |
sort | [Optional] By default, results are sorted by date/time descending. Use this parameter to specify a sorting order. Available values: DESC (Default), ASC. |
date_from | [Optional] Filter results based on a specific timeframe by passing a from-date in YYYY-MM-DD format. You can also specify an exact time in ISO-8601 date format, e.g. 2020-05-21T00:00:00+0000. |
date_to | [Optional] Filter results based on a specific timeframe by passing an end-date in YYYY-MM-DD format. You can also specify an exact time in ISO-8601 date format, e.g. 2020-05-21T00:00:00+0000. |
limit | [Optional] Specify a pagination limit (number of results per page) for your API request. Default limit value is 100, maximum allowed limit value is 1000. |
offset | [Optional] Specify a pagination offset value for your API request. Example: An offset value of 100 combined with a limit value of 10 would show results 100-110. Default value is 0, starting with the first available result. |
Real-Time Updates: Please note that data frequency intervals below 15 minutes (15min) are only supported if you are subscribed to the Professional Plan or higher. If you are the Free or Basic Plan, please upgrade your account.
Example API Response: If your API request was successful, the marketstack API will return both pagination information as well as a data object, which contains a separate sub-object for each requested date/time and symbol. All response objects are explained below.
API Response Objects:
| Response Object | Description |
|---|---|
pagination > limit | Returns your pagination limit value. |
pagination > offset | Returns your pagination offset value. |
pagination > count | Returns the results count on the current page. |
pagination > total | Returns the total count of results available. |
date | Returns the exact UTC date/time the given data was collected in ISO-8601 format. |
symbol | Returns the stock ticker symbol of the current data object. |
exchange | Returns the exchange MIC identification associated with the current data object. |
open | Returns the raw opening price of the given stock ticker. |
high | Returns the raw high price of the given stock ticker. |
low | Returns the raw low price of the given stock ticker. |
close | Returns the raw closing price of the given stock ticker. |
last | Returns the last executed trade of the given symbol on its exchange. |
volume | Returns the volume of the given stock ticker. |
Intraday Data:
JavaScript Axios
Python Requests
Python HTTP.client
Real-Time Updates
For customers with an active subscription to the Professional Plan, the marketstack API's intraday endpoint is also capable of providing real-time market data, updated every minute, every 5 minutes or every 10 minutes.
To obtain real-time data using this endpoint, simply append the API's interval parameter and set it to 1min, 5min or 10min.
Example API Request:
Sign Up to Run API Request
Endpoint Features, Parameters & API Response: To learn about endpoint features, request parameters and API response objects, please navigate to the Intraday Data section.
Real-Time-Updates: Specify the interval parameter and set it to 1min, 5min or 10min to obtain real-time data using this endpoint.
JavaScript Axios
Python Requests
Python HTTP.client
Splits Data
Using the APIs splitsendpoint you will be able to look up information about the stock splits factor for different symbols. You will be able to find and try out an example API request below.
To obtain splits data, you can use the API's splits endpoint and specify your preferred stock ticker symbols.
Note: To request splits data for single ticker symbols, you can also use the API's Tickers Endpoint.
Example API Request:
Sign Up to Run API Request
Parameters:
| Object | Description |
|---|---|
access_key | [Required] Specify your API access key, available in your account dashboard. |
symbols | [Required] Specify one or multiple comma-separated stock symbols (tickers) for your request, e.g. AAPL or AAPL,MSFT. Each symbol consumes one API request. Maximum: 100 symbols |
sort | [Optional] By default, results are sorted by date/time descending. Use this parameter to specify a sorting order. Available values: DESC (Default), ASC. |
date_from | [Optional] Filter results based on a specific timeframe by passing a from-date in YYYY-MM-DD format. You can also specify an exact time in ISO-8601 date format, e.g. 2020-05-21T00:00:00+0000. |
date_to | [Optional] Filter results based on a specific timeframe by passing an end-date in YYYY-MM-DD format. You can also specify an exact time in ISO-8601 date format, e.g. 2020-05-21T00:00:00+0000. |
limit | [Optional] Specify a pagination limit (number of results per page) for your API request. Default limit value is 100, maximum allowed limit value is 1000. |
offset | [Optional] Specify a pagination offset value for your API request. Example: An offset value of 100 combined with a limit value of 10 would show results 100-110. Default value is 0, starting with the first available result. |
Example API Response: If your API request was successful, the marketstack API will return both pagination information as well as a data object, which contains a separate sub-object for each requested date/time and symbol. All response objects are explained below.
API Response Objects:
| Response Object | Description |
|---|---|
pagination > limit | Returns your pagination limit value. |
pagination > offset | Returns your pagination offset value. |
pagination > count | Returns the results count on the current page. |
pagination > total | Returns the total count of results available. |
date | Returns the exact UTC date/time the given data was collected in ISO-8601 format. |
symbol | Returns the stock ticker symbol of the current data object. |
volume | Returns the split factor for that symbol on the date. |
Splits Data:
JavaScript Axios
Python Requests
Python HTTP.client
Dividends Data
Using the APIs dividendsendpoint you will be able to look up information about the stock dividend for different symbols. You will be able to find and try out an example API request below.
To obtain dividends data, you can use the API's dividends endpoint and specify your preferred stock ticker symbols.
Note: To request dividends data for single ticker symbols, you can also use the API's Tickers Endpoint.
Example API Request:
Sign Up to Run API Request
Parameters:
| Object | Description |
|---|---|
access_key | [Required] Specify your API access key, available in your account dashboard. |
symbols | [Required] Specify one or multiple comma-separated stock symbols (tickers) for your request, e.g. AAPL or AAPL,MSFT. Each symbol consumes one API request. Maximum: 100 symbols |
sort | [Optional] By default, results are sorted by date/time descending. Use this parameter to specify a sorting order. Available values: DESC (Default), ASC. |
date_from | [Optional] Filter results based on a specific timeframe by passing a from-date in YYYY-MM-DD format. You can also specify an exact time in ISO-8601 date format, e.g. 2020-05-21T00:00:00+0000. |
date_to | [Optional] Filter results based on a specific timeframe by passing an end-date in YYYY-MM-DD format. You can also specify an exact time in ISO-8601 date format, e.g. 2020-05-21T00:00:00+0000. |
limit | [Optional] Specify a pagination limit (number of results per page) for your API request. Default limit value is 100, maximum allowed limit value is 1000. |
offset | [Optional] Specify a pagination offset value for your API request. Example: An offset value of 100 combined with a limit value of 10 would show results 100-110. Default value is 0, starting with the first available result. |
Example API Response: If your API request was successful, the marketstack API will return both pagination information as well as a data object, which contains a separate sub-object for each requested date/time and symbol. All response objects are explained below.
API Response Objects:
| Response Object | Description |
|---|---|
pagination > limit | Returns your pagination limit value. |
pagination > offset | Returns your pagination offset value. |
pagination > count | Returns the results count on the current page. |
pagination > total | Returns the total count of results available. |
date | Returns the exact UTC date/time the given data was collected in ISO-8601 format. |
symbol | Returns the stock ticker symbol of the current data object. |
volume | Returns the dividend for that symbol on the date. |
Dividends Data:
JavaScript Axios
Python Requests
Python HTTP.client
Tickers
Using the API's tickers endpoint you will be able to look up information about one or multiple stock ticker symbols as well as obtain end-of-day, real-time and intraday market data for single tickers. You will be able to find and try out an example API request below.
Example API Request:
Sign Up to Run API Request
Endpoint Features:
| Object | Description |
|---|---|
/tickers/[symbol] | Obtain information about a specific ticker symbol by attach it to your API request URL, e.g. /tickers/AAPL. |
/tickers/[symbol]/eod | Obtain end-of-day data for a specific stock ticker by attaching /eod to your URL, e.g. /tickers/AAPL/eod. This route supports parameters of the End-of-day Data endpoint. |
/tickers/[symbol]/splits | Obtain end-of-day data for a specific stock ticker by attaching /splits to your URL, e.g. /tickers/AAPL/splits. This route supports parameters like date period date_from and date_to and also you can sort the results DESC or ASC. |
/tickers/[symbol]/dividends | Obtain end-of-day data for a specific stock ticker by attaching /dividends to your URL, e.g. /tickers/AAPL/dividends. This route supports parameters like date period date_from and date_to and also you can sort the results DESC or ASC. |
/tickers/[symbol]/intraday | Obtain real-time & intraday data for a specific stock ticker by attaching /intraday to your URL, e.g. /tickers/AAPL/intraday. This route supports parameters of the Intraday Data endpoint. |
/tickers/[symbol]/eod/[date] | Specify a date in YYYY-MM-DD format. You can also specify an exact time in ISO-8601 date format, e.g. 2020-05-21T00:00:00+0000. Example: /eod/2020-01-01 or /intraday/2020-01-01 |
/tickers/[symbol]/eod/latest | Obtain the latest end-of-day data for a given stock symbol. Example: /tickers/AAPL/eod/latest |
/tickers/[symbol]/intraday/latest | Obtain the latest intraday data for a given stock symbol. Example: /tickers/AAPL/intraday/latest |
Parameters:
| Object | Description |
|---|---|
access_key | [Required] Specify your API access key, available in your account dashboard. |
exchange | [Optional] To filter your results based on a specific stock exchange, use this parameter to specify the MIC identification of a stock exchange. Example: XNAS |
search | [Optional] Use this parameter to search stock tickers by name or ticker symbol. |
limit | [Optional] Specify a pagination limit (number of results per page) for your API request. Default limit value is 100, maximum allowed limit value is 1000. |
offset | [Optional] Specify a pagination offset value for your API request. Example: An offset value of 100 combined with a limit value of 10 would show results 100-110. Default value is 0, starting with the first available result. |
API Response:
API Response Objects:
| Response Object | Description |
|---|---|
pagination > limit | Returns your pagination limit value. |
pagination > offset | Returns your pagination offset value. |
pagination > count | Returns the results count on the current page. |
pagination > total | Returns the total count of results available. |
name | Returns the name of the given stock ticker. |
symbol | Returns the symbol of the given stock ticker. |
stock_exchange > name | Returns the name of the stock exchange associated with the given stock ticker. |
stock_exchange > acronym | Returns the acronym of the stock exchange associated with the given stock ticker. |
stock_exchange > mic | Returns the MIC identification of the stock exchange associated with the given stock ticker. |
stock_exchange > country | Returns the country of the stock exchange associated with the given stock ticker. |
stock_exchange > country_code | Returns the 3-letter country code of the stock exchange associated with the given stock ticker. |
stock_exchange > city | Returns the city of the stock exchange associated with the given stock ticker. |
stock_exchange > website | Returns the website URL of the stock exchange associated with the given stock ticker. |
Tickers:
JavaScript Axios
Python Requests
Python HTTP.client
Exchanges
Using the exchanges API endpoint you will be able to look up information any of the 2700+ stock exchanges supported by this endpoint. This endpoint provides general information about several stock exchanges. Not all stock exchanges found here are supported by other Marketstack endpoints. For the supported stock exchanges supported by each endpoint, please verify each endpoint documentation. You will be able to find and try out an example API request below.
Example API Request:
Sign Up to Run API Request
Endpoint Features:
| Object | Description |
|---|---|
/exchanges/[mic] | Obtain information about a specific stock exchange by attaching its MIC identification to your API request URL, e.g. /exchanges/XNAS. |
/exchanges/[mic]/tickers | Obtain all available tickers for a specific exchange by attaching the exchange MIC as well as /tickers, e.g. /exchanges/XNAS/tickers. |
/exchanges/[mic]/eod | Obtain end-of-day data for all available tickers from a specific exchange, e.g. /exchanges/XNAS/eod. For parameters, refer to End-of-day Data endpoint. |
/exchanges/[mic]/intraday | Obtain intraday data for tickers from a specific exchange, e.g. /exchanges/XNAS/intraday. For parameters, refer to Intraday Data endpoint. |
/exchanges/[mic]/eod/[date] | Obtain end-of-day data for a specific date in YYYY-MM-DD or ISO-8601 format. Example: /exchanges/XNAS/eod/2020-01-01. |
/exchanges/[mic]/intraday/[date] | Obtain intraday data for a specific date and time in YYYY-MM-DD or ISO-8601 format. Example: /exchanges/IEXG/intraday/2020-05-21T00:00:00+0000. |
/exchanges/[mic]/eod/latest | Obtain the latest end-of-day data for tickers of the given exchange. Example: /exchanges/XNAS/eod/latest |
/exchanges/[mic]/intraday/latest | Obtain the latest intraday data for tickers of the given exchange. Example: /exchanges/IEXG/intraday/latest |
Parameters:
| Object | Description |
|---|---|
access_key | [Required] Specify your API access key, available in your account dashboard. |
search | [Optional] Use this parameter to search stock exchanges by name or MIC. |
limit | [Optional] Specify a pagination limit (number of results per page) for your API request. Default limit value is 100, maximum allowed limit value is 1000. |
offset | [Optional] Specify a pagination offset value for your API request. Example: An offset value of 100 combined with a limit value of 10 would show results 100-110. Default value is 0, starting with the first available result. |
API Response:
API Response Objects:
| Response Object | Description |
|---|---|
pagination > limit | Returns your pagination limit value. |
pagination > offset | Returns your pagination offset value. |
pagination > count | Returns the results count on the current page. |
pagination > total | Returns the total count of results available. |
name | Returns the name of the given stock exchange. |
acronym | Returns the acronym of the given stock exchange. |
mic | Returns the MIC identification of the given stock exchange. |
country | Returns the country of the given stock exchange. |
country_code | Returns the 3-letter country code of the given stock exchange. |
city | Returns the given city of the stock exchange. |
website | Returns the website URL of the given stock exchange. |
timezone > timezone | Returns the timezone name of the given stock exchange. |
timezone > abbr | Returns the timezone abbreviation of the given stock exchange. |
timezone > abbr_dst | Returns the Summer time timezone abbreviation of the given stock exchange. |
Exchanges:
JavaScript Axios
Python Requests
Python HTTP.client
Currencies
Using the currencies API endpoint you will be able to look up all currencies supported by the marketstack API. You will be able to find and try out an example API request below.
Example API Request:
Sign Up to Run API Request
Parameters:
| Object | Description |
|---|---|
access_key | [Required] Specify your API access key, available in your account dashboard. |
limit | [Optional] Specify a pagination limit (number of results per page) for your API request. Default limit value is 100, maximum allowed limit value is 1000. |
offset | [Optional] Specify a pagination offset value for your API request. Example: An offset value of 100 combined with a limit value of 10 would show results 100-110. Default value is 0, starting with the first available result. |
API Response:
API Response Objects:
| Response Object | Description |
|---|---|
pagination > limit | Returns your pagination limit value. |
pagination > offset | Returns your pagination offset value. |
pagination > count | Returns the results count on the current page. |
pagination > total | Returns the total count of results available. |
code | Returns the 3-letter code of the given currency. |
name | Returns the name of the given currency. |
symbol | Returns the text symbol of the given currency. |
symbol_native | Returns the native text symbol of the given currency. |
Currencies:
JavaScript Axios
Python Requests
Python HTTP.client
Timezones
Using the timezones API endpoint you will be able to look up information about all supported timezones. You will be able to find and try out an example API request below.
Example API Request:
Sign Up to Run API Request
Parameters:
| Object | Description |
|---|---|
access_key | [Required] Specify your API access key, available in your account dashboard. |
limit | [Optional] Specify a pagination limit (number of results per page) for your API request. Default limit value is 100, maximum allowed limit value is 1000. |
offset | [Optional] Specify a pagination offset value for your API request. Example: An offset value of 100 combined with a limit value of 10 would show results 100-110. Default value is 0, starting with the first available result. |
API Response:
API Response Objects:
| Response Object | Description |
|---|---|
pagination > limit | Returns your pagination limit value. |
pagination > offset | Returns your pagination offset value. |
pagination > count | Returns the results count on the current page. |
pagination > total | Returns the total count of results available. |
timezone | Returns the name of the given timezone. |
abbr | Returns the abbreviation of the given timezone. |
abbr_dst | Returns the Summer time abbreviation of the given timezone. |
Timezones:
JavaScript Axios
Python Requests
Python HTTP.client