DocsGuidesView as Markdown

Paging through raw odds

Page through raw odds with a cursor, handle expiry, and fetch only what changed.

Pages and the cursor

GET /v2/odds/raw returns one page of up to 250 events (limit sets fewer), ordered by kick-off then event id. Follow meta.next_cursor until it is null. meta.total is the events matching the query across all pages. Raw is served gzip only.

When a cursor expires

A cursor expires 300 s after it was issued. An expired cursor is 400 with the message cursor expired: start again from the first page.

Duplicates and misses

A cursor resumes strictly after the last event it saw, so an event that leaves the feed between pages never restarts the walk. An event whose kick-off moves across the cursor during a walk can appear twice or be missed: dedupe by event id, and take a missed event on the next walk.

Following changes

Walk again with updatedSince set to the start of your previous walk, as YYYY-MM-DDTHH:MM:SSZ. It keeps the bookmakers whose last_update is at or after it. Each page costs its share of the query's price, so a full walk costs the price once, and a recent updatedSince costs less (the recent rule in /v2/pricing).

Each-way terms on winner markets

Since 4 November 2026, a raw winner market sold each-way, in golf, horse racing or greyhound racing, carries the venue's each-way terms in three fields. They come only with those terms: a win-only market, and every other market, has none of them.

  • places: the places paid
  • place_fraction: the place terms as a fraction of the win odds (1/5 is 0.2)
  • extra_place: true when the venue pays more places on the market than its standard terms for the event

One market per set of terms

A bookmaker's other each-way terms for the same event are a market of their own, outright_winner_ew_<places>: outright_winner_ew_10 pays ten places. outright_each_way is an exchange's own each-way market. These markets and the three fields are raw only: the each-way and extra-place boards are unchanged, and stay horse racing only.

Keyless GET /v2/coverage lists every raw market key in markets.raw, these included.

From the blog

Every parameter: API reference.