Coverage
The books that price risk first. InferSports normalizes them into one schema: 2 sports, 3 market types, full-time and half-time.
Seven books, zero filler.
A 13-feed upstream deduped to seven distinct, decision-grade prices: six Asian books plus Pinnacle (sharp). Pass each book's key to ?bookmakers= to filter any response down to the books you trust.
crownsbobetmacaum8betpinnaclenova88hkjcMarkets & periods.
Three market types, both periods, every line. We keep all lines — no x.5 filtering — and every price is normalized to decimal, convertible to any of six formats at the edge.
market_type=1x2Home / draw / away (European / moneyline).
market_type=asian_handicapQuarter, half & integer lines — split into components with win/half-win/push logic.
market_type=totalsOver / under the goal or points line.
Asian handicap lines arrive split into handicap_components (e.g. -0.25 → [0.0, -0.5]) so win / half-win / push resolution never needs client-side math.
Two sports.
Football and basketball, both on the identical odds shape. Filter with ?sport= and the book's key.
Football
football1×2, Asian handicap and totals across hundreds of leagues — full-time and half-time, live and upcoming.
Basketball
basketballHandicap and totals on the same normalized schema, with half-time markets where the books price them.
Coverage is data, not a static page.
Books are a fixed list. GET /v1/bookmakers returns each one with a stable Sqids id, a public key, and a class of sharp or asian.
Leagues are dynamic: hundreds of them, shifting with the live slate, so we never hardcode a list. Pull the current set from GET /v1/leagues.
Roughly hundreds of live and upcoming matches and tens of thousands of live quotes at any moment. Every event also carries its opening line paired to the current line — open vs now, no history database required.
$ curl -H "Authorization: Bearer isk_…" \ https://api.infersports.dev/v1/bookmakers { "data": [ { "id": "bk_9Qf", "key": "pinnacle", "name": "Pinnacle", "class": "sharp" }, { "id": "bk_1Az", "key": "crown", "name": "Crown", "class": "asian" } /* … all seven books … */ ] } # leagues are dynamic — list the live set: $ curl https://api.infersports.dev/v1/leagues
Pull it from the docs.
Every book, market, and period is documented with live response shapes. Grab a free key and pull the coverage straight into your code.