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

# 赛事赔率

> 获取赛事当前赔率。

查询模式：必需 `fixtureId` + 可选 `bookmakers`，可选过滤标志。

如果提供 `since`，返回 `changedAt >= since` 的赔率更新。



## OpenAPI

````yaml /zh/api-reference/openapi.json get /fixtures/odds
openapi: 3.1.0
info:
  title: 赔率 API v5
  version: 5.0.0
  description: 高性能赔率API，由Valkey + Supabase RPC发现支持。
servers:
  - url: https://v5.oddspapi.io/zh
security:
  - ApiKeyAuth: []
tags:
  - name: common
  - name: fixtures
  - name: fixtures/odds
  - name: futures
  - name: futures/odds
  - name: mapping
  - name: media
  - name: settlement
paths:
  /fixtures/odds:
    get:
      tags:
        - fixtures/odds
      summary: 赛事赔率
      description: |-
        获取赛事当前赔率。

        查询模式：必需 `fixtureId` + 可选 `bookmakers`，可选过滤标志。

        如果提供 `since`，返回 `changedAt >= since` 的赔率更新。
      operationId: fixtures_odds__lang__fixtures_odds_get
      parameters:
        - $ref: '#/components/parameters/fixtureIdStringRequired'
        - name: bookmakers
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
          description: 'Comma/space-separated bookmaker slugs (default: all).'
        - name: since
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: 'null'
          description: changedAt >= since (ms)
        - name: marketActive
          in: query
          required: false
          schema:
            anyOf:
              - type: boolean
              - type: 'null'
          description: If set, filter by marketActive flag.
        - name: mainLine
          in: query
          required: false
          schema:
            anyOf:
              - type: boolean
              - type: 'null'
          description: If set, filter by mainLine flag.
      responses:
        '200':
          description: Returns FixtureOddsResponse (fixture meta + odds + bookmaker meta)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FixtureOddsResponse'
              examples:
                example:
                  summary: Fixture odds
                  value:
                    fixtureId: id1100013270505136
                    status:
                      live: false
                      statusId: 0
                      statusName: Pre-Game
                    sport:
                      sportId: 11
                      sportName: Basketball
                    tournament:
                      tournamentId: 132
                      tournamentName: NBA
                      categoryName: USA
                    season:
                      seasonId: 131631
                      seasonName: NBA 25/26
                      seasonRound: null
                    venue:
                      venueId: 6112
                      venueName: Frost Bank Center
                      venueLocation: San Antonio, TX, USA
                    startTime: 1776816000
                    trueStartTime: null
                    trueEndTime: null
                    participants:
                      participant1Id: 3429
                      participant1RotNr: 301
                      participant1Name: San Antonio Spurs
                      participant1ShortName: San Antonio
                      participant1Abbr: SAS
                      participant2Id: 3414
                      participant2RotNr: 300
                      participant2Name: Portland Trail Blazers
                      participant2ShortName: Portland
                      participant2Abbr: POR
                    scores: {}
                    clock:
                      currentPeriod: null
                      currentTime: null
                      remainingTime: null
                      remainingTimeInPeriod: null
                      stopped: null
                    expectedPeriods: 4
                    periodLength: 12
                    externalProviders:
                      betgeniusId: 13808312
                      betradarId: 70505136
                      flashscoreId: ruuPcnS7
                      mollybetId: 2026-04-22,29115,29108
                      oddinId: null
                      opticoddsId: 20260422A553CF52
                      pinnacleId: 1628488896
                      sofascoreId: 15934995
                      lsportsId: null
                      txoddsId: null
                    odds:
                      pinnacle:
                        id1100013270505136:pinnacle:111:0:
                          bookmaker: pinnacle
                          outcomeId: 111
                          playerId: 0
                          active: true
                          price: 1.155
                          marketActive: true
                          mainLine: true
                          bookmakerMarketId: line/4/487/1628488896/3565645414/0/moneyline
                          bookmakerOutcomeId: home
                          bookmakerChangedAt: 1776717657043
                          limit: 19354
                          priceAmerican: -645
                          priceFractional: 11/71
                          marketId: 111
                          changedAt: 1776717657402
                        id1100013270505136:pinnacle:112:0:
                          bookmaker: pinnacle
                          outcomeId: 112
                          playerId: 0
                          active: true
                          price: 5.77
                          marketActive: true
                          mainLine: true
                          bookmakerMarketId: line/4/487/1628488896/3565645414/0/moneyline
                          bookmakerOutcomeId: away
                          bookmakerChangedAt: 1776717657043
                          limit: 3000
                          priceAmerican: 477
                          priceFractional: 477/100
                          marketId: 111
                          changedAt: 1776717657402
                    bookmakers:
                      pinnacle:
                        bookmaker: pinnacle
                        bookmakerFixtureId: '1628488896'
                        fixturePath: https://www.pinnacle.com/en/e/e/e/1628488896/#all
                        hasOdds: true
                        staleOdds: false
                        staleOddsResponseCode: null
                        suspended: false
                        participantsRotated: false
                        meta: null
                        updatedAt: '2026-04-20T13:54:39.472368+00:00'
        '400':
          $ref: '#/components/responses/ApiError'
        '401':
          $ref: '#/components/responses/ApiError'
        '403':
          $ref: '#/components/responses/ApiError'
        '404':
          $ref: '#/components/responses/ApiError'
        '422':
          $ref: '#/components/responses/ValidationError'
        '429':
          $ref: '#/components/responses/ApiError'
