Polygon.io Crypto API

Aggregates, trades, snapshots, level-2 books, and L2 streaming for crypto pairs across major exchanges.

AsyncAPI Specification

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