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

# Get Market

> Get a single market by ID with all SDK fields.

<Note>Use `resolved_at != null` (not `status == "resolved"`) as the definitive signal that resolution is final. See the [resolution FAQ](/faq#how-do-i-know-when-a-market-is-truly-resolved) for the timing nuance.</Note>

For multi-outcome events (e.g. "Who will win the election?"), each option is its own binary market — `outcome_name` identifies the option, and `outcome: true` means that named option won. `event_id` / `event_name` / `event_ref` group sibling options.


## OpenAPI

````yaml /openapi.json get /api/sdk/markets/{market_id}
openapi: 3.1.0
info:
  title: Simmer API
  description: Agent-native trading infrastructure for prediction markets.
  version: 1.0.0
servers:
  - url: https://api.simmer.markets
security: []
paths:
  /api/sdk/markets/{market_id}:
    get:
      summary: Get Market
      description: Get a single market by ID with all SDK fields.
      operationId: api_sdk_get_market_api_sdk_markets__market_id__get
      parameters:
        - name: market_id
          in: path
          required: true
          schema:
            type: string
            title: Market Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SDKMarketDetailResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
components:
  schemas:
    SDKMarketDetailResponse:
      properties:
        market:
          $ref: '#/components/schemas/SDKMarketResponse'
        agent_id:
          type: string
          title: Agent Id
          description: The agent ID derived from the API key making the request.
      type: object
      required:
        - market
        - agent_id
      title: SDKMarketDetailResponse
      description: Response wrapper for `GET /api/sdk/markets/{market_id}`.
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    SDKMarketResponse:
      properties:
        id:
          type: string
          title: Id
          description: Simmer market UUID. Use this for all subsequent API calls.
        question:
          type: string
          title: Question
          description: The market question.
        status:
          type: string
          title: Status
          description: '`active`, `resolved`, or `closed`.'
        url:
          anyOf:
            - type: string
            - type: 'null'
          title: Url
          description: Canonical Simmer URL for the market.
        current_probability:
          type: number
          title: Current Probability
          description: Current YES probability (0–1).
        current_price:
          anyOf:
            - type: number
            - type: 'null'
          title: Current Price
          description: >-
            Alias for `current_probability` (consistent with context/positions
            endpoints).
        external_price_yes:
          anyOf:
            - type: number
            - type: 'null'
          title: External Price Yes
          description: >-
            Last YES price seen on the underlying venue (Polymarket / Kalshi /
            Hyperliquid). Null for `sim`-only markets.
        divergence:
          anyOf:
            - type: number
            - type: 'null'
          title: Divergence
          description: >-
            Difference between Simmer's `current_probability` and
            `external_price_yes`. Detail endpoint only.
        opportunity_score:
          anyOf:
            - type: number
            - type: 'null'
          title: Opportunity Score
          description: >-
            Composite ranking signal combining divergence, volume, and
            time-to-resolution. Detail endpoint only.
        volume_24h:
          anyOf:
            - type: number
            - type: 'null'
          title: Volume 24H
          description: 24-hour trading volume on the underlying venue.
        resolves_at:
          anyOf:
            - type: string
            - type: 'null'
          title: Resolves At
          description: >-
            ISO-8601 UTC timestamp for when the market becomes *eligible* to
            resolve. Not the same as actual resolution.
        outcome:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Outcome
          description: >-
            Winning outcome once resolved. `true` = YES won, `false` = NO won,
            `null` = not yet resolved. For multi-outcome events, `outcome: true`
            means the option named in `outcome_name` won.
        event_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Event Id
          description: >-
            Legacy ID grouping sibling markets for a multi-outcome event (e.g.
            "Who will win the election?"). Prefer event_ref for grouping —
            event_id was not set by every import path historically.
        event_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Event Name
          description: Human-readable event title.
        outcome_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Outcome Name
          description: Which option this market represents within a multi-outcome event.
        event_ref:
          anyOf:
            - type: string
            - type: 'null'
          title: Event Ref
          description: >-
            Canonical parent-event ID (events-row reference), set on every
            import path. Use this to group sibling markets of a multi-outcome
            event.
        polymarket_token_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Polymarket Token Id
          description: >-
            ERC-1155 token ID for YES shares. Used to query the Polymarket CLOB
            order book.
        polymarket_no_token_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Polymarket No Token Id
          description: ERC-1155 token ID for NO shares.
        polymarket_neg_risk:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Polymarket Neg Risk
          description: >-
            Whether this is a negative-risk market — uses a different exchange
            contract on Polymarket.
        fee_rate_bps:
          anyOf:
            - type: integer
            - type: 'null'
          title: Fee Rate Bps
          description: Trading fee in basis points (Polymarket). Detail endpoint only.
        tick_size:
          anyOf:
            - type: number
            - type: 'null'
          title: Tick Size
          description: >-
            Minimum price increment on the venue (Polymarket). Detail endpoint
            only.
        tags:
          items:
            type: string
          type: array
          title: Tags
          description: Market tags (e.g. `fast`, `politics`, `crypto`).
        is_sdk_only:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Is Sdk Only
          description: >-
            True if the market is only tradeable via the SDK (not visible on the
            public dashboard).
        is_paid:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Is Paid
          description: >-
            True if the market was created via paid import (deterministic 24h
            cycle).
        import_source:
          anyOf:
            - type: string
            - type: 'null'
          title: Import Source
          description: >-
            Where the market was imported from (`polymarket`, `kalshi`, `sim`,
            etc.).
        resolution_criteria:
          anyOf:
            - type: string
            - type: 'null'
          title: Resolution Criteria
          description: >-
            Human-readable text describing how the market resolves. For weather
            markets this names the specific airport / weather station Polymarket
            reads (e.g. 'recorded at the Chicago O'Hare Intl Airport Station').
            Use this to verify your bot's data source matches the market's
            resolution oracle.
      type: object
      required:
        - id
        - question
        - status
        - current_probability
      title: SDKMarketResponse
      description: A single market as returned by the SDK markets endpoints.
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
        input:
          title: Input
        ctx:
          type: object
          title: Context
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError

````