> ## Documentation Index
> Fetch the complete documentation index at: https://docs.rook.pm/llms.txt
> Use this file to discover all available pages before exploring further.

# Get quotes

> Fetch the latest bid, ask and last-trade observations for explicitly selected Rook listing_ids. Listing IDs identify an outcome on a venue and come from /markets or /markets:resolve; a market ID alone does not select a side or venue.

Every requested listing receives a status-bearing result. Available values specify the selected outcome orientation, quote currency, payout unit, source timestamps and mapping/book revisions. A missing side, stale source or unavailable feed remains explicit rather than becoming zero. Use /orderbooks for executable depth and /price-history for recorded observations; a quote is an observation, not an execution guarantee.

See the [integration guide](/guides/market-data) for the workflow and interpretation of this response.


## OpenAPI

````yaml GET /quotes
openapi: 3.1.0
info:
  title: Rook API
  version: 0.1.0-design
  description: Markets, settlement relationships, scenarios, payouts and market data.
servers:
  - url: https://api.rook.pm/v1
    description: Proposed API origin; not an assertion these operations are callable.
security:
  - ApiKeyBearer: []
tags:
  - name: Reference data
    description: Events, unified markets and native-ID resolution.
  - name: Families and scenarios
    description: Family scope and versioned scenario columns.
  - name: Relationships and Combos
    description: Related-market discovery, selected-set inference and Combo interpretation.
  - name: Payouts and exposure
    description: Scoped per-unit payouts and stateless portfolio/candidate calculations.
  - name: Market data
    description: Current prices, history, L2 books, prints, statistics and published fees.
  - name: Fair values
    description: Future private customer estimates; not Rook forecasts.
  - name: Coverage and updates
    description: Supported capabilities and incremental semantic changes.
paths:
  /quotes:
    get:
      tags:
        - Market data
      summary: Get quotes
      description: >-
        Fetch the latest bid, ask and last-trade observations for explicitly
        selected Rook listing_ids. Listing IDs identify an outcome on a venue
        and come from /markets or /markets:resolve; a market ID alone does not
        select a side or venue.


        Every requested listing receives a status-bearing result. Available
        values specify the selected outcome orientation, quote currency, payout
        unit, source timestamps and mapping/book revisions. A missing side,
        stale source or unavailable feed remains explicit rather than becoming
        zero. Use /orderbooks for executable depth and /price-history for
        recorded observations; a quote is an observation, not an execution
        guarantee.
      operationId: getQuotes
      parameters:
        - name: listing_ids
          in: query
          required: true
          description: >-
            Rook listing IDs from /markets or /markets:resolve. Select the venue
            and outcome side explicitly; repeat the query parameter for multiple
            listings.
          schema:
            type: array
            items:
              type: string
              description: Opaque text identifier. Preserve its exact value.
              minLength: 1
            minItems: 1
          style: form
          explode: true
          example:
            - lst_pm_fed_dec_2026_cut_yes
        - name: X-Client-Request-Id
          in: header
          required: false
          schema:
            type: string
          description: Caller correlation reference; not an idempotency guarantee.
      responses:
        '200':
          description: Success.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetQuotesResponse'
              example:
                items:
                  - listing_id: lst_pm_fed_dec_2026_cut_yes
                    market_id: mkt_fed_dec_2026_cut
                    outcome_id: out_fed_dec_2026_cut_yes
                    venue: polymarket
                    status: LIVE
                    quote_currency: USDC
                    payout_currency: USDC
                    payout_unit: '1'
                    quantity_unit: shares
                    mapping_version: '1'
                    quote_id: quote_cut_120000
                    book_revision: book_1842
                    best_bid:
                      price: '0.40'
                      quantity: '1200'
                    best_ask:
                      price: '0.42'
                      quantity: '900'
                    midpoint: '0.41'
                    spread: '0.02'
                    last_trade_price: '0.41'
                    last_trade_quantity: '250'
                    last_trade_at: '2026-10-19T11:59:52Z'
                    origin: VENUE
                    upstream_status: CONNECTED
                    times:
                      source_timestamp: '2026-10-19T11:59:59.800Z'
                      received_at: '2026-10-19T11:59:59.910Z'
                      published_at: '2026-10-19T12:00:00Z'
                next_page_token: null
                snapshot_id: snap_rates_20261019_120000
                as_of: '2026-10-19T12:00:00Z'
          headers:
            X-Request-Id:
              description: Server request trace ID.
              schema:
                type: string
                description: Opaque text identifier. Preserve its exact value.
                minLength: 1
