Massive (formerly Polygon.io) · AsyncAPI Specification

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 FinanceFintechMarket DataStocksOptionsForexCryptoIndicesFuturesWebSocketReal-TimeHistoricalPublic APIsFinancial DataAsyncAPIEventsWebSockets

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

Raw ↑
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/massive-com/refs/heads/main/asyncapi/polygon-io-asyncapi.yml

Work with this as data

Every AsyncAPI spec here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for asyncapi

4 MCP tools reach this
  • find_asyncapisBrowse and filter every AsyncAPI spec in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This AsyncAPI spec
curl "https://apis.io/api/v1/asyncapis/polygon-io-asyncapi"
All asyncapi
curl "https://apis.io/api/v1/asyncapis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.