components:
  parameters:
    fixtureIdStringRequired:
      name: fixtureId
      in: query
      required: true
      schema:
        type: string
      description: Single fixture ID (e.g. id1400003160574219).
  schemas:
    FixtureOddsResponse:
      allOf:
        - $ref: '#/components/schemas/Fixture'
        - type: object
          properties:
            odds:
              $ref: '#/components/schemas/OddsByBookmaker'
          required:
            - odds
          additionalProperties: true
    Fixture:
      type: object
      properties:
        fixtureId:
          type: string
        status:
          $ref: '#/components/schemas/Status'
        sport:
          $ref: '#/components/schemas/SportRef'
        tournament:
          $ref: '#/components/schemas/TournamentRef'
        season:
          $ref: '#/components/schemas/SeasonRef'
        venue:
          $ref: '#/components/schemas/VenueRef'
        startTime:
          type: integer
        trueStartTime:
          type:
            - string
            - 'null'
        trueEndTime:
          type:
            - string
            - 'null'
        participants:
          $ref: '#/components/schemas/ParticipantsRef'
        scores:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/ScorePeriod'
        clock:
          anyOf:
            - $ref: '#/components/schemas/Clock'
            - type: 'null'
        expectedPeriods:
          type:
            - integer
            - 'null'
        periodLength:
          type:
            - integer
            - 'null'
        externalProviders:
          $ref: '#/components/schemas/ExternalProviders'
        bookmakers:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/BookmakerFixtureMeta'
      required:
        - fixtureId
        - status
        - sport
        - tournament
        - season
        - venue
        - startTime
        - participants
        - scores
        - clock
        - externalProviders
        - bookmakers
      additionalProperties: true
    OddsByBookmaker:
      type: object
      additionalProperties:
        $ref: '#/components/schemas/OddsMap'
    Error:
      type: object
      description: Concrete error format returned by this API (no FastAPI detail wrapper).
      properties:
        error:
          type: integer
          description: HTTP status code
        message:
          type: string
          description: Human-readable error message
        code:
          type: string
          description: Machine-readable reason code
        details:
          description: Optional extra details (string/object/array depending on the error).
      required:
        - error
        - message
      additionalProperties: true
    HTTPValidationError:
      title: HTTPValidationError
      type: object
      properties:
        detail:
          title: Detail
          type: array
          items:
            $ref: '#/components/schemas/ValidationError'
    Status:
      type: object
      properties:
        live:
          type: boolean
        statusId:
          type: integer
        statusName:
          type: string
      required:
        - live
        - statusId
        - statusName
      additionalProperties: true
    SportRef:
      type: object
      properties:
        sportId:
          type: integer
        sportName:
          type: string
      required:
        - sportId
        - sportName
      additionalProperties: true
    TournamentRef:
      type: object
      properties:
        tournamentId:
          type: integer
        tournamentName:
          type: string
        categoryName:
          type:
            - string
            - 'null'
      required:
        - tournamentId
        - tournamentName
      additionalProperties: true
    SeasonRef:
      type: object
      properties:
        seasonId:
          type:
            - integer
            - 'null'
        seasonName:
          type:
            - string
            - 'null'
        seasonRound:
          type:
            - integer
            - 'null'
      additionalProperties: true
    VenueRef:
      type: object
      properties:
        venueId:
          type:
            - integer
            - 'null'
        venueName:
          type:
            - string
            - 'null'
        venueLocation:
          type:
            - string
            - 'null'
      additionalProperties: true
    ParticipantsRef:
      type: object
      properties:
        participant1Id:
          type: integer
        participant1RotNr:
          type:
            - integer
            - 'null'
        participant1Name:
          type:
            - string
            - 'null'
        participant1ShortName:
          type:
            - string
            - 'null'
        participant1Abbr:
          type:
            - string
            - 'null'
        participant2Id:
          type: integer
        participant2RotNr:
          type:
            - integer
            - 'null'
        participant2Name:
          type:
            - string
            - 'null'
        participant2ShortName:
          type:
            - string
            - 'null'
        participant2Abbr:
          type:
            - string
            - 'null'
      required:
        - participant1Id
        - participant2Id
      additionalProperties: true
    ScorePeriod:
      type: object
      properties:
        period:
          type: string
        participant1Score:
          type: integer
        participant2Score:
          type: integer
        updatedAt:
          type: string
      required:
        - period
        - participant1Score
        - participant2Score
        - updatedAt
      additionalProperties: true
    Clock:
      type: object
      properties:
        currentPeriod:
          type:
            - string
            - 'null'
        currentTime:
          type:
            - string
            - 'null'
        remainingTime:
          type:
            - string
            - 'null'
        remainingTimeInPeriod:
          type:
            - string
            - 'null'
        stopped:
          type:
            - boolean
            - 'null'
      additionalProperties: true
    ExternalProviders:
      type: object
      additionalProperties: true
    BookmakerFixtureMeta:
      type: object
      properties:
        bookmaker:
          type: string
        bookmakerFixtureId:
          type:
            - string
            - 'null'
        fixturePath:
          type:
            - string
            - 'null'
        hasOdds:
          type: boolean
        staleOdds:
          type: boolean
        staleOddsResponseCode:
          type:
            - integer
            - 'null'
        suspended:
          type: boolean
        participantsRotated:
          type: boolean
        meta:
          type:
            - object
            - 'null'
          additionalProperties: true
        updatedAt:
          type: string
      required:
        - bookmaker
        - hasOdds
        - staleOdds
        - suspended
        - participantsRotated
        - updatedAt
      additionalProperties: true
    OddsMap:
      type: object
      additionalProperties:
        $ref: '#/components/schemas/OddQuote'
    ValidationError:
      title: ValidationError
      type: object
      required:
        - loc
        - msg
        - type
      properties:
        loc:
          title: Location
          type: array
          items:
            anyOf:
              - type: string
              - type: integer
        msg:
          title: Message
          type: string
        type:
          title: Error Type
          type: string
    OddQuote:
      type: object
      properties:
        bookmaker:
          type: string
        outcomeId:
          type: integer
        playerId:
          type: integer
        price:
          type: number
        active:
          type: boolean
        marketActive:
          type:
            - boolean
            - 'null'
        mainLine:
          type:
            - boolean
            - 'null'
        marketId:
          type: integer
        bookmakerMarketId:
          type:
            - string
            - 'null'
        bookmakerOutcomeId:
          type:
            - string
            - 'null'
        bookmakerChangedAt:
          type:
            - int
            - 'null'
        priceFractional:
          type:
            - string
            - 'null'
        priceAmerican:
          type:
            - integer
            - 'null'
        meta:
          type:
            - json
            - 'null'
        limit:
          type:
            - number
            - 'null'
        betslip:
          type:
            - string
            - 'null'
        changedAt:
          type: int
      required:
        - bookmaker
        - outcomeId
        - playerId
        - price
        - active
        - changedAt
      additionalProperties: true
  responses:
    ApiError:
      description: API error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          examples:
            invalid_filters:
              summary: Invalid filters
              value:
                error: 400
                message: Invalid filters.
                reason: invalid_filters
            invalid_api_key:
              summary: Invalid apiKey
              value:
                error: 401
                message: invalid apiKey
                reason: invalid_api_key
            rate_limited:
              summary: Rate limited
              value:
                error: 429
                message: rate limit exceeded
                reason: rate_limited
                retryAfterSec: 1
    ValidationError:
      description: Validation Error (framework-level)
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/HTTPValidationError'
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: query
      name: apiKey
      description: Your API key (query-based auth for v5).

````