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

# Get the first useful event view

> Event display data and the first bounded market slice share one cluster resolution. Further market pages, histories and personalized execution load independently.



## OpenAPI

````yaml /openapi/openapi.json get /venue-events/{id}/bootstrap
openapi: 3.0.2
info:
  title: AGG API
  version: 1.0.0
  description: >-
    Prediction market aggregator REST API — authentication, users, venue events,
    venue markets, orderbooks, charts, and execution workflows.
servers:
  - url: https://api.agg.market
    description: Production
  - url: https://api.staging.agg.market
    description: Staging
security: []
paths:
  /venue-events/{id}/bootstrap:
    get:
      tags:
        - Discovery
      summary: Get the first useful event view
      description: >-
        Event display data and the first bounded market slice share one cluster
        resolution. Further market pages, histories and personalized execution
        load independently.
      operationId: getEventBootstrap
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
        - name: limit
          in: query
          required: false
          schema:
            minimum: 1
            maximum: 20
            type: integer
      responses:
        '200':
          description: '200'
          content:
            application/json:
              schema:
                type: object
                required:
                  - detailsDeferred
                  - event
                  - markets
                  - selectedOutcomeIds
                  - references
                  - freshness
                properties:
                  detailsDeferred:
                    type: boolean
                    enum:
                      - true
                  event:
                    type: object
                    required:
                      - id
                      - externalIdentifier
                      - title
                      - image
                      - venue
                      - categories
                    properties:
                      id:
                        description: >-
                          Event id. List responses return one row per matched
                          cluster, and for a matched event this id is the
                          cluster anchor — the handle to use for cross-venue
                          lookups. Re-resolve it from discovery rather than
                          storing it as a permanent key: clusters can merge,
                          after which the id remains a valid event but is no
                          longer the cluster head. See the Matched Clusters
                          guide.
                        type: string
                      externalIdentifier:
                        type: string
                      title:
                        type: string
                      description:
                        type: string
                        nullable: true
                      image:
                        type: string
                        nullable: true
                      venue:
                        type: string
                        enum:
                          - kalshi
                          - polymarket
                          - limitless
                          - opinion
                          - predict
                          - pred
                          - tiprun
                          - probable
                          - myriad
                          - hyperliquid
                          - novig
                          - prophetx
                          - betdex
                      deployerVenue:
                        type: string
                        nullable: true
                      volume:
                        minimum: 0
                        type: number
                        nullable: true
                      status:
                        type: string
                        enum:
                          - open
                          - closed
                          - resolved
                          - unopened
                          - paused
                      startDate:
                        type: string
                        nullable: true
                      endDate:
                        type: string
                        nullable: true
                      creationDate:
                        type: string
                        nullable: true
                      gameStartTime:
                        type: string
                        nullable: true
                      categories:
                        type: array
                        items:
                          type: object
                          required:
                            - id
                            - category
                          properties:
                            id:
                              type: string
                            category:
                              type: object
                              required:
                                - id
                                - name
                                - displayName
                                - parentId
                                - eventCount
                                - volume24hr
                                - volume
                              properties:
                                id:
                                  type: string
                                name:
                                  type: string
                                displayName:
                                  type: string
                                  nullable: true
                                parentId:
                                  type: string
                                  nullable: true
                                eventCount:
                                  type: number
                                volume24hr:
                                  type: number
                                volume:
                                  type: number
                      slug:
                        type: string
                        nullable: true
                      subtitle:
                        type: string
                        nullable: true
                      venues:
                        description: >-
                          Venues this row's matched cluster spans — use it for
                          venue badges. On a cluster anchor this is the
                          cluster-wide set; a non-anchor member usually reports
                          the same set, but narrows to its own venue when none
                          of its markets have cross-venue counterparts.
                        type: array
                        items:
                          type: string
                          enum:
                            - kalshi
                            - polymarket
                            - limitless
                            - opinion
                            - predict
                            - pred
                            - tiprun
                            - probable
                            - myriad
                            - hyperliquid
                            - novig
                            - prophetx
                            - betdex
                      marketCount:
                        minimum: 0
                        description: >-
                          Number of markets on this event. Use this rather than
                          the length of an embedded venueMarkets array, which is
                          a preview on list responses. On GET /venue-events/:id
                          this counts the whole matched cluster (send
                          cluster=false to scope it to the single venue event);
                          on list responses it counts the row's own event.
                        type: integer
                      venueCount:
                        minimum: 0
                        description: Length of `venues` — the size of the matched cluster.
                        type: integer
                      groupMarketCount:
                        minimum: 0
                        type: integer
                      groupParentId:
                        description: >-
                          Same-venue companion grouping: the id of this event's
                          group base. NULL means the event IS the base, or is
                          standalone. A venue splits one game into several
                          events (`… - More Markets`, `… : Spread`), and
                          same-venue events never share a matched cluster (the
                          sole exception is Hyperliquid HIP-4 deployers, see
                          /recipes/hyperliquid-deployers) — so on a companion,
                          `matchedVenueEvents[]` lists the other venues'
                          EQUIVALENT companions, not the game's cluster. Use
                          this id (or the shared `aggKey`) to reach the base.
                          See /recipes/sports-market-detail.
                        type: string
                        nullable: true
                      updatedAt:
                        type: string
                        nullable: true
                      venueMarkets:
                        description: >-
                          Embedded markets. On list responses this is a preview
                          of up to three markets chosen to represent the event
                          on a card — not the complete set, and not necessarily
                          the largest; use marketCount for totals. On the by-id
                          response it is uncapped. Deprecated on both — fetch
                          markets from GET /venue-markets?venueEventId=.
                        type: array
                        items:
                          type: object
                          required:
                            - id
                            - venue
                            - externalIdentifier
                            - question
                            - venueMarketOutcomes
                          properties:
                            id:
                              type: string
                            venue:
                              type: string
                              enum:
                                - kalshi
                                - polymarket
                                - limitless
                                - opinion
                                - predict
                                - pred
                                - tiprun
                                - probable
                                - myriad
                                - hyperliquid
                                - novig
                                - prophetx
                                - betdex
                            deployerVenue:
                              type: string
                              nullable: true
                            marketId:
                              type: string
                              nullable: true
                            externalIdentifier:
                              type: string
                            venueEventId:
                              type: string
                              nullable: true
                            question:
                              type: string
                            description:
                              type: string
                              nullable: true
                            rulesPrimary:
                              type: string
                              nullable: true
                            rulesSecondary:
                              type: string
                              nullable: true
                            conditionId:
                              type: string
                              nullable: true
                            volume:
                              minimum: 0
                              type: number
                              nullable: true
                            image:
                              type: string
                              nullable: true
                            venueMarketOutcomes:
                              type: array
                              items:
                                type: object
                                required:
                                  - id
                                  - venueMarketId
                                  - label
                                properties:
                                  id:
                                    type: string
                                  venueMarketId:
                                    type: string
                                  externalIdentifier:
                                    type: string
                                    nullable: true
                                  label:
                                    type: string
                                  title:
                                    type: string
                                    nullable: true
                                  price:
                                    minimum: 0
                                    maximum: 1
                                    deprecated: true
                                    description: >-
                                      No longer returned. Fetch live prices from
                                      GET /midpoints (pass this outcome's parent
                                      venueMarketId in `ids` and match on
                                      `outcomes[].venueMarketOutcomeId`), or
                                      subscribe to the WebSocket midpoint
                                      stream.
                                    type: number
                                  winner:
                                    type: boolean
                                    nullable: true
                                  payoutPerShare:
                                    minimum: 0
                                    maximum: 1
                                    description: >-
                                      Per-share USDC payout of this outcome in
                                      [0, 1] once the market settles. Source of
                                      truth over `winner` when set: a Polymarket
                                      UMA 50/50 stores 0.5 on both sides, a
                                      Novig void stores its refund prices (e.g.
                                      0.155 / 0.845). `null` = unknown; clients
                                      fall back to `winner ? 1/winnerCount : 0`.
                                    type: number
                                    nullable: true
                                  matchedVenueMarketOutcomes:
                                    type: array
                                    items:
                                      type: object
                                      required:
                                        - venueMarketId
                                        - venueMarketOutcomeId
                                      properties:
                                        venueMarketId:
                                          type: string
                                        venueMarketOutcomeId:
                                          type: string
                            status:
                              type: string
                              enum:
                                - open
                                - closed
                                - resolved
                                - unopened
                                - paused
                            startDate:
                              type: string
                              nullable: true
                            endDate:
                              type: string
                              nullable: true
                            creationDate:
                              type: string
                              nullable: true
                            createdAt:
                              type: string
                              nullable: true
                            resolutionDate:
                              type: string
                              nullable: true
                            negRisk:
                              type: boolean
                            venues:
                              type: array
                              items:
                                type: string
                                enum:
                                  - kalshi
                                  - polymarket
                                  - limitless
                                  - opinion
                                  - predict
                                  - pred
                                  - tiprun
                                  - probable
                                  - myriad
                                  - hyperliquid
                                  - novig
                                  - prophetx
                                  - betdex
                            venueCount:
                              minimum: 0
                              type: integer
                            arbReturn:
                              type: number
                              nullable: true
                            aggKey:
                              description: >-
                                Deterministic canonical key computed from this
                                venue's own data; null when not canonicalizable.
                                This is a fetch filter, not a cross-venue join
                                key — it is guaranteed identical across venues
                                only for sports head-to-head and crypto up/down
                                markets, and two members of the same matched
                                cluster can carry different keys. Use the event
                                id and matchedVenueMarkets for identity.
                              type: string
                              nullable: true
                            sportsMarketType:
                              type: string
                              nullable: true
                            sectionRank:
                              type: integer
                              nullable: true
                            period:
                              type: string
                              nullable: true
                            marketCategory:
                              type: string
                              nullable: true
                            marketGroup:
                              type: string
                              nullable: true
                            marketSubtype:
                              type: string
                              nullable: true
                            lineValue:
                              type: number
                              nullable: true
                            minOrderSize:
                              description: >-
                                Per-market minimum order size in
                                shares/contracts. Populated for Polymarket (the
                                market's own floor) and PRED (0.001); null
                                elsewhere. POST /execution/limit-orders
                                validates `sizeRaw` against this value on
                                Polymarket. `null` means AGG ingested no value
                                for this market — NOT that the market has no
                                minimum; other venues enforce their own floors
                                this field does not carry.
                              type: number
                              nullable: true
                            tickSize:
                              description: >-
                                Price increment from the venue's market
                                metadata. A seed value — prefer the
                                runtime-inferred `tick` from GET /orderbooks or
                                GET /orderbook/outcome/:outcomeId when aligning
                                a limit price, since the live grid can be finer
                                than this.
                              type: number
                              nullable: true
                            feeRate:
                              description: >-
                                The venue's published taker fee rate for this
                                market. `null` means we do not have it — fall
                                back to your own table; `0` is a real rate
                                meaning the venue charges nothing. Excludes our
                                builder and clearinghouse fees, which appear in
                                the quote's `feeBreakdown`. See
                                /recipes/venue-fees.
                              type: number
                              nullable: true
                            feeExponent:
                              description: >-
                                Exponent paired with `feeRate`: `0` = flat
                                fraction of notional, `>= 1` = quadratic family.
                                `null` when `feeBasis` is `winnings`, which has
                                no price curve. See /recipes/venue-fees.
                              type: number
                              nullable: true
                            feeBasis:
                              description: >-
                                When the fee is charged: `fill` at execution,
                                `fill_in_game_only` only on fills matched while
                                the event is live, `winnings` at settlement on
                                net profit per market, `exit` only when a
                                position is closed or settles as a winner
                                (opening trades are free). See
                                /recipes/venue-fees.
                              type: string
                              enum:
                                - fill
                                - fill_in_game_only
                                - winnings
                                - exit
                              nullable: true
                            matchedVenueMarkets:
                              description: >-
                                The same market on other venues, as linked by
                                AGG's matching pipeline. This is the cross-venue
                                linkage — it hangs off each market, not off the
                                event, and is complete regardless of which
                                cluster member you queried.
                              type: array
                              items:
                                type: object
                                required:
                                  - id
                                  - venue
                                  - externalIdentifier
                                  - question
                                properties:
                                  id:
                                    type: string
                                  venue:
                                    type: string
                                    enum:
                                      - kalshi
                                      - polymarket
                                      - limitless
                                      - opinion
                                      - predict
                                      - pred
                                      - tiprun
                                      - probable
                                      - myriad
                                      - hyperliquid
                                      - novig
                                      - prophetx
                                      - betdex
                                  deployerVenue:
                                    type: string
                                    nullable: true
                                  externalIdentifier:
                                    type: string
                                  question:
                                    type: string
                                  description:
                                    type: string
                                    nullable: true
                                  rulesPrimary:
                                    type: string
                                    nullable: true
                                  rulesSecondary:
                                    type: string
                                    nullable: true
                                  volume:
                                    minimum: 0
                                    type: number
                                    nullable: true
                                  status:
                                    type: string
                                    enum:
                                      - open
                                      - closed
                                      - resolved
                                      - unopened
                                      - paused
                                  conditionId:
                                    type: string
                                    nullable: true
                                  arbReturn:
                                    type: number
                                    nullable: true
                                  shortTitle:
                                    type: string
                                    nullable: true
                                  image:
                                    type: string
                                    nullable: true
                                  venueEvent:
                                    type: object
                                    required:
                                      - id
                                      - externalIdentifier
                                    properties:
                                      id:
                                        type: string
                                      externalIdentifier:
                                        type: string
                                      slug:
                                        type: string
                                        nullable: true
                                      title:
                                        type: string
                                        nullable: true
                                      series:
                                        type: object
                                        required:
                                          - id
                                          - venue
                                          - externalIdentifier
                                        properties:
                                          id:
                                            type: string
                                          name:
                                            type: string
                                            nullable: true
                                          venue:
                                            type: string
                                          externalIdentifier:
                                            type: string
                                        nullable: true
                                    nullable: true
                                  venueMarketOutcomes:
                                    type: array
                                    items:
                                      type: object
                                      required:
                                        - id
                                        - venueMarketId
                                        - label
                                      properties:
                                        id:
                                          type: string
                                        venueMarketId:
                                          type: string
                                        externalIdentifier:
                                          type: string
                                          nullable: true
                                        label:
                                          type: string
                                        title:
                                          type: string
                                          nullable: true
                                        price:
                                          deprecated: true
                                          description: >-
                                            No longer returned. Fetch live prices
                                            from GET /midpoints — sibling outcomes
                                            are covered by the `matched[]` entries
                                            of the parent market's midpoint item.
                                          type: number
                                        winner:
                                          type: boolean
                                          nullable: true
                                        payoutPerShare:
                                          minimum: 0
                                          maximum: 1
                                          description: >-
                                            Per-share USDC payout of this outcome in
                                            [0, 1] once the market settles. Source
                                            of truth over `winner` when set: a
                                            Polymarket UMA 50/50 stores 0.5 on both
                                            sides, a Novig void stores its refund
                                            prices (e.g. 0.155 / 0.845). `null` =
                                            unknown; clients fall back to `winner ?
                                            1/winnerCount : 0`.
                                          type: number
                                          nullable: true
                      arbReturn:
                        type: number
                        nullable: true
                      series:
                        type: object
                        required:
                          - externalIdentifier
                        properties:
                          externalIdentifier:
                            type: string
                        nullable: true
                      recurrence:
                        type: string
                        nullable: true
                      aggKey:
                        description: >-
                          Deterministic canonical key computed from this venue's
                          own data; null when not canonicalizable. This is a
                          fetch filter, not a cross-venue join key — it is
                          guaranteed identical across venues only for sports
                          head-to-head and crypto up/down markets, and two
                          members of the same matched cluster can carry
                          different keys. Use the event id and
                          matchedVenueMarkets for identity.
                        type: string
                        nullable: true
                      structureType:
                        type: string
                        enum:
                          - candidate
                          - sport
                          - axis
                          - dates
                        nullable: true
                      sport:
                        type: string
                        nullable: true
                      settlementDiff:
                        type: object
                        required:
                          - sharedSummary
                          - differences
                        properties:
                          sharedSummary:
                            type: string
                          differences:
                            type: array
                            items:
                              type: object
                              required:
                                - type
                                - title
                                - perVenue
                              properties:
                                type:
                                  type: string
                                title:
                                  type: string
                                perVenue:
                                  type: object
                                  additionalProperties:
                                    type: string
                                summary:
                                  type: string
                        nullable: true
                      matchedVenueEvents:
                        type: array
                        items:
                          type: object
                          required:
                            - id
                            - venue
                            - externalIdentifier
                            - title
                          properties:
                            id:
                              description: >-
                                Sibling event id. Re-resolve from discovery
                                rather than persisting: cluster merges re-point
                                members onto the surviving root, after which
                                this id remains a valid event but is no longer
                                the cluster head.
                              type: string
                            venue:
                              type: string
                              enum:
                                - kalshi
                                - polymarket
                                - limitless
                                - opinion
                                - predict
                                - pred
                                - tiprun
                                - probable
                                - myriad
                                - hyperliquid
                                - novig
                                - prophetx
                                - betdex
                            externalIdentifier:
                              type: string
                            title:
                              type: string
                            slug:
                              type: string
                              nullable: true
                            status:
                              type: string
                              enum:
                                - open
                                - closed
                                - resolved
                                - unopened
                                - paused
                            series:
                              type: object
                              required:
                                - externalIdentifier
                              properties:
                                externalIdentifier:
                                  type: string
                              nullable: true
                  markets:
                    type: object
                    required:
                      - data
                      - nextCursor
                      - hasMore
                    properties:
                      data:
                        type: array
                        items:
                          type: object
                          required:
                            - id
                            - venue
                            - externalIdentifier
                            - question
                            - venueMarketOutcomes
                          properties:
                            id:
                              type: string
                            venue:
                              type: string
                              enum:
                                - kalshi
                                - polymarket
                                - limitless
                                - opinion
                                - predict
                                - pred
                                - tiprun
                                - probable
                                - myriad
                                - hyperliquid
                                - novig
                                - prophetx
                                - betdex
                            deployerVenue:
                              type: string
                              nullable: true
                            marketId:
                              type: string
                              nullable: true
                            externalIdentifier:
                              type: string
                            venueEventId:
                              type: string
                              nullable: true
                            question:
                              type: string
                            description:
                              type: string
                              nullable: true
                            rulesPrimary:
                              type: string
                              nullable: true
                            rulesSecondary:
                              type: string
                              nullable: true
                            conditionId:
                              type: string
                              nullable: true
                            volume:
                              minimum: 0
                              type: number
                              nullable: true
                            image:
                              type: string
                              nullable: true
                            venueMarketOutcomes:
                              type: array
                              items:
                                type: object
                                required:
                                  - id
                                  - venueMarketId
                                  - label
                                properties:
                                  id:
                                    type: string
                                  venueMarketId:
                                    type: string
                                  externalIdentifier:
                                    type: string
                                    nullable: true
                                  label:
                                    type: string
                                  title:
                                    type: string
                                    nullable: true
                                  price:
                                    minimum: 0
                                    maximum: 1
                                    deprecated: true
                                    description: >-
                                      No longer returned. Fetch live prices from
                                      GET /midpoints (pass this outcome's parent
                                      venueMarketId in `ids` and match on
                                      `outcomes[].venueMarketOutcomeId`), or
                                      subscribe to the WebSocket midpoint
                                      stream.
                                    type: number
                                  winner:
                                    type: boolean
                                    nullable: true
                                  payoutPerShare:
                                    minimum: 0
                                    maximum: 1
                                    description: >-
                                      Per-share USDC payout of this outcome in
                                      [0, 1] once the market settles. Source of
                                      truth over `winner` when set: a Polymarket
                                      UMA 50/50 stores 0.5 on both sides, a
                                      Novig void stores its refund prices (e.g.
                                      0.155 / 0.845). `null` = unknown; clients
                                      fall back to `winner ? 1/winnerCount : 0`.
                                    type: number
                                    nullable: true
                                  matchedVenueMarketOutcomes:
                                    type: array
                                    items:
                                      type: object
                                      required:
                                        - venueMarketId
                                        - venueMarketOutcomeId
                                      properties:
                                        venueMarketId:
                                          type: string
                                        venueMarketOutcomeId:
                                          type: string
                            status:
                              type: string
                              enum:
                                - open
                                - closed
                                - resolved
                                - unopened
                                - paused
                            startDate:
                              type: string
                              nullable: true
                            endDate:
                              type: string
                              nullable: true
                            creationDate:
                              type: string
                              nullable: true
                            createdAt:
                              type: string
                              nullable: true
                            resolutionDate:
                              type: string
                              nullable: true
                            negRisk:
                              type: boolean
                            venues:
                              type: array
                              items:
                                type: string
                                enum:
                                  - kalshi
                                  - polymarket
                                  - limitless
                                  - opinion
                                  - predict
                                  - pred
                                  - tiprun
                                  - probable
                                  - myriad
                                  - hyperliquid
                                  - novig
                                  - prophetx
                                  - betdex
                            venueCount:
                              minimum: 0
                              type: integer
                            arbReturn:
                              type: number
                              nullable: true
                            aggKey:
                              description: >-
                                Deterministic canonical key computed from this
                                venue's own data; null when not canonicalizable.
                                This is a fetch filter, not a cross-venue join
                                key — it is guaranteed identical across venues
                                only for sports head-to-head and crypto up/down
                                markets, and two members of the same matched
                                cluster can carry different keys. Use the event
                                id and matchedVenueMarkets for identity.
                              type: string
                              nullable: true
                            sportsMarketType:
                              type: string
                              nullable: true
                            sectionRank:
                              type: integer
                              nullable: true
                            period:
                              type: string
                              nullable: true
                            marketCategory:
                              type: string
                              nullable: true
                            marketGroup:
                              type: string
                              nullable: true
                            marketSubtype:
                              type: string
                              nullable: true
                            lineValue:
                              type: number
                              nullable: true
                            minOrderSize:
                              description: >-
                                Per-market minimum order size in
                                shares/contracts. Populated for Polymarket (the
                                market's own floor) and PRED (0.001); null
                                elsewhere. POST /execution/limit-orders
                                validates `sizeRaw` against this value on
                                Polymarket. `null` means AGG ingested no value
                                for this market — NOT that the market has no
                                minimum; other venues enforce their own floors
                                this field does not carry.
                              type: number
                              nullable: true
                            tickSize:
                              description: >-
                                Price increment from the venue's market
                                metadata. A seed value — prefer the
                                runtime-inferred `tick` from GET /orderbooks or
                                GET /orderbook/outcome/:outcomeId when aligning
                                a limit price, since the live grid can be finer
                                than this.
                              type: number
                              nullable: true
                            feeRate:
                              description: >-
                                The venue's published taker fee rate for this
                                market. `null` means we do not have it — fall
                                back to your own table; `0` is a real rate
                                meaning the venue charges nothing. Excludes our
                                builder and clearinghouse fees, which appear in
                                the quote's `feeBreakdown`. See
                                /recipes/venue-fees.
                              type: number
                              nullable: true
                            feeExponent:
                              description: >-
                                Exponent paired with `feeRate`: `0` = flat
                                fraction of notional, `>= 1` = quadratic family.
                                `null` when `feeBasis` is `winnings`, which has
                                no price curve. See /recipes/venue-fees.
                              type: number
                              nullable: true
                            feeBasis:
                              description: >-
                                When the fee is charged: `fill` at execution,
                                `fill_in_game_only` only on fills matched while
                                the event is live, `winnings` at settlement on
                                net profit per market, `exit` only when a
                                position is closed or settles as a winner
                                (opening trades are free). See
                                /recipes/venue-fees.
                              type: string
                              enum:
                                - fill
                                - fill_in_game_only
                                - winnings
                                - exit
                              nullable: true
                            matchedVenueMarkets:
                              type: array
                              items:
                                type: object
                                required:
                                  - id
                                  - venue
                                  - externalIdentifier
                                  - question
                                properties:
                                  id:
                                    type: string
                                  venue:
                                    type: string
                                    enum:
                                      - kalshi
                                      - polymarket
                                      - limitless
                                      - opinion
                                      - predict
                                      - pred
                                      - tiprun
                                      - probable
                                      - myriad
                                      - hyperliquid
                                      - novig
                                      - prophetx
                                      - betdex
                                  deployerVenue:
                                    type: string
                                    nullable: true
                                  externalIdentifier:
                                    type: string
                                  question:
                                    type: string
                                  description:
                                    type: string
                                    nullable: true
                                  rulesPrimary:
                                    type: string
                                    nullable: true
                                  rulesSecondary:
                                    type: string
                                    nullable: true
                                  volume:
                                    minimum: 0
                                    type: number
                                    nullable: true
                                  status:
                                    type: string
                                    enum:
                                      - open
                                      - closed
                                      - resolved
                                      - unopened
                                      - paused
                                  conditionId:
                                    type: string
                                    nullable: true
                                  arbReturn:
                                    type: number
                                    nullable: true
                                  shortTitle:
                                    type: string
                                    nullable: true
                                  image:
                                    type: string
                                    nullable: true
                                  venueEvent:
                                    type: object
                                    required:
                                      - id
                                      - externalIdentifier
                                    properties:
                                      id:
                                        type: string
                                      externalIdentifier:
                                        type: string
                                      slug:
                                        type: string
                                        nullable: true
                                      title:
                                        type: string
                                        nullable: true
                                      series:
                                        type: object
                                        required:
                                          - id
                                          - venue
                                          - externalIdentifier
                                        properties:
                                          id:
                                            type: string
                                          name:
                                            type: string
                                            nullable: true
                                          venue:
                                            type: string
                                          externalIdentifier:
                                            type: string
                                        nullable: true
                                    nullable: true
                                  venueMarketOutcomes:
                                    type: array
                                    items:
                                      type: object
                                      required:
                                        - id
                                        - venueMarketId
                                        - label
                                      properties:
                                        id:
                                          type: string
                                        venueMarketId:
                                          type: string
                                        externalIdentifier:
                                          type: string
                                          nullable: true
                                        label:
                                          type: string
                                        title:
                                          type: string
                                          nullable: true
                                        price:
                                          deprecated: true
                                          description: >-
                                            No longer returned. Fetch live prices
                                            from GET /midpoints — sibling outcomes
                                            are covered by the `matched[]` entries
                                            of the parent market's midpoint item.
                                          type: number
                                        winner:
                                          type: boolean
                                          nullable: true
                                        payoutPerShare:
                                          minimum: 0
                                          maximum: 1
                                          description: >-
                                            Per-share USDC payout of this outcome in
                                            [0, 1] once the market settles. Source
                                            of truth over `winner` when set: a
                                            Polymarket UMA 50/50 stores 0.5 on both
                                            sides, a Novig void stores its refund
                                            prices (e.g. 0.155 / 0.845). `null` =
                                            unknown; clients fall back to `winner ?
                                            1/winnerCount : 0`.
                                          type: number
                                          nullable: true
                            venueEvent:
                              type: object
                              required:
                                - id
                                - externalIdentifier
                                - title
                                - image
                                - venue
                                - categories
                              properties:
                                id:
                                  description: >-
                                    Event id. List responses return one row per
                                    matched cluster, and for a matched event
                                    this id is the cluster anchor — the handle
                                    to use for cross-venue lookups. Re-resolve
                                    it from discovery rather than storing it as
                                    a permanent key: clusters can merge, after
                                    which the id remains a valid event but is no
                                    longer the cluster head. See the Matched
                                    Clusters guide.
                                  type: string
                                externalIdentifier:
                                  type: string
                                title:
                                  type: string
                                description:
                                  type: string
                                  nullable: true
                                image:
                                  type: string
                                  nullable: true
                                venue:
                                  type: string
                                  enum:
                                    - kalshi
                                    - polymarket
                                    - limitless
                                    - opinion
                                    - predict
                                    - pred
                                    - tiprun
                                    - probable
                                    - myriad
                                    - hyperliquid
                                    - novig
                                    - prophetx
                                    - betdex
                                deployerVenue:
                                  type: string
                                  nullable: true
                                volume:
                                  minimum: 0
                                  type: number
                                  nullable: true
                                status:
                                  type: string
                                  enum:
                                    - open
                                    - closed
                                    - resolved
                                    - unopened
                                    - paused
                                startDate:
                                  type: string
                                  nullable: true
                                endDate:
                                  type: string
                                  nullable: true
                                creationDate:
                                  type: string
                                  nullable: true
                                gameStartTime:
                                  type: string
                                  nullable: true
                                categories:
                                  type: array
                                  items:
                                    type: object
                                    required:
                                      - id
                                      - category
                                    properties:
                                      id:
                                        type: string
                                      category:
                                        type: object
                                        required:
                                          - id
                                          - name
                                          - displayName
                                          - parentId
                                          - eventCount
                                          - volume24hr
                                          - volume
                                        properties:
                                          id:
                                            type: string
                                          name:
                                            type: string
                                          displayName:
                                            type: string
                                            nullable: true
                                          parentId:
                                            type: string
                                            nullable: true
                                          eventCount:
                                            type: number
                                          volume24hr:
                                            type: number
                                          volume:
                                            type: number
                                slug:
                                  type: string
                                  nullable: true
                                subtitle:
                                  type: string
                                  nullable: true
                                venues:
                                  description: >-
                                    Venues this row's matched cluster spans —
                                    use it for venue badges. On a cluster anchor
                                    this is the cluster-wide set; a non-anchor
                                    member usually reports the same set, but
                                    narrows to its own venue when none of its
                                    markets have cross-venue counterparts.
                                  type: array
                                  items:
                                    type: string
                                    enum:
                                      - kalshi
                                      - polymarket
                                      - limitless
                                      - opinion
                                      - predict
                                      - pred
                                      - tiprun
                                      - probable
                                      - myriad
                                      - hyperliquid
                                      - novig
                                      - prophetx
                                      - betdex
                                marketCount:
                                  minimum: 0
                                  description: >-
                                    Number of markets on this event. Use this
                                    rather than the length of an embedded
                                    venueMarkets array, which is a preview on
                                    list responses. On GET /venue-events/:id
                                    this counts the whole matched cluster (send
                                    cluster=false to scope it to the single
                                    venue event); on list responses it counts
                                    the row's own event.
                                  type: integer
                                venueCount:
                                  minimum: 0
                                  description: >-
                                    Length of `venues` — the size of the matched
                                    cluster.
                                  type: integer
                                groupMarketCount:
                                  minimum: 0
                                  type: integer
                                groupParentId:
                                  description: >-
                                    Same-venue companion grouping: the id of
                                    this event's group base. NULL means the
                                    event IS the base, or is standalone. A venue
                                    splits one game into several events (`… -
                                    More Markets`, `… : Spread`), and same-venue
                                    events never share a matched cluster (the
                                    sole exception is Hyperliquid HIP-4
                                    deployers, see
                                    /recipes/hyperliquid-deployers) — so on a
                                    companion, `matchedVenueEvents[]` lists the
                                    other venues' EQUIVALENT companions, not the
                                    game's cluster. Use this id (or the shared
                                    `aggKey`) to reach the base. See
                                    /recipes/sports-market-detail.
                                  type: string
                                  nullable: true
                                updatedAt:
                                  type: string
                                  nullable: true
                                venueMarkets:
                                  description: >-
                                    Embedded markets. On list responses this is
                                    a preview of up to three markets chosen to
                                    represent the event on a card — not the
                                    complete set, and not necessarily the
                                    largest; use marketCount for totals. On the
                                    by-id response it is uncapped. Deprecated on
                                    both — fetch markets from GET
                                    /venue-markets?venueEventId=.
                                  type: array
                                  items:
                                    type: object
                                    required:
                                      - id
                                      - venue
                                      - externalIdentifier
                                      - question
                                      - venueMarketOutcomes
                                    properties:
                                      id:
                                        type: string
                                      venue:
                                        type: string
                                        enum:
                                          - kalshi
                                          - polymarket
                                          - limitless
                                          - opinion
                                          - predict
                                          - pred
                                          - tiprun
                                          - probable
                                          - myriad
                                          - hyperliquid
                                          - novig
                                          - prophetx
                                          - betdex
                                      deployerVenue:
                                        type: string
                                        nullable: true
                                      marketId:
                                        type: string
                                        nullable: true
                                      externalIdentifier:
                                        type: string
                                      venueEventId:
                                        type: string
                                        nullable: true
                                      question:
                                        type: string
                                      description:
                                        type: string
                                        nullable: true
                                      rulesPrimary:
                                        type: string
                                        nullable: true
                                      rulesSecondary:
                                        type: string
                                        nullable: true
                                      conditionId:
                                        type: string
                                        nullable: true
                                      volume:
                                        minimum: 0
                                        type: number
                                        nullable: true
                                      image:
                                        type: string
                                        nullable: true
                                      venueMarketOutcomes:
                                        type: array
                                        items:
                                          type: object
                                          required:
                                            - id
                                            - venueMarketId
                                            - label
                                          properties:
                                            id:
                                              type: string
                                            venueMarketId:
                                              type: string
                                            externalIdentifier:
                                              type: string
                                              nullable: true
                                            label:
                                              type: string
                                            title:
                                              type: string
                                              nullable: true
                                            price:
                                              minimum: 0
                                              maximum: 1
                                              deprecated: true
                                              description: >-
                                                No longer returned. Fetch live prices
                                                from GET /midpoints (pass this outcome's
                                                parent venueMarketId in `ids` and match
                                                on `outcomes[].venueMarketOutcomeId`),
                                                or subscribe to the WebSocket midpoint
                                                stream.
                                              type: number
                                            winner:
                                              type: boolean
                                              nullable: true
                                            payoutPerShare:
                                              minimum: 0
                                              maximum: 1
                                              description: >-
                                                Per-share USDC payout of this outcome in
                                                [0, 1] once the market settles. Source
                                                of truth over `winner` when set: a
                                                Polymarket UMA 50/50 stores 0.5 on both
                                                sides, a Novig void stores its refund
                                                prices (e.g. 0.155 / 0.845). `null` =
                                                unknown; clients fall back to `winner ?
                                                1/winnerCount : 0`.
                                              type: number
                                              nullable: true
                                            matchedVenueMarketOutcomes:
                                              type: array
                                              items:
                                                type: object
                                                required:
                                                  - venueMarketId
                                                  - venueMarketOutcomeId
                                                properties:
                                                  venueMarketId:
                                                    type: string
                                                  venueMarketOutcomeId:
                                                    type: string
                                      status:
                                        type: string
                                        enum:
                                          - open
                                          - closed
                                          - resolved
                                          - unopened
                                          - paused
                                      startDate:
                                        type: string
                                        nullable: true
                                      endDate:
                                        type: string
                                        nullable: true
                                      creationDate:
                                        type: string
                                        nullable: true
                                      createdAt:
                                        type: string
                                        nullable: true
                                      resolutionDate:
                                        type: string
                                        nullable: true
                                      negRisk:
                                        type: boolean
                                      venues:
                                        type: array
                                        items:
                                          type: string
                                          enum:
                                            - kalshi
                                            - polymarket
                                            - limitless
                                            - opinion
                                            - predict
                                            - pred
                                            - tiprun
                                            - probable
                                            - myriad
                                            - hyperliquid
                                            - novig
                                            - prophetx
                                            - betdex
                                      venueCount:
                                        minimum: 0
                                        type: integer
                                      arbReturn:
                                        type: number
                                        nullable: true
                                      aggKey:
                                        description: >-
                                          Deterministic canonical key computed
                                          from this venue's own data; null when
                                          not canonicalizable. This is a fetch
                                          filter, not a cross-venue join key — it
                                          is guaranteed identical across venues
                                          only for sports head-to-head and crypto
                                          up/down markets, and two members of the
                                          same matched cluster can carry different
                                          keys. Use the event id and
                                          matchedVenueMarkets for identity.
                                        type: string
                                        nullable: true
                                      sportsMarketType:
                                        type: string
                                        nullable: true
                                      sectionRank:
                                        type: integer
                                        nullable: true
                                      period:
                                        type: string
                                        nullable: true
                                      marketCategory:
                                        type: string
                                        nullable: true
                                      marketGroup:
                                        type: string
                                        nullable: true
                                      marketSubtype:
                                        type: string
                                        nullable: true
                                      lineValue:
                                        type: number
                                        nullable: true
                                      minOrderSize:
                                        description: >-
                                          Per-market minimum order size in
                                          shares/contracts. Populated for
                                          Polymarket (the market's own floor) and
                                          PRED (0.001); null elsewhere. POST
                                          /execution/limit-orders validates
                                          `sizeRaw` against this value on
                                          Polymarket. `null` means AGG ingested no
                                          value for this market — NOT that the
                                          market has no minimum; other venues
                                          enforce their own floors this field does
                                          not carry.
                                        type: number
                                        nullable: true
                                      tickSize:
                                        description: >-
                                          Price increment from the venue's market
                                          metadata. A seed value — prefer the
                                          runtime-inferred `tick` from GET
                                          /orderbooks or GET
                                          /orderbook/outcome/:outcomeId when
                                          aligning a limit price, since the live
                                          grid can be finer than this.
                                        type: number
                                        nullable: true
                                      feeRate:
                                        description: >-
                                          The venue's published taker fee rate for
                                          this market. `null` means we do not have
                                          it — fall back to your own table; `0` is
                                          a real rate meaning the venue charges
                                          nothing. Excludes our builder and
                                          clearinghouse fees, which appear in the
                                          quote's `feeBreakdown`. See
                                          /recipes/venue-fees.
                                        type: number
                                        nullable: true
                                      feeExponent:
                                        description: >-
                                          Exponent paired with `feeRate`: `0` =
                                          flat fraction of notional, `>= 1` =
                                          quadratic family. `null` when `feeBasis`
                                          is `winnings`, which has no price curve.
                                          See /recipes/venue-fees.
                                        type: number
                                        nullable: true
                                      feeBasis:
                                        description: >-
                                          When the fee is charged: `fill` at
                                          execution, `fill_in_game_only` only on
                                          fills matched while the event is live,
                                          `winnings` at settlement on net profit
                                          per market, `exit` only when a position
                                          is closed or settles as a winner
                                          (opening trades are free). See
                                          /recipes/venue-fees.
                                        type: string
                                        enum:
                                          - fill
                                          - fill_in_game_only
                                          - winnings
                                          - exit
                                        nullable: true
                                      matchedVenueMarkets:
                                        description: >-
                                          The same market on other venues, as
                                          linked by AGG's matching pipeline. This
                                          is the cross-venue linkage — it hangs
                                          off each market, not off the event, and
                                          is complete regardless of which cluster
                                          member you queried.
                                        type: array
                                        items:
                                          type: object
                                          required:
                                            - id
                                            - venue
                                            - externalIdentifier
                                            - question
                                          properties:
                                            id:
                                              type: string
                                            venue:
                                              type: string
                                              enum:
                                                - kalshi
                                                - polymarket
                                                - limitless
                                                - opinion
                                                - predict
                                                - pred
                                                - tiprun
                                                - probable
                                                - myriad
                                                - hyperliquid
                                                - novig
                                                - prophetx
                                                - betdex
                                            deployerVenue:
                                              type: string
                                              nullable: true
                                            externalIdentifier:
                                              type: string
                                            question:
                                              type: string
                                            description:
                                              type: string
                                              nullable: true
                                            rulesPrimary:
                                              type: string
                                              nullable: true
                                            rulesSecondary:
                                              type: string
                                              nullable: true
                                            volume:
                                              minimum: 0
                                              type: number
                                              nullable: true
                                            status:
                                              type: string
                                              enum:
                                                - open
                                                - closed
                                                - resolved
                                                - unopened
                                                - paused
                                            conditionId:
                                              type: string
                                              nullable: true
                                            arbReturn:
                                              type: number
                                              nullable: true
                                            shortTitle:
                                              type: string
                                              nullable: true
                                            image:
                                              type: string
                                              nullable: true
                                            venueEvent:
                                              type: object
                                              required:
                                                - id
                                                - externalIdentifier
                                              properties:
                                                id:
                                                  type: string
                                                externalIdentifier:
                                                  type: string
                                                slug:
                                                  type: string
                                                  nullable: true
                                                title:
                                                  type: string
                                                  nullable: true
                                                series:
                                                  type: object
                                                  required:
                                                    - id
                                                    - venue
                                                    - externalIdentifier
                                                  properties:
                                                    id:
                                                      type: string
                                                    name:
                                                      type: string
                                                      nullable: true
                                                    venue:
                                                      type: string
                                                    externalIdentifier:
                                                      type: string
                                                  nullable: true
                                              nullable: true
                                            venueMarketOutcomes:
                                              type: array
                                              items:
                                                type: object
                                                required:
                                                  - id
                                                  - venueMarketId
                                                  - label
                                                properties:
                                                  id:
                                                    type: string
                                                  venueMarketId:
                                                    type: string
                                                  externalIdentifier:
                                                    type: string
                                                    nullable: true
                                                  label:
                                                    type: string
                                                  title:
                                                    type: string
                                                    nullable: true
                                                  price:
                                                    deprecated: true
                                                    description: >-
                                                      No longer returned. Fetch live prices
                                                      from GET /midpoints — sibling outcomes
                                                      are covered by the `matched[]` entries
                                                      of the parent market's midpoint item.
                                                    type: number
                                                  winner:
                                                    type: boolean
                                                    nullable: true
                                                  payoutPerShare:
                                                    minimum: 0
                                                    maximum: 1
                                                    description: >-
                                                      Per-share USDC payout of this outcome in
                                                      [0, 1] once the market settles. Source
                                                      of truth over `winner` when set: a
                                                      Polymarket UMA 50/50 stores 0.5 on both
                                                      sides, a Novig void stores its refund
                                                      prices (e.g. 0.155 / 0.845). `null` =
                                                      unknown; clients fall back to `winner ?
                                                      1/winnerCount : 0`.
                                                    type: number
                                                    nullable: true
                                arbReturn:
                                  type: number
                                  nullable: true
                                series:
                                  type: object
                                  required:
                                    - externalIdentifier
                                  properties:
                                    externalIdentifier:
                                      type: string
                                  nullable: true
                                recurrence:
                                  type: string
                                  nullable: true
                                aggKey:
                                  description: >-
                                    Deterministic canonical key computed from
                                    this venue's own data; null when not
                                    canonicalizable. This is a fetch filter, not
                                    a cross-venue join key — it is guaranteed
                                    identical across venues only for sports
                                    head-to-head and crypto up/down markets, and
                                    two members of the same matched cluster can
                                    carry different keys. Use the event id and
                                    matchedVenueMarkets for identity.
                                  type: string
                                  nullable: true
                                structureType:
                                  type: string
                                  enum:
                                    - candidate
                                    - sport
                                    - axis
                                    - dates
                                  nullable: true
                                sport:
                                  type: string
                                  nullable: true
                                settlementDiff:
                                  type: object
                                  required:
                                    - sharedSummary
                                    - differences
                                  properties:
                                    sharedSummary:
                                      type: string
                                    differences:
                                      type: array
                                      items:
                                        type: object
                                        required:
                                          - type
                                          - title
                                          - perVenue
                                        properties:
                                          type:
                                            type: string
                                          title:
                                            type: string
                                          perVenue:
                                            type: object
                                            additionalProperties:
                                              type: string
                                          summary:
                                            type: string
                                  nullable: true
                                matchedVenueEvents:
                                  type: array
                                  items:
                                    type: object
                                    required:
                                      - id
                                      - venue
                                      - externalIdentifier
                                      - title
                                    properties:
                                      id:
                                        description: >-
                                          Sibling event id. Re-resolve from
                                          discovery rather than persisting:
                                          cluster merges re-point members onto the
                                          surviving root, after which this id
                                          remains a valid event but is no longer
                                          the cluster head.
                                        type: string
                                      venue:
                                        type: string
                                        enum:
                                          - kalshi
                                          - polymarket
                                          - limitless
                                          - opinion
                                          - predict
                                          - pred
                                          - tiprun
                                          - probable
                                          - myriad
                                          - hyperliquid
                                          - novig
                                          - prophetx
                                          - betdex
                                      externalIdentifier:
                                        type: string
                                      title:
                                        type: string
                                      slug:
                                        type: string
                                        nullable: true
                                      status:
                                        type: string
                                        enum:
                                          - open
                                          - closed
                                          - resolved
                                          - unopened
                                          - paused
                                      series:
                                        type: object
                                        required:
                                          - externalIdentifier
                                        properties:
                                          externalIdentifier:
                                            type: string
                                        nullable: true
                              nullable: true
                      nextCursor:
                        type: string
                        nullable: true
                      hasMore:
                        type: boolean
                  selectedOutcomeIds:
                    maxItems: 32
                    type: array
                    items:
                      type: string
                  references:
                    type: object
                    required:
                      - historyManifestPath
                      - liveChannel
                    properties:
                      historyManifestPath:
                        type: string
                        enum:
                          - /charts/history/manifest
                      liveChannel:
                        type: string
                        enum:
                          - orderbook
                  freshness:
                    type: object
                    required:
                      - assembledAt
                      - marketStatus
                    properties:
                      assembledAt:
                        type: number
                      marketStatus:
                        type: string
                        enum:
                          - open
                        nullable: true
        '400':
          description: '400'
          content:
            application/json:
              schema:
                type: object
                required:
                  - message
                properties:
                  message:
                    type: string
        '401':
          description: '401'
          content:
            application/json:
              schema:
                type: object
                required:
                  - message
                properties:
                  message:
                    type: string
        '404':
          description: '404'
          content:
            application/json:
              schema:
                type: object
                required:
                  - message
                properties:
                  message:
                    type: string
        '429':
          description: '429'
          content:
            application/json:
              schema:
                type: object
                required:
                  - message
                properties:
                  message:
                    type: string
                  statusCode:
                    type: number
                    enum:
                      - 429
                  code:
                    type: string
                    enum:
                      - rate_limited
                  retryAfter:
                    minimum: 1
                    description: Retry delay in seconds.
                    type: integer
          headers:
            Retry-After:
              schema:
                pattern: ^[1-9][0-9]*$
                description: Seconds to wait before another request; do not retry earlier.
                type: string
            Cache-Control:
              schema:
                type: string
                enum:
                  - private, no-store
        '503':
          description: '503'
          content:
            application/json:
              schema:
                anyOf:
                  - type: object
                    required:
                      - statusCode
                      - code
                      - message
                      - retryAfter
                    properties:
                      statusCode:
                        type: number
                        enum:
                          - 503
                      code:
                        type: string
                        enum:
                          - rate_limit_unavailable
                      message:
                        type: string
                      retryAfter:
                        minimum: 1
                        description: Retry delay in seconds.
                        type: integer
                  - type: object
                    required:
                      - message
                    properties:
                      message:
                        type: string
          headers:
            Retry-After:
              schema:
                pattern: ^[1-9][0-9]*$
                description: Seconds to wait before another request; do not retry earlier.
                type: string
            Cache-Control:
              schema:
                type: string
                enum:
                  - private, no-store
      security:
        - appId: []
components:
  securitySchemes:
    appId:
      type: apiKey
      in: header
      name: x-app-id
      description: Your application ID. Required for all app-tier and user-tier routes.

````