COVERAGE

Coverage

The books that price risk first. InferSports normalizes them into one schema: 2 sports, 3 market types, full-time and half-time.

2
sports
3
market types
FT + HT
periods
6
odds formats
Bookmakers

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.

sharpasian
Crown
crown
asian
Sbobet
sbobet
asian
Macau
macau
asian
M8bet
m8bet
asian
Pinnacle
pinnacle
sharp
Nova88
nova88
asian
HKJC
hkjc
asian
Markets

Markets & 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
full-time
half-time
1×2
market_type=1x2

Home / draw / away (European / moneyline).

Asian handicap
market_type=asian_handicap

Quarter, half & integer lines — split into components with win/half-win/push logic.

Totals
market_type=totals

Over / 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.

Sports

Two sports.

Football and basketball, both on the identical odds shape. Filter with ?sport= and the book's key.

sport

Football

football

1×2, Asian handicap and totals across hundreds of leagues — full-time and half-time, live and upcoming.

sport

Basketball

basketball

Handicap and totals on the same normalized schema, with half-time markets where the books price them.

From the API

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.

bash — infersports
$ 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.