Polygon Launchpad provides everything you need to connect your application to the financial markets. Use our best-in-class technology to access news, charts, history, corporate actions, and more for any security.
Pass your API key in the query string like follows:
Alternatively, you can add an Authorization header to the request with your API Key as the token in the following form:
Use custom request headers to pass along info about the user, location, and user agent that originated each API call so that Launchpad can provide usage analytics, track trends, and alert you to any problems.
X-Polygon-Edge-ID (required) - An alias that you can use to correlate usage in Polygon back to an individual user of your application. This should be a string, unique for each individual user of your application who accesses data. We'll keep logs and trends associated with each individual edge user, but their true identity is known only to you. We also use this information to calculate your Monthly Active Users for billing.
This should be a string between 1 and 80 characters long.
X-Polygon-Edge-IP-Address (required) - The IP Address information of the edge user originating the call. We use this for location insights, and to help you monitor for abuse.
This should be a string in IPv4 dotted decimal ("192.0.2.1"), IPv6 ("2001:db8::68"), or IPv4-mapped IPv6 ("::ffff:192.0.2.1") form.
X-Polygon-Edge-User-Agent - The User Agent information of the edge user originating the call. This can be used to see trends across different platforms, or different versions of your client application.
This should be a string between 1 and 80 characters long.
Many of Polygon.io's REST endpoints allow you to extend query parameters with inequalities like date.lt=2021-01-01 (less than) and date.gte=2020-01-01 (greater than or equal to) to search ranges of values. You can also use the field name without any extension to query for exact equality. Fields that support extensions will have an "Additional filter parameters" dropdown beneath them in the docs that detail the supported extensions for that parameter.
By default, all endpoints return a JSON response. To request a CSV response include 'Accept': 'text/csv' as a request parameter.
Get aggregate bars for a forex pair over a given date range in custom time window sizes.
For example, if timespan = ‘minute’ and multiplier = ‘5’ then 5-minute bars will be returned.
The ticker symbol of the currency pair.
The size of the timespan multiplier.
The size of the time window.
The start of the aggregate time window. Either a date with the format YYYY-MM-DD or a millisecond timestamp.
The end of the aggregate time window. Either a date with the format YYYY-MM-DD or a millisecond timestamp.
Whether or not the results are adjusted for splits. By default, results are adjusted. Set this to false to get results that are NOT adjusted for splits.
Sort the results by timestamp.
asc
will return results in ascending order (oldest at the top),
desc
will return results in descending order (newest at the top).
Limits the number of base aggregates queried to create the aggregate results. Max 50000 and Default 5000. Read more about how limit is used to calculate aggregate results in our article on Aggregate Data API Improvements.
The exchange symbol that this item is traded under.
Whether or not this response was adjusted for splits.
The number of aggregates (minute or day) used to generate the response.
A request id assigned by the server.
The total number of results for this request.
The status of this request's response.
The close price for the symbol in the given time period.
The highest price for the symbol in the given time period.
The lowest price for the symbol in the given time period.
The number of transactions in the aggregate window.
The open price for the symbol in the given time period.
The Unix Msec timestamp for the start of the aggregate window.
The trading volume of the symbol in the given time period.
The volume weighted average price.
{
"adjusted": true,
"queryCount": 1,
"request_id": "79c061995d8b627b736170bc9653f15d",
"results": [
{
"c": 1.17721,
"h": 1.18305,
"l": 1.1756,
"n": 125329,
"o": 1.17921,
"t": 1626912000000,
"v": 125329,
"vw": 1.1789
}
],
"resultsCount": 1,
"status": "OK",
"ticker": "C:EURUSD"
}
Get everything needed to visualize the tick-by-tick movement of a list of tickers.
Comma separated list of tickers. This API currently supports Stocks/Equities, Crypto, Options, and Forex. See the tickers endpoint for more details on supported tickers. If no tickers are passed then no results will be returned.
Warning: The maximum number of characters allowed in a URL are subject to your technology stack.
A link to this ticker's company's icon. Icon's are generally smaller, square images that represent the company at a glance. Note that you must provide an API key when accessing this URL. See the "Authentication" section at the top of this page for more details.
A link to this ticker's company's logo. Note that you must provide an API key when accessing this URL. See the "Authentication" section at the top of this page for more details.
The error while looking for this ticker.
The nanosecond timestamp of when this information was updated.
The market status for the market that trades this ticker.
The error message while looking for this ticker.
Name of ticker, forex, or crypto asset.
The type of contract. Can be "put", "call", or in some rare cases, "other".
The exercise style of this contract. See this link for more details on exercise styles.
The contract's expiration date in YYYY-MM-DD format.
The number of shares per contract for this contract.
The strike price of the option contract.
The ticker for the option contract.
The most up to date ticker price.
The value of the price change for the asset from the previous trading day.
The percent of the price change for the asset from the previous trading day.
The closing price of the asset for the day.
Today's early trading change amount, difference between price and previous close if in early trading hours, otherwise difference between last price during early trading and previous close.
Today's early trading change as a percentage.
The highest price of the asset for the day.
Today's late trading change amount, difference between price and today's close if in late trading hours, otherwise difference between last price during late trading and today's close.
Today's late trading change as a percentage.
The lowest price of the asset for the day.
The open price of the asset for the day.
The closing price of the asset for the previous trading day.
The price of the most recent trade or bid price for this asset.
Today's change in regular trading hours, difference between current price and previous trading day's close, otherwise difference between today's close and previous day's close.
Today's regular trading change as a percentage.
The trading volume for the asset for the day.
Ticker of asset queried.
The market for this ticker of stock, crypto, fx, option.
The status of this request's response.
{
"request_id": "abc123",
"results": [
{
"branding": {
"icon_url": "https://api.polygon.io/icon.png",
"logo_url": "https://api.polygon.io/logo.svg"
},
"last_updated": 1679597116344223500,
"market_status": "closed",
"name": "Norwegian Cruise Lines",
"price": 22.3,
"session": {
"change": -1.05,
"change_percent": -4.67,
"close": 21.4,
"early_trading_change": -0.39,
"early_trading_change_percent": -0.07,
"high": 22.49,
"late_trading_change": 1.2,
"late_trading_change_percent": 3.92,
"low": 21.35,
"open": 22.49,
"previous_close": 22.45,
"volume": 37
},
"ticker": "NCLH",
"type": "stocks"
},
{
"last_updated": 1679597116344223500,
"market_status": "closed",
"name": "NCLH $5 Call",
"options": {
"contract_type": "call",
"exercise_style": "american",
"expiration_date": "2022-10-14",
"shares_per_contract": 100,
"strike_price": 5,
"underlying_ticker": "NCLH"
},
"price": 6.6,
"session": {
"change": -0.05,
"change_percent": -1.07,
"close": 6.65,
"early_trading_change": -0.01,
"early_trading_change_percent": -0.03,
"high": 7.01,
"late_trading_change": -0.4,
"late_trading_change_percent": -0.02,
"low": 5.42,
"open": 6.7,
"previous_close": 6.71,
"volume": 67
},
"ticker": "O:NCLH221014C00005000",
"type": "options"
},
{
"last_updated": 1679597116344223500,
"market_status": "open",
"name": "Euro - United States Dollar",
"price": 0.97989,
"session": {
"change": -0.0001,
"change_percent": -0.67,
"close": 0.97989,
"high": 0.98999,
"low": 0.96689,
"open": 0.97889,
"previous_close": 0.98001
},
"ticker": "C:EURUSD",
"type": "fx"
},
{
"branding": {
"icon_url": "https://api.polygon.io/icon.png",
"logo_url": "https://api.polygon.io/logo.svg"
},
"last_updated": 1679597116344223500,
"market_status": "open",
"name": "Bitcoin - United States Dollar",
"price": 32154.68,
"session": {
"change": -201.23,
"change_percent": -0.77,
"close": 32154.68,
"high": 33124.28,
"low": 28182.88,
"open": 31129.32,
"previous_close": 33362.18
},
"ticker": "X:BTCUSD",
"type": "crypto"
},
{
"error": "NOT_FOUND",
"message": "Ticker not found.",
"ticker": "APx"
}
],
"status": "OK"
}
Query all ticker symbols which are supported by Polygon.io. This API currently includes Stocks/Equities, Indices, Forex, and Crypto.
Specify a ticker symbol. Defaults to empty string which queries all tickers.
Specify the type of the tickers. Find the types that we support via our Ticker Types API. Defaults to empty string which queries all types.
Filter by market type. By default all markets are included.
Specify the primary exchange of the asset in the ISO code format. Find more information about the ISO codes at the ISO org website. Defaults to empty string which queries all exchanges.
Specify the CUSIP code of the asset you want to search for. Find more information about CUSIP codes at their website. Defaults to empty string which queries all CUSIPs.
Note: Although you can query by CUSIP, due to legal reasons we do not return the CUSIP in the response.
Specify the CIK of the asset you want to search for. Find more information about CIK codes at their website. Defaults to empty string which queries all CIKs.
Specify a point in time to retrieve tickers available on that date. Defaults to the most recent available date.
Search for terms within the ticker and/or company name.
Specify if the tickers returned should be actively traded on the queried date. Default is true.
Order results based on the sort
field.
Limit the number of results returned, default is 100 and max is 1000.
Sort field used for ordering.
The total number of results for this request.
If present, this value can be used to fetch the next page of data.
A request id assigned by the server.
An array of tickers that match your query.
Note: Although you can query by CUSIP, due to legal reasons we do not return the CUSIP in the response.
Whether or not the asset is actively traded. False means the asset has been delisted.
The CIK number for this ticker. Find more information here.
The composite OpenFIGI number for this ticker. Find more information here
The name of the currency that this asset is traded with.
The last date that the asset was traded.
The information is accurate up to this time.
The locale of the asset.
The market type of the asset.
The name of the asset. For stocks/equities this will be the companies registered name. For crypto/fx this will be the name of the currency or coin pair.
The ISO code of the primary listing exchange for this asset.
The share Class OpenFIGI number for this ticker. Find more information here
The exchange symbol that this item is traded under.
The type of the asset. Find the types that we support via our Ticker Types API.
The status of this request's response.
{
"count": 1,
"next_url": "https://api.polygon.io/v3/reference/tickers?cursor=YWN0aXZlPXRydWUmZGF0ZT0yMDIxLTA0LTI1JmxpbWl0PTEmb3JkZXI9YXNjJnBhZ2VfbWFya2VyPUElN0M5YWRjMjY0ZTgyM2E1ZjBiOGUyNDc5YmZiOGE1YmYwNDVkYzU0YjgwMDcyMWE2YmI1ZjBjMjQwMjU4MjFmNGZiJnNvcnQ9dGlja2Vy",
"request_id": "e70013d92930de90e089dc8fa098888e",
"results": [
{
"active": true,
"cik": "0001090872",
"composite_figi": "BBG000BWQYZ5",
"currency_name": "usd",
"last_updated_utc": "2021-04-25T00:00:00Z",
"locale": "us",
"market": "stocks",
"name": "Agilent Technologies Inc.",
"primary_exchange": "XNYS",
"share_class_figi": "BBG001SCTQY4",
"ticker": "A",
"type": "CS"
}
],
"status": "OK"
}
The market close time on the holiday (if it's not closed).
The date of the holiday.
Which market the record is for.
The name of the holiday.
The market open time on the holiday (if it's not closed).
The status of the market on the holiday.
[
{
"date": "2020-11-26",
"exchange": "NYSE",
"name": "Thanksgiving",
"status": "closed"
},
{
"date": "2020-11-26",
"exchange": "NASDAQ",
"name": "Thanksgiving",
"status": "closed"
},
{
"date": "2020-11-26",
"exchange": "OTC",
"name": "Thanksgiving",
"status": "closed"
},
{
"close": "2020-11-27T18:00:00.000Z",
"date": "2020-11-27",
"exchange": "NASDAQ",
"name": "Thanksgiving",
"open": "2020-11-27T14:30:00.000Z",
"status": "early-close"
},
{
"close": "2020-11-27T18:00:00.000Z",
"date": "2020-11-27",
"exchange": "NYSE",
"name": "Thanksgiving",
"open": "2020-11-27T14:30:00.000Z",
"status": "early-close"
}
]
Get the current trading status of the exchanges and overall financial markets.
Whether or not the market is in post-market hours.
The status of the crypto market.
The status of the forex market.
Whether or not the market is in pre-market hours.
The status of the Nasdaq market.
The status of the NYSE market.
The status of the OTC market.
The status of Cboe Streaming Market Indices Cryptocurrency ("CCCY") indices trading hours.
The status of Cboe Global Indices ("CGI") trading hours.
The status of Dow Jones indices trading hours
The status of Financial Times Stock Exchange Group ("FTSE") Russell indices trading hours.
The status of Morgan Stanley Capital International ("MSCI") indices trading hours.
The status of Morningstar ("MSTAR") indices trading hours.
The status of Morningstar Customer ("MSTARC") indices trading hours.
The status of National Association of Securities Dealers Automated Quotations ("Nasdaq") indices trading hours.
The status of Standard & Poors's ("S&P") indices trading hours.
The status of Societe Generale indices trading hours.
The status of the market as a whole.
The current time of the server, returned as a date-time in RFC3339 format.
{
"afterHours": true,
"currencies": {
"crypto": "open",
"fx": "open"
},
"earlyHours": false,
"exchanges": {
"nasdaq": "extended-hours",
"nyse": "extended-hours",
"otc": "closed"
},
"market": "extended-hours",
"serverTime": "2020-11-10T17:37:37-05:00"
}
Filter for conditions within a given asset class.
Filter by data type.
Filter for conditions with a given ID.
Filter by SIP. If the condition contains a mapping for that SIP, the condition will be returned.
Order results based on the sort
field.
Limit the number of results returned, default is 10 and max is 1000.
Sort field used for ordering.
The total number of results for this request.
If present, this value can be used to fetch the next page of data.
A request ID assigned by the server.
An array of conditions that match your query.
A commonly-used abbreviation for this condition.
An identifier for a group of similar financial instruments.
Data types that this condition applies to.
A short description of the semantics of this condition.
If present, mapping this condition from a Polygon.io code to a SIP symbol depends on this attribute. In other words, data with this condition attached comes exclusively from the given exchange.
An identifier used by Polygon.io for this condition. Unique per data type.
If true, this condition is from an old version of the SIPs' specs and no longer is used. Other conditions may or may not reuse the same symbol as this one.
The name of this condition.
A mapping to a symbol for each SIP that has this condition.
An identifier for a collection of related conditions.
A list of aggregation rules.
Describes aggregation rules on a consolidated (all exchanges) basis.
Whether or not trades with this condition update the high/low.
Whether or not trades with this condition update the open/close.
Whether or not trades with this condition update the volume.
Describes aggregation rules on a per-market-center basis.
Whether or not trades with this condition update the high/low.
Whether or not trades with this condition update the open/close.
Whether or not trades with this condition update the volume.
The status of this request's response.
{
"count": 1,
"request_id": "31d59dda-80e5-4721-8496-d0d32a654afe",
"results": [
{
"asset_class": "stocks",
"data_types": [
"trade"
],
"id": 2,
"name": "Average Price Trade",
"sip_mapping": {
"CTA": "B",
"UTP": "W"
},
"type": "condition",
"update_rules": {
"consolidated": {
"updates_high_low": false,
"updates_open_close": false,
"updates_volume": true
},
"market_center": {
"updates_high_low": false,
"updates_open_close": false,
"updates_volume": true
}
}
}
],
"status": "OK"
}
Filter by asset class.
Filter by locale.
The total number of results for this request.
A request ID assigned by the server.
A commonly used abbreviation for this exchange.
An identifier for a group of similar financial instruments.
A unique identifier used by Polygon.io for this exchange.
An identifier for a geographical location.
The Market Identifier Code of this exchange (see ISO 10383).
Name of this exchange.
The MIC of the entity that operates this exchange.
The ID used by SIP's to represent this exchange.
Represents the type of exchange.
A link to this exchange's website, if one exists.
The status of this request's response.
{
"count": 1,
"request_id": "31d59dda-80e5-4721-8496-d0d32a654afe",
"results": [
{
"acronym": "AMEX",
"asset_class": "stocks",
"id": 1,
"locale": "us",
"mic": "XASE",
"name": "NYSE American, LLC",
"operating_mic": "XNYS",
"participant_id": "A",
"type": "exchange",
"url": "https://www.nyse.com/markets/nyse-american"
}
],
"status": "OK"
}
The Launchpad Fx WebSocket API provides streaming access to market data for Launchpad subscribers. You can specify which channels you want to consume by sending instructions in the form of actions. Our WebSockets emit events to notify you when an event has occurred in a channel you've subscribed to.
Our WebSocket APIs are based on entitlements that control which WebSocket Clusters you can connect to and which kinds of data you can access. You can login to see examples that include your API key and are personalized to your entitlements.
With a premium Forex plan, you will be able to use a single connection to the Forex Cluster. If another connection attempts to connect to the Forex Cluster simultaneously, the current connection will be disconnected. If you need more simultaneous connections to this cluster, you can contact support.
Connecting to a cluster:
On connection you will receive the following message:
[{
"ev":"status",
"status":"connected",
"message": "Connected Successfully"
}]
You must authenticate before you can make any other requests.
On successful authentication you will receive the following message:
[{
"ev":"status",
"status":"auth_success",
"message": "authenticated"
}]
Once authenticated, you can request a stream. You can request multiple streams in the same request.
You can also request multiple streams from the same cluster.
Things happen very quickly in the world of finance, which means a Polygon.io WebSocket client must be able to handle many incoming messages per second. Due to the nature of the WebSocket protocol, if a client is slow to consume messages from the server, Polygon.io's server must buffer messages and send them only as fast as the client can consume them. To help prevent the message buffer from getting too long, Polygon.io may send more than one JSON object in a single WebSocket message. We accomplish this by wrapping all messages in a JSON array, and adding more objects to the array if the message buffer is getting longer. For example, consider a WebSocket message with a single trade event in it:
[{"ev":"LV","sym":"MSFT","val":215.9721,"t":1611082428813}]
If your client is consuming a bit slow, or 2+ events happened in very short succession, you may receive a single WebSocket message with more than one event inside it, like this:
[
{"ev":"LV","sym":"MSFT","val":215.9721,"t":1611082428813},
{"ev":"LV","sym":"MSFT","val":215.9893,"t":1611082428814}
]
Note that if a client is consuming messages too slowly for too long, Polygon.io's server-side buffer may get too large. If that happens, Polygon.io will terminate the WebSocket connection. You can check your account dashboard to see if a connection was terminated as a slow consumer. If this happens to you consistently, consider subscribing to fewer symbols or channels.
Stream real-time per-minute forex aggregates for a given forex pair.
Specify a forex pair in the format {from}/{to} or use * to subscribe to all forex pairs. You can also use a comma separated list to subscribe to multiple forex pairs. You can retrieve active forex tickers from our Forex Tickers API.
The event type.
The ticker symbol for the given stock.
The tick volume.
Today's accumulated volume.
Today's official opening price.
The volume-weighted average value for the aggregate window.
The open price for the symbol in the given time period.
The close price for the symbol in the given time period.
The highest price for the symbol in the given time period.
The lowest price for the symbol in the given time period.
Today's volume weighted average price.
The average trade size for this aggregate window.
The start timestamp of this aggregate window in Unix Milliseconds.
The end timestamp of this aggregate window in Unix Milliseconds.
{
"ev": "AM",
"sym": "C:USD-EUR",
"v": 4110,
"av": 9470157,
"op": 0.9272,
"vw": 0.9288,
"o": 0.9288,
"c": 0.9286,
"h": 0.9289,
"l": 0.9206,
"a": 0.9352,
"z": 685,
"s": 1610144640000,
"e": 1610144700000
}
Specify a forex pair in the format {from}/{to} or use * to subscribe to all forex pairs. You can also use a comma separated list to subscribe to multiple forex pairs. You can retrieve active forex tickers from our Forex Tickers API.
The event type.
The current value of the security.
The ticker symbol for the given security.
The nanosecond timestamp.
{
"ev": "LV",
"val": 1.0631,
"sym": "C:EURUSD",
"t": 1678220098130
}