Polygon.io Futures API

Real-time and historical futures market data including aggregates, trades, quotes, and snapshots.

Work with this as data

Every API 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 apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • 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 API
curl "https://apis.io/api/v1/apis/futures-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

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

Get an API key

Free tier, no email required.

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

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