Developer buying guide

Historical odds API for selection-level line movement

Query timestamped pre-match prices for one event and selection, then group the returned series by bookmaker for charts, audits and leakage-safe backtests.

Bounded selection historyHistory add-on
Request
curl --request GET \
  --header "X-API-Key: $ODDS_API_KEY" \
  "https://api.odds-api.net/v1/events/{event_id}/odds/history?selection_key={selection_key}&from_ts=2026-09-01T00:00:00Z&to_ts=2026-09-02T00:00:00Z"
Response
{
  "event_id": "nba-example-001",
  "selection_key": "moneyline:home",
  "price_type": "decimal",
  "series": [{
    "bookmaker": "pinnacle",
    "points": [
      {"tick_ts": "2026-09-01T08:00:00Z", "is_available": true, "odds": 1.91},
      {"tick_ts": "2026-09-01T08:14:20Z", "is_available": true, "odds": 1.95}
    ]
  }],
  "meta": {"from_ts": "2026-09-01T00:00:00Z", "to_ts": "2026-09-02T00:00:00Z"}
}

Decision evidence

What the historical endpoint provides

History is an event-and-selection query product, not a bulk archive download.

Requirementodds-api.net contract
EndpointGET /v1/events/{event_id}/odds/history
Time windowBounded ISO8601 UTC from_ts and to_ts parameters.
SelectionUse the stable selection_key returned by the event odds snapshot.
FiltersNarrow by bookmaker, market group, price type and point limit where supported.
ContinuitySSE and WebSocket history streams are available for supported line-movement consumers.
AccessA paid base plan plus an enabled History Lite or History Pro add-on.
Lookback30 days with History Lite or 365 days with History Pro, where retained.
History creditsOne history credit, plus one per 1,000 returned points, plus payload-size units per MB.
Timestamp meaningtick_ts is the recorded price-point time. The series is event driven, so do not assume fixed-interval samples.

Historical records describe retained pre-match prices. They are not a live-price fallback, form database or guaranteed complete archive for every bookmaker and market.

Implementation guidance

Use history without corrupting the test

Keep the event, selection and timestamp boundaries explicit from the first query.

01

Build line-movement charts

Start from a current or retained event ID, then query one stable selection through a bounded time window.

  • Plot bookmaker price changes against recorded timestamps.
  • Keep the line and side attached to every selection.
  • Separate unavailable or suspended points from real price moves.
  • Label historical values as delayed or historical in customer-facing products.
02

Backtest a model

Use only information that would have existed at each decision time.

  • Select a consistent decision timestamp before the event start.
  • Prevent later prices and results from leaking into model features.
  • Measure missing bookmaker and selection coverage explicitly.
  • Store results separately from the historical odds series.
03

Audit a closing price

Define the close before calculating a closing-line metric.

  • Choose the last eligible pre-match observation before start.
  • Keep bookmaker-specific closes separate from consensus prices.
  • Record the source selection key and query window with the result.
  • Do not substitute the first in-play price for a missing pre-match close.

Recommended entry point

Builder is $90/month. History Lite adds $50/month for a 30-day retained lookback, making the starting historical setup $140/month.

  • Choose History Lite for recent line movement, monitoring and short-window model tests.
  • Choose History Pro for $150/month when you need up to 365 retained days; with Builder, the total is $240/month.
  • Historical access must be enabled on the account before the endpoint will respond.
Review Builder

Poor fit

Know the limits

The history API is deliberately narrower than a bulk sports-data warehouse.

  • Only retained data inside the account's lookback is queryable.
  • odds-api.net does not currently provide in-play sportsbook odds history.
  • Coverage can differ by event, bookmaker, market and selection.
  • The endpoint does not provide horse form, pedigree or a general results database.

Short answers

Historical Odds API FAQs

Access, lookback, backtesting and data-boundary answers.

How far back does the historical odds API go?

History Lite provides up to 30 retained days. History Pro provides up to 365 retained days. The phrase where retained matters: the endpoint is not a guarantee that every event, bookmaker, market and selection exists for the full window.

Is historical odds access included with Starter?

No. Historical access requires an eligible paid base plan and a separately enabled history add-on. The recommended starting setup is Builder plus History Lite.

Can I use historical odds for backtesting?

Yes. Use bounded UTC windows and a stable selection_key, and prevent prices recorded after the model's decision time from entering the test.

Does the history API include in-play odds?

No. odds-api.net currently provides retained pre-match sportsbook price history, not in-play sportsbook odds history.

Can I stream line movement?

Yes. Supported history consumers can use SSE or the matching WebSocket route. Begin with a snapshot and reconnect from the latest continuation point.

Is this a bulk downloadable odds archive?

No. Query history by event, selection and bounded time window. Contact support if a research project requires a different export shape or retention agreement.