Walking raw
Paging the raw board, cursor expiry, starting again and following changes with updatedSince.
Also as Markdown.
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, and is bound to no account. An expired cursor is 400 with the message cursor expired: start again from the first page. Do exactly that.
Duplicates and misses
A cursor resumes strictly after the last event it saw, so an event that leaves the board 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 venues whose last_update is at or after it. A page pays its share of the query's price, so a whole walk pays the query's price, and a recent updatedSince pays a reduced share (the recent rule in /v2/pricing).
Every statement here follows the published contract. The API reference has the full detail.