Coverage
Pinnacle odds for 13 sports
OddsPush streams Pinnacle's live odds for 13 sports over one WebSocket, with a REST API for the current
book. Each sport has a sport_id: subscribe to the ones you want and you get moneyline, spreads,
totals, team totals and lines by period, depending on the sport, as Pinnacle publishes them.
Pinnacle odds by sport: soccer, tennis, esports and more
The 13 sports are Soccer, Tennis, Basketball, Hockey, American Football, Baseball, Rugby, MMA, Boxing, Volleyball and handball, Esports, Golf and Cricket. Every plan, the free trial included, covers all of them. The id in the
first column is the one you put in sports and read back in data.sport_id.
| sport_id | Sport | Markets | Periods | Live | Pre-match board |
|---|---|---|---|---|---|
| 1 | Soccer | Moneyline, Spread / handicap, Totals, Team totals, By period | Half | Yes | On request |
| 2 | Tennis | Moneyline, Spread / handicap, Totals, Team totals, By period | Set | Yes | On request |
| 3 | Basketball | Moneyline, Spread / handicap, Totals, Team totals, By period | Quarter, half | Yes | On request |
| 4 | Hockey | Moneyline, Spread / handicap, Totals, Team totals, By period | Period | Yes | On request |
| 5 | American Football | Moneyline, Spread / handicap, Totals, Team totals, By period | Quarter, half | Yes | On request |
| 6 | Baseball | Moneyline, Spread / handicap, Totals, Team totals, By period | Innings | Yes | On request |
| 7 | Rugby | Moneyline, Spread / handicap, Totals, By period | Half | Yes | On request |
| 8 | MMA | Moneyline, Totals | — | Yes | On request |
| 9 | Boxing | Moneyline, Totals | — | Yes | On request |
| 10 | Volleyball, handball | Moneyline, Spread / handicap, Totals, Team totals, By period | Set, half | Yes | On request |
| 11 | Esports | Moneyline, Spread / handicap, Totals, Team totals, By period | Map | Yes | On request |
| 12 | Golf | Moneyline | — | Yes | On request |
| 13 | Cricket | Moneyline, Totals | — | Yes | On request |
Use data.sport_id in your code. The number inside topic is Pinnacle's own sport id
and does not match this table.
-
Pinnacle soccer odds are
sport_id1: moneyline, spread / handicap, totals, team totals, plus lines by period (half). -
Pinnacle tennis odds are
sport_id2: moneyline, spread / handicap, totals, team totals, plus lines by period (set). -
Pinnacle esports odds are
sport_id11: moneyline, spread / handicap, totals, team totals, plus lines by period (map).
Live and pre-match Pinnacle odds
Coverage is live markets for 13 sports. The full pre-match board:
on request. Some pre-match prices already travel on the live stream,
on the pre channel.
-
precarries pre-match prices for some upcoming matchups: open markets with versions, likeld. It is not the full pre-match board. -
A snapshot leaves out a pre-match event priced only on
preunless you ask forpre; otherwise it arrives with its first update on your channels. -
Over REST,
GET /v1/membershiplists, per sport id, the pre-match events about to go live.
Odds channels: ld, both, dz, pre and other
An update belongs to one channel, the last segment of its topic:
matchups/reg/sp/29/live/ld is ld, matchups/reg/sp/29/pre is
pre. Any other last segment is other.
| Channel | Is it the price? | What it carries |
|---|---|---|
| ld | Yes | Live delay. The price Pinnacle displays. Source of truth. |
| both | Yes | Both. Displayed prices too, mostly for events that never appear on ld. Read it with ld or you lose whole matches. |
| dz | Volatile | Danger zone. Moments of risk: goal threat, break point, imminent suspension. Keep it in a book of its own. |
| pre | Pre-match | Pre-match. Pre-match prices for some upcoming matchups, as they travel on the live stream: open markets with versions, like ld. Not the full pre-match board. |
| other | No | Other. Any other last segment. Rare. channels never filters these updates out: they reach you whenever their sport or event matches. List other to get their markets in a snapshot. |
Subscribe to one sport
After login, one subscribe picks the sport and the channels. By default it also
brings a snapshot of what it adds, so you get the current state and every change after it. Set
channels, always: without it every channel arrives, dz included.
{"type": "subscribe", "sports": [1], "channels": ["ld", "both"], "snapshot": true}
{"type": "subscribe", "sports": [2], "channels": ["ld", "both"], "snapshot": true}
Subscriptions add up, so send one per sport or list several ids in sports. Over REST, the same
filter is a query parameter:
$ curl -s -H "x-token: $ODDSPUSH_KEY" "https://feed.oddspush.com/v1/events?sport_id=1&channel=ld"
< {"n": 2, "events": [{"event_id": 1638780974, "sport_id": 1, "ld": 3, …}, …]}
Every message, field and close code is in the docs, with full subscribe rules. For a working client, see Pinnacle odds in Python; if you are weighing options, read the Pinnacle API alternative. Paid plans start at $69 a month: see pricing.
All 13 sports, real prices, on your own bot. No card.
Try it free for 7 daysOddsPush is not affiliated with, endorsed by or sponsored by Pinnacle.