Odds337Docs
    Odds337BackGet API key
    Getting started
    • Introduction
    • Authentication
    • Quickstart
    • Tokens & pricing
    • Limits
    • Errors
    • Odds formats
    Reference
    • GET/sports
    • GET/books
    • GET/teams
    • GET/players
    • Logos & headshots
    • GET/events
    • GET/odds
    • GET/scores
    • GET/history
    • GET/clv
    • POST /clv
    • GET/usage
    • GET/_health
    • WebSocket
    • Specs & SDKs
    Racing
    • GET/racing/meetings
    • GET/racing/race
    • GET/racing/history
    • race_id and status
    Concepts
    • event_id
    • selection_key
    • team_id & player_id
    • Open & close prices
    • 337 model price
    • Event links
    • Statuses
    Getting started
    • Introduction
    • Authentication
    • Quickstart
    • Tokens & pricing
    • Limits
    • Errors
    • Odds formats
    Reference
    • GET/sports
    • GET/books
    • GET/teams
    • GET/players
    • Logos & headshots
    • GET/events
    • GET/odds
    • GET/scores
    • GET/history
    • GET/clv
    • POST /clv
    • GET/usage
    • GET/_health
    • WebSocket
    • Specs & SDKs
    Racing
    • GET/racing/meetings
    • GET/racing/race
    • GET/racing/history
    • race_id and status
    Concepts
    • event_id
    • selection_key
    • team_id & player_id
    • Open & close prices
    • 337 model price
    • Event links
    • Statuses

    Getting started

    Tokens & pricing

    Every key has a token allowance that resets every 30 days from your billing date on a paid plan. Each call costs a fixed number of tokens.

    Costs

    Every key has a token allowance per period (default 1,000). On a paid plan it resets every 30 days from your billing date; without one, on the 1st of each UTC month.GET /usage shows the period and resets_at.

    CallTokens
    GET /sports, /books, /usage, /_health0
    GET /events (any window, any status)1
    GET /odds with tier=main (default)1
    GET /odds with tier=extended5
    GET /odds for a finished eventsame as live (1 main, 5 extended)
    GET /scores (score, result and the model fields on /events and /odds cost nothing extra)1
    GET /history (1 to 5 books)2
    GET /racing/meetings, /racing/race1
    GET /racing/history2 (not on the demo key)
    GET /clv1
    POST /clv1 per distinct event_id in the batch
    GET /openapi.json, /asyncapi.json0 (no key needed)
    WebSocket streaming0 (included on Business and Enterprise)

    WebSocket streaming spends no tokens: it is included on Business (up to 50 live events, 3 connections) and Enterprise, and is bounded by those limits instead. Requests that fail on our side (5xx) or ask for an unknown event (404) are not charged.

    Usage headers

    Every metered response carries:

    HeaderMeaning
    X-Tokens-CostTokens this call cost
    X-Tokens-UsedTokens used this month, including this call
    X-Tokens-RemainingTokens left this month
    X-Tokens-LimitYour allowance for the current period

    GET /usage returns the same numbers for free.

    When tokens run out

    Metered calls return 402 until the month resets. The WebSocket spends no tokens, so it keeps streaming.

    {"error": {"code": "tokens_exhausted", "message": "monthly token allowance and top-up balance used up",
               "tokens_used": 1000, "tokens_limit": 1000, "resets_at": "2026-11-05T03:12:00Z"}}
    PreviousQuickstartNextLimits

    On this page

    • Costs
    • Usage headers
    • When tokens run out