Market keys
Market catalogue
GET /v1/markets lists the supported market keys and periods. Use its optional query parameter to discover coverage for one sport:
| Parameter | Default | Meaning |
|---|---|---|
sport | All sports | A sport key such as nfl, soccer, epl or tennis. Returns only that sport's markets and the bookmakers that carry each market for that sport. |
For example, GET /v1/markets?sport=soccer returns soccer markets with sports: ["soccer"] and their soccer bookmakers. A soccer league key such as epl selects soccer-wide coverage; a tennis tournament key selects tennis-wide coverage. Coverage describes supported markets, not prices available on a particular fixture. An unknown sport key returns 404 UNKNOWN_SPORT. Omit sport for the union across all sports.
These worked examples illustrate a full-game market, a period market and a prop; they are not a complete catalog.
Worked examples
| Key | Period | Description |
|---|---|---|
h2h | full game | Two-way match winner; soccer includes Draw. |
h2h_3_way | full game | Three-way match result including Draw, outside soccer. |
h2h_3_way | reg | Hockey regulation-time result including Draw. |
spreads | 1h | Point spread, first half. |
totals | f5 | Total runs, first 5 innings (baseball only). |
player_pass_yds | full game | Player passing yards. |
Outside soccer, moneylines with a separately priced Draw use h2h_3_way; two-way prices use h2h. Soccer keeps its standard result including Draw under h2h. NHL regulation-time results use h2h_3_way with period: reg. Ask for markets=h2h,h2h_3_way to receive both contracts, and choose periods separately, for example periods=1q. The default markets remain h2h,spreads,totals and exclude three-way results outside soccer.
Periods
A key is always the market family alone (h2h, spreads, totals, player_pass_yds, ...); it never carries a period. A period market carries a separate period field instead: 1h/2h (halves), 1q through 4q (quarters), 1p through 3p (hockey periods), f5 (baseball, first 5 innings), 1i (baseball, first inning), 1s through 5s (tennis sets), or reg (hockey regulation time). A full-game market has no period field at all.
Ask for periods with the periods request parameter, separately from markets: omit it for the full game only, periods=1h,1q for just those periods, periods=full,1h for the full game plus the first half (full is accepted on input only), or periods=all for everything. An old suffixed key (totals_f5) or an unknown period is rejected with 422 INVALID_MARKET naming the new spelling.
For CS2, League of Legends, Dota 2 and Valorant keys, map periods and worked requests, see the esports guide.