Changelog

Changes to the API that affect what your code reads, newest first.

October 2026: odds are grouped by market

GET /v1/odds, GET /v1/events/{event_id}/odds and the odds stream now group prices by market. Each event has markets, each market its outcomes, and each outcome its prices: one per bookmaker, best first. Every market and outcome appears once, however many bookmakers quote it, so responses are roughly a third to nearly half smaller.

What moved:

BeforeNow
event.bookmakers[].markets[]event.markets[]
outcome.decimal_odds, implied_probability, available, bookmaker, observed_atthe same fields on each entry of outcome.prices
outcome.alternatemarket.alternate
bookmaker name in each responsebookmaker keys; names from GET /v1/bookmakers

Ids, keys, filters, the data, meta and links envelope and usage are unchanged: one object per event plus one per bookmaker price.

To keep the previous grouping, add group_by=bookmaker to the request. It returns exactly the earlier shape. See Reading prices.

Need help?FAQ · Email support

Search across the SockOdds documentation and catalogue.