Home
Polygon.io
Polygon.io WebSocket APIs
Polygon.io WebSocket APIs
Version 2.0.0
Streaming WebSocket APIs from Polygon.io (now operating as Massive) for real-time and delayed US Stocks, Options, Forex, Crypto, Indices, and Futures market data. Clients connect to a market-specific WebSocket cluster, authenticate with an API key, then subscribe to one or more event topics scoped to a ticker, contract, or pair (e.g. `T.AAPL`, `Q.MSFT`, `AM.*`). Messages from the server are JSON arrays where each object carries an `ev` field identifying the event type. Endpoints exist for the real-time feed (`socket.polygon.io` / `socket.massive.com`), the 15-minute delayed feed, Launchpad multi-market entitlements, and Business-tier enrichment streams such as Fair Market Value (FMV).
View Spec
View on GitHub
Fintech Market Data Stocks Options Forex Crypto Indices Futures WebSockets Real-time Historical AsyncAPI Webhooks Events
Channels
stocks/T
subscribe subscribeStocksTrades
Receive real-time stock trade events.
Stream real-time trades for a given stock ticker symbol.
stocks/Q
subscribe subscribeStocksQuotes
Receive real-time stock quote (NBBO) events.
Stream real-time NBBO quotes for a given stock ticker symbol.
stocks/A
subscribe subscribeStocksSecAggregates
Receive per-second stock aggregate (OHLCV) events.
Stream real-time per-second aggregates for a given stock ticker.
stocks/AM
subscribe subscribeStocksMinAggregates
Receive per-minute stock aggregate (OHLCV) events.
Stream real-time per-minute aggregates for a given stock ticker.
stocks/LULD
subscribe subscribeStocksLULD
Receive LULD (price band) events.
Stream Limit-Up Limit-Down events for a given stock ticker.
stocks/NOI
subscribe subscribeStocksImbalances
Receive auction imbalance events.
Stream NYSE/Nasdaq Order Imbalance (NOI) events for a given stock.
business/stocks/FMV
subscribe subscribeStocksFMV
Receive Fair Market Value events for stocks.
Stream Fair Market Value (FMV) for a given stock ticker. Available on the Business-tier feed (`business.polygon.io/stocks`).
launchpad/stocks/AM
subscribe subscribeLaunchpadStocksMinAggregates
Receive per-minute stock aggregates over Launchpad.
Per-minute aggregates for stocks delivered over the Launchpad multi-market feed.
launchpad/stocks/LV
subscribe subscribeLaunchpadStocksValue
Receive Launchpad Value events for stocks.
Launchpad Value events for stocks.
options/T
subscribe subscribeOptionsTrades
Receive real-time option trade events.
Stream real-time trades for a given option contract.
options/Q
subscribe subscribeOptionsQuotes
Receive real-time option quote events.
Stream real-time quotes for a given option contract.
options/A
subscribe subscribeOptionsSecAggregates
Receive per-second option aggregate events.
Stream real-time per-second aggregates for a given option contract.
options/AM
subscribe subscribeOptionsMinAggregates
Receive per-minute option aggregate events.
Stream real-time per-minute aggregates for a given option contract.
business/options/FMV
subscribe subscribeOptionsFMV
Receive Fair Market Value events for options.
Stream Fair Market Value (FMV) for a given option contract over the Business-tier feed.
launchpad/options/AM
subscribe subscribeLaunchpadOptionsMinAggregates
Receive per-minute option aggregates over Launchpad.
Per-minute aggregates for options delivered over Launchpad.
launchpad/options/LV
subscribe subscribeLaunchpadOptionsValue
Receive Launchpad Value events for options.
Launchpad Value events for options.
forex/C
subscribe subscribeForexQuotes
Receive real-time forex quote events.
Stream real-time quotes for a forex currency pair.
forex/CA
subscribe subscribeForexMinAggregates
Receive per-minute forex aggregate events.
Stream per-minute aggregates for a forex currency pair.
forex/CAS
subscribe subscribeForexSecAggregates
Receive per-second forex aggregate events.
Stream per-second aggregates for a forex currency pair.
business/forex/FMV
subscribe subscribeForexFMV
Receive Fair Market Value events for forex.
Stream Fair Market Value for a forex pair over the Business feed.
launchpad/forex/AM
subscribe subscribeLaunchpadForexMinAggregates
Receive per-minute forex aggregates over Launchpad.
Per-minute aggregates for forex delivered over Launchpad.
launchpad/forex/LV
subscribe subscribeLaunchpadForexValue
Receive Launchpad Value events for forex.
Launchpad Value events for forex.
crypto/XT
subscribe subscribeCryptoTrades
Receive real-time crypto trade events.
Stream real-time trades for a crypto pair.
crypto/XQ
subscribe subscribeCryptoQuotes
Receive real-time crypto quote events.
Stream real-time quotes for a crypto pair.
crypto/XA
subscribe subscribeCryptoMinAggregates
Receive per-minute crypto aggregate events.
Stream per-minute aggregates for a crypto pair.
crypto/XAS
subscribe subscribeCryptoSecAggregates
Receive per-second crypto aggregate events.
Stream per-second aggregates for a crypto pair.
crypto/XL2
subscribe subscribeCryptoLevel2
Receive Level 2 order book snapshots.
Stream Level 2 order book updates for a crypto pair.
business/crypto/FMV
subscribe subscribeCryptoFMV
Receive Fair Market Value events for crypto.
Stream Fair Market Value for a crypto pair over the Business feed.
launchpad/crypto/AM
subscribe subscribeLaunchpadCryptoMinAggregates
Receive per-minute crypto aggregates over Launchpad.
Per-minute aggregates for crypto delivered over Launchpad.
launchpad/crypto/LV
subscribe subscribeLaunchpadCryptoValue
Receive Launchpad Value events for crypto.
Launchpad Value events for crypto.
indices/V
subscribe subscribeIndicesValue
Receive real-time index value events.
Stream real-time index values for a given index ticker.
indices/A
subscribe subscribeIndicesSecAggregates
Receive per-second index aggregate events.
Stream per-second aggregates for a given index ticker.
indices/AM
subscribe subscribeIndicesMinAggregates
Receive per-minute index aggregate events.
Stream per-minute aggregates for a given index ticker.
futures/T
subscribe subscribeFuturesTrades
Receive real-time futures trade events.
Stream real-time trades for a futures contract.
futures/Q
subscribe subscribeFuturesQuotes
Receive real-time futures quote events.
Stream real-time quotes for a futures contract.
futures/A
subscribe subscribeFuturesSecAggregates
Receive per-second futures aggregate events.
Stream per-second aggregates for a futures contract.
futures/AM
subscribe subscribeFuturesMinAggregates
Receive per-minute futures aggregate events.
Stream per-minute aggregates for a futures contract.
control
publish sendControlMessage
Send auth, subscribe, or unsubscribe control messages.
Control channel for client-to-server messages. After the connection is established, the client must send an `auth` message with its API key, then issue `subscribe` and `unsubscribe` messages whose `params` field is a comma-separated list of `.` tuples (e.g. `T.AAPL,T.MSFT`, `Q.*`, `AM.O:A230616C00070000`). The server acknowledges each control message with a `status` event.
Messages
✉
AuthMessage
Authentication request
Authenticate the WebSocket session with an API key.
✉
SubscribeMessage
Subscribe request
Subscribe to one or more topics.
✉
UnsubscribeMessage
Unsubscribe request
Unsubscribe from one or more topics.
✉
StatusMessage
Connection status event
Server-side status update for connect, auth, subscribe, and unsubscribe operations.
✉
StockTrade
Stock trade (T)
A single stock trade tick from the SIP or a TRF.
✉
StockQuote
Stock quote (Q)
A single stock NBBO quote update.
✉
StockAggregate
Stock per-second aggregate (A)
Aggregated OHLCV window covering one second.
✉
StockAggregateMinute
Stock per-minute aggregate (AM)
Aggregated OHLCV window covering one minute.
✉
LimitUpLimitDown
Limit-Up Limit-Down (LULD)
National price bands published under Reg NMS LULD.
✉
Imbalance
Order imbalance (NOI)
NYSE / Nasdaq opening or closing auction imbalance event.
✉
FairMarketValue
Fair Market Value (FMV)
Polygon's proprietary fair value estimate for the asset.
✉
LaunchpadAggregateMinute
Launchpad per-minute aggregate (AM)
Per-minute aggregate routed via the Launchpad multi-market feed.
✉
LaunchpadValue
Launchpad Value (LV)
Launchpad-feed value event.
✉
OptionTrade
Option trade (T)
A single OPRA-licensed option trade tick.
✉
OptionQuote
Option quote (Q)
A single OPRA-licensed option quote update.
✉
OptionAggregate
Option per-second aggregate (A)
✉
OptionAggregateMinute
Option per-minute aggregate (AM)
✉
ForexQuote
Forex quote (C)
Currency pair quote update.
✉
ForexAggregateMinute
Forex per-minute aggregate (CA)
✉
ForexAggregateSecond
Forex per-second aggregate (CAS)
✉
CryptoTrade
Crypto trade (XT)
✉
CryptoQuote
Crypto quote (XQ)
✉
CryptoAggregateMinute
Crypto per-minute aggregate (XA)
✉
CryptoAggregateSecond
Crypto per-second aggregate (XAS)
✉
CryptoLevel2Book
Crypto Level 2 book (XL2)
Aggregated Level 2 book snapshot for a crypto pair.
✉
IndexValue
Index value (V)
✉
IndexAggregate
Index per-second aggregate (A)
✉
IndexAggregateMinute
Index per-minute aggregate (AM)
✉
FuturesTrade
Futures trade (T)
✉
FuturesQuote
Futures quote (Q)
✉
FuturesAggregate
Futures per-second aggregate (A)
✉
FuturesAggregateMinute
Futures per-minute aggregate (AM)
Servers
wss
stocks
socket.polygon.io/stocks
Real-time stocks WebSocket cluster.
wss
stocks-delayed
delayed.polygon.io/stocks
15-minute delayed stocks WebSocket cluster.
wss
options
socket.polygon.io/options
Real-time options (OPRA) WebSocket cluster.
wss
options-delayed
delayed.polygon.io/options
15-minute delayed options WebSocket cluster.
wss
forex
socket.polygon.io/forex
Real-time forex WebSocket cluster.
wss
crypto
socket.polygon.io/crypto
Real-time crypto WebSocket cluster.
wss
indices
socket.polygon.io/indices
Real-time indices WebSocket cluster.
wss
futures
socket.polygon.io/futures
Real-time futures WebSocket cluster. Sub-paths exist for individual venues: `/futures/cme`, `/futures/cbot`, `/futures/nymex`, `/futures/comex`.
wss
launchpad
launchpad.polygon.io
Launchpad multi-market feed. Append the market segment to the path, e.g. `launchpad.polygon.io/stocks`. Carries `AM` (per-minute aggregates) and `LV` (Launchpad Value) topics across stocks, options, forex, and crypto.
wss
business
business.polygon.io
Business-tier feed. Append the market segment to the path, e.g. `business.polygon.io/stocks`. Carries the `FMV` (Fair Market Value) topic across stocks, options, forex, and crypto.
wss
nasdaq
nasdaqfeed.polygon.io/stocks
Nasdaq-only direct feed for stocks (entitlement required).
wss
polyfeed
polyfeed.polygon.io/stocks
PolyFeed aggregated stocks feed (entitlement required).
wss
polyfeedplus
polyfeedplus.polygon.io/stocks
PolyFeed Plus aggregated stocks feed (entitlement required).
wss
starterfeed
starterfeed.polygon.io/stocks
Starter feed for stocks (entitlement required).
AsyncAPI Specification
asyncapi: 2.6.0
id: urn:polygon-io:websocket
info:
title: Polygon.io WebSocket APIs
version: 2.0.0
description: >-
Streaming WebSocket APIs from Polygon.io (now operating as Massive) for
real-time and delayed US Stocks, Options, Forex, Crypto, Indices, and
Futures market data. Clients connect to a market-specific WebSocket
cluster, authenticate with an API key, then subscribe to one or more event
topics scoped to a ticker, contract, or pair (e.g. `T.AAPL`, `Q.MSFT`,
`AM.*`). Messages from the server are JSON arrays where each object
carries an `ev` field identifying the event type. Endpoints exist for the
real-time feed (`socket.polygon.io` / `socket.massive.com`), the 15-minute
delayed feed, Launchpad multi-market entitlements, and Business-tier
enrichment streams such as Fair Market Value (FMV).
contact:
name: Polygon.io Developer Support
url: https://polygon.io/contact
license:
name: Polygon.io Terms of Service
url: https://polygon.io/legal/terms
x-source: https://polygon.io/docs/websocket
x-status: production
defaultContentType: application/json
servers:
stocks:
url: socket.polygon.io/stocks
protocol: wss
description: Real-time stocks WebSocket cluster.
security:
- apiKey: []
stocks-delayed:
url: delayed.polygon.io/stocks
protocol: wss
description: 15-minute delayed stocks WebSocket cluster.
security:
- apiKey: []
options:
url: socket.polygon.io/options
protocol: wss
description: Real-time options (OPRA) WebSocket cluster.
security:
- apiKey: []
options-delayed:
url: delayed.polygon.io/options
protocol: wss
description: 15-minute delayed options WebSocket cluster.
security:
- apiKey: []
forex:
url: socket.polygon.io/forex
protocol: wss
description: Real-time forex WebSocket cluster.
security:
- apiKey: []
crypto:
url: socket.polygon.io/crypto
protocol: wss
description: Real-time crypto WebSocket cluster.
security:
- apiKey: []
indices:
url: socket.polygon.io/indices
protocol: wss
description: Real-time indices WebSocket cluster.
security:
- apiKey: []
futures:
url: socket.polygon.io/futures
protocol: wss
description: >-
Real-time futures WebSocket cluster. Sub-paths exist for individual
venues: `/futures/cme`, `/futures/cbot`, `/futures/nymex`, `/futures/comex`.
security:
- apiKey: []
launchpad:
url: launchpad.polygon.io
protocol: wss
description: >-
Launchpad multi-market feed. Append the market segment to the path,
e.g. `launchpad.polygon.io/stocks`. Carries `AM` (per-minute aggregates)
and `LV` (Launchpad Value) topics across stocks, options, forex, and crypto.
security:
- apiKey: []
business:
url: business.polygon.io
protocol: wss
description: >-
Business-tier feed. Append the market segment to the path,
e.g. `business.polygon.io/stocks`. Carries the `FMV` (Fair Market Value)
topic across stocks, options, forex, and crypto.
security:
- apiKey: []
nasdaq:
url: nasdaqfeed.polygon.io/stocks
protocol: wss
description: Nasdaq-only direct feed for stocks (entitlement required).
security:
- apiKey: []
polyfeed:
url: polyfeed.polygon.io/stocks
protocol: wss
description: PolyFeed aggregated stocks feed (entitlement required).
security:
- apiKey: []
polyfeedplus:
url: polyfeedplus.polygon.io/stocks
protocol: wss
description: PolyFeed Plus aggregated stocks feed (entitlement required).
security:
- apiKey: []
starterfeed:
url: starterfeed.polygon.io/stocks
protocol: wss
description: Starter feed for stocks (entitlement required).
security:
- apiKey: []
channels:
stocks/T:
description: Stream real-time trades for a given stock ticker symbol.
servers:
- stocks
- stocks-delayed
- nasdaq
- polyfeed
- polyfeedplus
- starterfeed
parameters:
ticker:
description: Ticker symbol or `*` for all. Comma-separated for multiple.
schema:
type: string
location: $message.payload#/sym
subscribe:
operationId: subscribeStocksTrades
summary: Receive real-time stock trade events.
message:
$ref: '#/components/messages/StockTrade'
stocks/Q:
description: Stream real-time NBBO quotes for a given stock ticker symbol.
servers:
- stocks
- nasdaq
- polyfeed
- polyfeedplus
- starterfeed
subscribe:
operationId: subscribeStocksQuotes
summary: Receive real-time stock quote (NBBO) events.
message:
$ref: '#/components/messages/StockQuote'
stocks/A:
description: Stream real-time per-second aggregates for a given stock ticker.
servers:
- stocks
- stocks-delayed
subscribe:
operationId: subscribeStocksSecAggregates
summary: Receive per-second stock aggregate (OHLCV) events.
message:
$ref: '#/components/messages/StockAggregate'
stocks/AM:
description: Stream real-time per-minute aggregates for a given stock ticker.
servers:
- stocks
- stocks-delayed
subscribe:
operationId: subscribeStocksMinAggregates
summary: Receive per-minute stock aggregate (OHLCV) events.
message:
$ref: '#/components/messages/StockAggregateMinute'
stocks/LULD:
description: Stream Limit-Up Limit-Down events for a given stock ticker.
servers:
- stocks
subscribe:
operationId: subscribeStocksLULD
summary: Receive LULD (price band) events.
message:
$ref: '#/components/messages/LimitUpLimitDown'
stocks/NOI:
description: Stream NYSE/Nasdaq Order Imbalance (NOI) events for a given stock.
servers:
- stocks
subscribe:
operationId: subscribeStocksImbalances
summary: Receive auction imbalance events.
message:
$ref: '#/components/messages/Imbalance'
business/stocks/FMV:
description: >-
Stream Fair Market Value (FMV) for a given stock ticker. Available on
the Business-tier feed (`business.polygon.io/stocks`).
servers:
- business
subscribe:
operationId: subscribeStocksFMV
summary: Receive Fair Market Value events for stocks.
message:
$ref: '#/components/messages/FairMarketValue'
launchpad/stocks/AM:
description: >-
Per-minute aggregates for stocks delivered over the Launchpad multi-market feed.
servers:
- launchpad
subscribe:
operationId: subscribeLaunchpadStocksMinAggregates
summary: Receive per-minute stock aggregates over Launchpad.
message:
$ref: '#/components/messages/LaunchpadAggregateMinute'
launchpad/stocks/LV:
description: Launchpad Value events for stocks.
servers:
- launchpad
subscribe:
operationId: subscribeLaunchpadStocksValue
summary: Receive Launchpad Value events for stocks.
message:
$ref: '#/components/messages/LaunchpadValue'
options/T:
description: Stream real-time trades for a given option contract.
servers:
- options
- options-delayed
subscribe:
operationId: subscribeOptionsTrades
summary: Receive real-time option trade events.
message:
$ref: '#/components/messages/OptionTrade'
options/Q:
description: Stream real-time quotes for a given option contract.
servers:
- options
subscribe:
operationId: subscribeOptionsQuotes
summary: Receive real-time option quote events.
message:
$ref: '#/components/messages/OptionQuote'
options/A:
description: Stream real-time per-second aggregates for a given option contract.
servers:
- options
- options-delayed
subscribe:
operationId: subscribeOptionsSecAggregates
summary: Receive per-second option aggregate events.
message:
$ref: '#/components/messages/OptionAggregate'
options/AM:
description: Stream real-time per-minute aggregates for a given option contract.
servers:
- options
- options-delayed
subscribe:
operationId: subscribeOptionsMinAggregates
summary: Receive per-minute option aggregate events.
message:
$ref: '#/components/messages/OptionAggregateMinute'
business/options/FMV:
description: >-
Stream Fair Market Value (FMV) for a given option contract over the
Business-tier feed.
servers:
- business
subscribe:
operationId: subscribeOptionsFMV
summary: Receive Fair Market Value events for options.
message:
$ref: '#/components/messages/FairMarketValue'
launchpad/options/AM:
description: Per-minute aggregates for options delivered over Launchpad.
servers:
- launchpad
subscribe:
operationId: subscribeLaunchpadOptionsMinAggregates
summary: Receive per-minute option aggregates over Launchpad.
message:
$ref: '#/components/messages/LaunchpadAggregateMinute'
launchpad/options/LV:
description: Launchpad Value events for options.
servers:
- launchpad
subscribe:
operationId: subscribeLaunchpadOptionsValue
summary: Receive Launchpad Value events for options.
message:
$ref: '#/components/messages/LaunchpadValue'
forex/C:
description: Stream real-time quotes for a forex currency pair.
servers:
- forex
subscribe:
operationId: subscribeForexQuotes
summary: Receive real-time forex quote events.
message:
$ref: '#/components/messages/ForexQuote'
forex/CA:
description: Stream per-minute aggregates for a forex currency pair.
servers:
- forex
subscribe:
operationId: subscribeForexMinAggregates
summary: Receive per-minute forex aggregate events.
message:
$ref: '#/components/messages/ForexAggregateMinute'
forex/CAS:
description: Stream per-second aggregates for a forex currency pair.
servers:
- forex
subscribe:
operationId: subscribeForexSecAggregates
summary: Receive per-second forex aggregate events.
message:
$ref: '#/components/messages/ForexAggregateSecond'
business/forex/FMV:
description: Stream Fair Market Value for a forex pair over the Business feed.
servers:
- business
subscribe:
operationId: subscribeForexFMV
summary: Receive Fair Market Value events for forex.
message:
$ref: '#/components/messages/FairMarketValue'
launchpad/forex/AM:
description: Per-minute aggregates for forex delivered over Launchpad.
servers:
- launchpad
subscribe:
operationId: subscribeLaunchpadForexMinAggregates
summary: Receive per-minute forex aggregates over Launchpad.
message:
$ref: '#/components/messages/LaunchpadAggregateMinute'
launchpad/forex/LV:
description: Launchpad Value events for forex.
servers:
- launchpad
subscribe:
operationId: subscribeLaunchpadForexValue
summary: Receive Launchpad Value events for forex.
message:
$ref: '#/components/messages/LaunchpadValue'
crypto/XT:
description: Stream real-time trades for a crypto pair.
servers:
- crypto
subscribe:
operationId: subscribeCryptoTrades
summary: Receive real-time crypto trade events.
message:
$ref: '#/components/messages/CryptoTrade'
crypto/XQ:
description: Stream real-time quotes for a crypto pair.
servers:
- crypto
subscribe:
operationId: subscribeCryptoQuotes
summary: Receive real-time crypto quote events.
message:
$ref: '#/components/messages/CryptoQuote'
crypto/XA:
description: Stream per-minute aggregates for a crypto pair.
servers:
- crypto
subscribe:
operationId: subscribeCryptoMinAggregates
summary: Receive per-minute crypto aggregate events.
message:
$ref: '#/components/messages/CryptoAggregateMinute'
crypto/XAS:
description: Stream per-second aggregates for a crypto pair.
servers:
- crypto
subscribe:
operationId: subscribeCryptoSecAggregates
summary: Receive per-second crypto aggregate events.
message:
$ref: '#/components/messages/CryptoAggregateSecond'
crypto/XL2:
description: Stream Level 2 order book updates for a crypto pair.
servers:
- crypto
subscribe:
operationId: subscribeCryptoLevel2
summary: Receive Level 2 order book snapshots.
message:
$ref: '#/components/messages/CryptoLevel2Book'
business/crypto/FMV:
description: Stream Fair Market Value for a crypto pair over the Business feed.
servers:
- business
subscribe:
operationId: subscribeCryptoFMV
summary: Receive Fair Market Value events for crypto.
message:
$ref: '#/components/messages/FairMarketValue'
launchpad/crypto/AM:
description: Per-minute aggregates for crypto delivered over Launchpad.
servers:
- launchpad
subscribe:
operationId: subscribeLaunchpadCryptoMinAggregates
summary: Receive per-minute crypto aggregates over Launchpad.
message:
$ref: '#/components/messages/LaunchpadAggregateMinute'
launchpad/crypto/LV:
description: Launchpad Value events for crypto.
servers:
- launchpad
subscribe:
operationId: subscribeLaunchpadCryptoValue
summary: Receive Launchpad Value events for crypto.
message:
$ref: '#/components/messages/LaunchpadValue'
indices/V:
description: Stream real-time index values for a given index ticker.
servers:
- indices
subscribe:
operationId: subscribeIndicesValue
summary: Receive real-time index value events.
message:
$ref: '#/components/messages/IndexValue'
indices/A:
description: Stream per-second aggregates for a given index ticker.
servers:
- indices
subscribe:
operationId: subscribeIndicesSecAggregates
summary: Receive per-second index aggregate events.
message:
$ref: '#/components/messages/IndexAggregate'
indices/AM:
description: Stream per-minute aggregates for a given index ticker.
servers:
- indices
subscribe:
operationId: subscribeIndicesMinAggregates
summary: Receive per-minute index aggregate events.
message:
$ref: '#/components/messages/IndexAggregateMinute'
futures/T:
description: Stream real-time trades for a futures contract.
servers:
- futures
subscribe:
operationId: subscribeFuturesTrades
summary: Receive real-time futures trade events.
message:
$ref: '#/components/messages/FuturesTrade'
futures/Q:
description: Stream real-time quotes for a futures contract.
servers:
- futures
subscribe:
operationId: subscribeFuturesQuotes
summary: Receive real-time futures quote events.
message:
$ref: '#/components/messages/FuturesQuote'
futures/A:
description: Stream per-second aggregates for a futures contract.
servers:
- futures
subscribe:
operationId: subscribeFuturesSecAggregates
summary: Receive per-second futures aggregate events.
message:
$ref: '#/components/messages/FuturesAggregate'
futures/AM:
description: Stream per-minute aggregates for a futures contract.
servers:
- futures
subscribe:
operationId: subscribeFuturesMinAggregates
summary: Receive per-minute futures aggregate events.
message:
$ref: '#/components/messages/FuturesAggregateMinute'
control:
description: >-
Control channel for client-to-server messages. After the connection is
established, the client must send an `auth` message with its API key,
then issue `subscribe` and `unsubscribe` messages whose `params` field
is a comma-separated list of `<TOPIC>.<TICKER>` tuples (e.g.
`T.AAPL,T.MSFT`, `Q.*`, `AM.O:A230616C00070000`). The server
acknowledges each control message with a `status` event.
publish:
operationId: sendControlMessage
summary: Send auth, subscribe, or unsubscribe control messages.
message:
oneOf:
- $ref: '#/components/messages/AuthMessage'
- $ref: '#/components/messages/SubscribeMessage'
- $ref: '#/components/messages/UnsubscribeMessage'
subscribe:
operationId: receiveStatusMessage
summary: Receive connection / auth / subscription status events.
message:
$ref: '#/components/messages/StatusMessage'
components:
securitySchemes:
apiKey:
type: userPassword
description: >-
Authentication is performed inside the WebSocket session by sending
a JSON message of the form
`{"action":"auth","params":"<APIKEY>"}` after the connection opens.
The server responds with `[{"ev":"status","status":"auth_success",...}]`
on success or `auth_failed` on failure.
messages:
AuthMessage:
name: AuthMessage
title: Authentication request
summary: Authenticate the WebSocket session with an API key.
contentType: application/json
payload:
type: object
required:
- action
- params
properties:
action:
type: string
enum:
- auth
params:
type: string
description: The API key.
example:
action: auth
params: YOUR_API_KEY
SubscribeMessage:
name: SubscribeMessage
title: Subscribe request
summary: Subscribe to one or more topics.
contentType: application/json
payload:
type: object
required:
- action
- params
properties:
action:
type: string
enum:
- subscribe
params:
type: string
description: >-
Comma-separated list of `<TOPIC>.<TICKER>` tuples. The wildcard
`*` subscribes to all symbols on that topic (entitlement
permitting). Examples: `T.AAPL,T.MSFT`, `AM.*`, `XT.BTC-USD`,
`FMV.NVDA`.
example:
action: subscribe
params: T.AAPL,T.MSFT
UnsubscribeMessage:
name: UnsubscribeMessage
title: Unsubscribe request
summary: Unsubscribe from one or more topics.
contentType: application/json
payload:
type: object
required:
- action
- params
properties:
action:
type: string
enum:
- unsubscribe
params:
type: string
description: Comma-separated list of `<TOPIC>.<TICKER>` tuples to unsubscribe from.
example:
action: unsubscribe
params: T.AAPL
StatusMessage:
name: StatusMessage
title: Connection status event
summary: >-
Server-side status update for connect, auth, subscribe, and
unsubscribe operations.
contentType: application/json
payload:
type: object
properties:
ev:
type: string
enum:
- status
status:
type: string
description: >-
Status code such as `connected`, `auth_success`, `auth_failed`,
`success`, `error`, `max_connections`.
message:
type: string
description: Human-readable status message.
example:
ev: status
status: auth_success
message: authenticated
StockTrade:
name: StockTrade
title: Stock trade (T)
summary: A single stock trade tick from the SIP or a TRF.
contentType: application/json
payload:
$ref: '#/components/schemas/StockTrade'
StockQuote:
name: StockQuote
title: Stock quote (Q)
summary: A single stock NBBO quote update.
contentType: application/json
payload:
$ref: '#/components/schemas/StockQuote'
StockAggregate:
name: StockAggregate
title: Stock per-second aggregate (A)
summary: Aggregated OHLCV window covering one second.
contentType: application/json
payload:
$ref: '#/components/schemas/StockAggregate'
StockAggregateMinute:
name: StockAggregateMinute
title: Stock per-minute aggregate (AM)
summary: Aggregated OHLCV window covering one minute.
contentType: application/json
payload:
$ref: '#/components/schemas/StockAggregateMinute'
LimitUpLimitDown:
name: LimitUpLimitDown
title: Limit-Up Limit-Down (LULD)
summary: National price bands published under Reg NMS LULD.
contentType: application/json
payload:
$ref: '#/components/schemas/LimitUpLimitDown'
Imbalance:
name: Imbalance
title: Order imbalance (NOI)
summary: NYSE / Nasdaq opening or closing auction imbalance event.
contentType: application/json
payload:
$ref: '#/components/schemas/Imbalance'
FairMarketValue:
name: FairMarketValue
title: Fair Market Value (FMV)
summary: Polygon's proprietary fair value estimate for the asset.
contentType: application/json
payload:
$ref: '#/components/schemas/FairMarketValue'
LaunchpadAggregateMinute:
name: LaunchpadAggregateMinute
title: Launchpad per-minute aggregate (AM)
summary: Per-minute aggregate routed via the Launchpad multi-market feed.
contentType: application/json
payload:
$ref: '#/components/schemas/LaunchpadAggregateMinute'
LaunchpadValue:
name: LaunchpadValue
title: Launchpad Value (LV)
summary: Launchpad-feed value event.
contentType: application/json
payload:
$ref: '#/components/schemas/LaunchpadValue'
OptionTrade:
name: OptionTrade
title: Option trade (T)
summary: A single OPRA-licensed option trade tick.
contentType: application/json
payload:
$ref: '#/components/schemas/OptionTrade'
OptionQuote:
name: OptionQuote
title: Option quote (Q)
summary: A single OPRA-licensed option quote update.
contentType: application/json
payload:
$ref: '#/components/schemas/OptionQuote'
OptionAggregate:
name: OptionAggregate
title: Option per-second aggregate (A)
contentType: application/json
payload:
$ref: '#/components/schemas/OptionAggregate'
OptionAggregateMinute:
name: OptionAggregateMinute
title: Option per-minute aggregate (AM)
contentType: application/json
payload:
$ref: '#/components/schemas/OptionAggregateMinute'
ForexQuote:
name: ForexQuote
title: Forex quote (C)
summary: Currency pair quote update.
contentType: application/json
payload:
$ref: '#/components/schemas/ForexQuote'
ForexAggregateMinute:
name: ForexAggregateMinute
title: Forex per-minute aggregate (CA)
contentType: application/json
payload:
$ref: '#/components/schemas/ForexAggregateMinute'
ForexAggregateSecond:
name: ForexAggregateSecond
title: Forex per-second aggregate (CAS)
contentType: application/json
payload:
$ref: '#/components/schemas/ForexAggregateSecond'
CryptoTrade:
name: CryptoTrade
title: Crypto trade (XT)
contentType: application/json
payload:
$ref: '#/components/schemas/CryptoTrade'
CryptoQuote:
name: CryptoQuote
title: Crypto quote (XQ)
contentType: application/json
payload:
$ref: '#/components/schemas/CryptoQuote'
CryptoAggregateMinute:
name: CryptoAggregateMinute
title: Crypto per-minute aggregate (XA)
contentType: application/json
payload:
$ref: '#/components/schemas/CryptoAggregateMinute'
CryptoAggregateSecond:
name: CryptoAggregateSecond
title: Crypto per-second aggregate (XAS)
contentType: application/json
payload:
$ref: '#/components/schemas/CryptoAggregateSecond'
CryptoLevel2Book:
name: CryptoLevel2Book
title: Crypto Level 2 book (XL2)
summary: Aggregated Level 2 book snapshot for a crypto pair.
contentType: application/json
payload:
$ref: '#/components/schemas/CryptoLevel2Book'
IndexValue:
name: IndexValue
title: Index value (V)
contentType: application/json
payload:
$ref: '#/components/schemas/IndexValue'
IndexAggregate:
name: IndexAggregate
title: Index per-second aggregate (A)
contentType: application/json
payload:
$ref: '#/components/schemas/IndexAggregate'
IndexAggregateMinute:
name: IndexAggregateMinute
title: Index per-minute aggregate (AM)
contentType: application/json
payload:
$ref: '#/components/schemas/IndexAggregateMinute'
FuturesTrade:
name: FuturesTrade
title: Futures trade (T)
contentType: application/json
payload:
$ref: '#/components/schemas/FuturesTrade'
FuturesQuote:
name: FuturesQuote
title: Futures quote (Q)
contentType: application/json
payload:
$ref: '#/components/schemas/FuturesQuote'
FuturesAggregate:
name: FuturesAggregate
title: Futures per-second aggregate (A)
contentType: application/json
payload:
$ref: '#/components/schemas/FuturesAggregate'
FuturesAggregateMinute:
name: FuturesAggregateMinute
title: Futures per-minute aggregate (AM)
contentType: application/json
payload:
$ref: '#/components/schemas/FuturesAggregateMinute'
schemas:
StockTrade:
type: object
properties:
ev:
type: string
enum: [T]
description: The event type.
sym:
type: string
description: The ticker symbol for the given stock.
x:
type: integer
description: The exchange ID.
i:
type: string
description: The trade ID.
z:
type: integer
description: The tape (1 = NYSE, 2 = AMEX, 3 = Nasdaq).
p:
type: number
format: double
description: The price.
s:
type: integer
description: The trade size.
c:
type: array
description: The trade conditions.
items:
type: integer
t:
type: integer
description: The SIP timestamp in Unix MS.
q:
type: integer
description: Per-ticker sequence number.
trfi:
type: integer
description: The TRF ID where the trade took place.
trft:
type: integer
description: The TRF timestamp in Unix MS.
example:
ev: T
sym: MSFT
x: 4
i: "12345"
z: 3
p: 114.125
s: 100
c: [0, 12]
t: 1536036818784
q: 3681328
StockQuote:
type: object
properties:
ev:
type: string
enum: [Q]
sym:
type: string
bx:
type: integer
description: The bid exchange ID.
bp:
type: number
format: double
description: The bid price.
bs:
type: integer
description: The bid size in round lots.
ax:
type: integer
description: The ask exchange ID.
ap:
type: number
format: double
description: The ask price.
as:
type: integer
description: The ask size in round lots.
c:
type: integer
description: The condition.
i:
type: array
items:
type: integer
description: The indicators.
t:
type: integer
description: The SIP timestamp in Unix MS.
q:
type: integer
description: Per-ticker sequence number.
z:
type: integer
description: The tape.
StockAggregate:
type: object
properties:
ev:
type: string
enum: [A]
sym:
type: string
v:
type: integer
description: The tick volume.
av:
type: integer
description: Today's accumulated volume.
op:
type: number
format: double
description: Today's official opening price.
vw:
type: number
format: float
description: The tick's VWAP.
o:
type: number
format: double
c:
type: number
format: double
h:
type: number
format: double
l:
type: number
format: double
a:
type: number
format: float
description: Today's VWAP.
z:
type: integer
description: Average trade size for this aggregate window.
s:
type: integer
description: Start timestamp (Unix MS).
e:
type: integer
description: End timestamp (Unix MS).
otc:
type: boolean
description: Present and true when the ticker is OTC.
StockAggregateMinute:
allOf:
- $ref: '#/components/schemas/StockAggregate'
- type: object
properties:
ev:
type: string
enum: [AM]
LimitUpLimitDown:
type: object
properties:
ev:
type: string
enum: [LULD]
T:
type: string
description: The ticker symbol.
h:
type: number
format: double
description: The high price band.
l:
type: number
format: double
description: The low price band.
i:
type: array
items:
type: integer
description: Indicators.
z:
type: integer
description: The tape.
t:
type: integer
description: SIP timestamp in Unix MS.
q:
type: integer
description: Per-ticker sequence number.
Imbalance:
type: object
properties:
ev:
type: string
enum: [NOI]
T:
type: string
description: The ticker symbol.
t:
type: integer
description: SIP timestamp in Unix MS.
at:
type: integer
description: Auction time.
a:
type: string
description: Auction type.
i:
type: integer
description: Symbol sequence.
x:
type: integer
description: Exchange ID.
o:
type: integer
description: Imbalance quantity.
p:
type: integer
description: Paired quantity.
b:
type: number
format: double
description: Book clearing price.
FairMarketValue:
type: object
properties:
ev:
type: string
enum: [FMV]
fmv:
type: number
format: double
description: Polygon-derived fair market value.
sym:
type: string
description: The ticker, contract symbol, or pair.
t:
type: integer
description: Nanosecond Unix timestamp.
LaunchpadAggregateMinute:
type: object
properties:
ev:
type: string
enum: [AM]
sym:
type: string
v:
type: integer
av:
type: integer
op:
type: number
format: double
vw:
type: number
format: float
o:
type: number
format: double
c:
type: number
format: double
h:
type: number
format: double
l:
type: number
format: double
a:
type: number
format: float
z:
type: integer
s:
type: integer
e:
type: integer
LaunchpadValue:
type: object
properties:
ev:
type: string
enum: [LV]
# --- truncated at 32 KB (41 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/polygon-io/refs/heads/main/asyncapi/polygon-io-asyncapi.yml