components:
  schemas:
    GetQuotesResponse:
      type: object
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/Quote'
        next_page_token:
          type: 'null'
          description: >-
            All requested IDs are accounted for in one bounded batch; no silent
            truncation.
        snapshot_id:
          type: string
          description: Opaque text identifier. Preserve its exact value.
          minLength: 1
        as_of:
          type: string
          format: date-time
      required:
        - items
        - next_page_token
        - snapshot_id
        - as_of
      additionalProperties: true
    Quote:
      type: object
      properties:
        listing_id:
          type: string
          minLength: 1
          description: >-
            Rook ID for one outcome listing on one venue; preserves venue
            provenance.
        market_id:
          type: string
          minLength: 1
          description: >-
            Rook canonical market ID; obtain it by resolving a venue and native
            market ID.
        outcome_id:
          type: string
          minLength: 1
          description: Rook payout-side ID. YES and NO have separate IDs.
        venue:
          type: string
        status:
          type: string
          enum:
            - LIVE
            - STALE
            - EMPTY
            - ONE_SIDED
            - CROSSED
            - UNAVAILABLE
        quote_currency:
          type: string
        quantity_unit:
          type: string
        quote_id:
          anyOf:
            - type: string
              description: Opaque text identifier. Preserve its exact value.
              minLength: 1
            - type: 'null'
        book_revision:
          anyOf:
            - type: string
              description: Opaque text identifier. Preserve its exact value.
              minLength: 1
            - type: 'null'
        best_bid:
          anyOf:
            - $ref: '#/components/schemas/Level'
            - type: 'null'
        best_ask:
          anyOf:
            - $ref: '#/components/schemas/Level'
            - type: 'null'
        midpoint:
          anyOf:
            - $ref: '#/components/schemas/Decimal'
            - type: 'null'
        spread:
          anyOf:
            - $ref: '#/components/schemas/Decimal'
            - type: 'null'
        last_trade_price:
          anyOf:
            - $ref: '#/components/schemas/Decimal'
            - type: 'null'
        last_trade_quantity:
          anyOf:
            - $ref: '#/components/schemas/Decimal'
            - type: 'null'
        last_trade_at:
          anyOf:
            - type: string
              format: date-time
            - type: 'null'
        origin:
          type: string
          enum:
            - VENUE
            - DERIVED
        derivation:
          anyOf:
            - type: string
            - type: 'null'
        times:
          $ref: '#/components/schemas/DataTimes'
        reason:
          anyOf:
            - type: string
            - type: 'null'
        payout_currency:
          type:
            - string
            - 'null'
        payout_unit:
          anyOf:
            - $ref: '#/components/schemas/ExactValue'
            - type: 'null'
        mapping_version:
          type:
            - string
            - 'null'
        spread_bps:
          anyOf:
            - $ref: '#/components/schemas/Decimal'
            - type: 'null'
        upstream_status:
          type: string
          enum:
            - CONNECTED
            - DISCONNECTED
            - UNKNOWN
      required:
        - listing_id
        - status
        - best_bid
        - best_ask
        - midpoint
        - spread
        - times
      additionalProperties: true
    Level:
      type: object
      properties:
        price:
          $ref: '#/components/schemas/Decimal'
        quantity:
          $ref: '#/components/schemas/Decimal'
        cumulative_quantity:
          $ref: '#/components/schemas/Decimal'
        cumulative_notional:
          $ref: '#/components/schemas/Decimal'
      required:
        - price
        - quantity
      additionalProperties: true
    Decimal:
      type: string
      description: >-
        Exact base-10 value encoded as a string; no exponent or non-finite
        values.
      pattern: ^-?(0|[1-9][0-9]*)(\.[0-9]+)?$
    DataTimes:
      type: object
      properties:
        source_timestamp:
          anyOf:
            - type: string
              format: date-time
            - type: 'null'
        received_at:
          anyOf:
            - type: string
              format: date-time
            - type: 'null'
        published_at:
          type: string
          format: date-time
      required:
        - source_timestamp
        - received_at
        - published_at
      additionalProperties: true
    ExactValue:
      oneOf:
        - $ref: '#/components/schemas/Decimal'
        - type: object
          properties:
            numerator:
              type: string
              pattern: ^-?(0|[1-9][0-9]*)$
            denominator:
              type: string
              pattern: ^[1-9][0-9]*$
          required:
            - numerator
            - denominator
          additionalProperties: false
      description: >-
        Exact calculation value: finite decimal string, or reduced rational with
        positive denominator. Never round a repeating rational to pretend it is
        exact.
  securitySchemes:
    ApiKeyBearer:
      type: http
      scheme: bearer
      description: >-
        Proposed server-to-server API key. No client request HMAC signing scheme
        is specified.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.