OddsPush API Review 2026
OddsPush streams Pinnacle's live prices to your bot over one WebSocket, with a REST API for the current book. Plans start at $69 a month, paid in crypto, after a 7-day free trial.
OddsPush at a Glance
Streaming from: REST + WebSocket, $138/mo (the 7-day trial includes 1 WebSocket connection)
Green = available ยท amber = unverified or varies by plan ยท crossed out = not available. Pricing: ๐ฒ โ $20/mo up to ๐ฒ๐ฒ๐ฒ๐ฒ๐ฒ = $1,000+/mo. From our directory research.
What OddsPush Is
OddsPush is a live Pinnacle odds feed built for trading bots. Your client opens one WebSocket, and OddsPush pushes every Pinnacle price change down it. A small REST API returns the current book when you need to look something up. Everything comes from one book, so there is no aggregation layer to reason about.
The site puts the delay at about 30 ms from Pinnacle publishing a price to a bot hosted in Europe. That is OddsPush's own figure, and we haven't measured it yet. The service runs in Western Europe, so a bot farther away adds its own network time. You don't need a Pinnacle account or Pinnacle API access. OddsPush says it isn't affiliated with, endorsed by or sponsored by Pinnacle, and it describes itself as a relay that passes prices on as received.
The site went up in November 2026, so the public track record is short. We wrote this review from the docs and haven't tested a key yet.
Coverage and Markets
Every plan, the trial included, covers the same 13 sports: soccer, tennis, basketball, hockey, American football, baseball, rugby, MMA, boxing, volleyball and handball, esports, golf and cricket. Each one has a sport_id that you subscribe to.
Market depth changes by sport:
- Soccer, tennis, basketball, hockey, American football, baseball, volleyball, handball and esports: moneyline, spreads, totals, team totals and lines by period (halves, sets, quarters, innings or maps, depending on the sport).
- Rugby: moneyline, spreads, totals and lines by half.
- MMA, boxing and cricket: moneyline and totals.
- Golf: moneyline.
Prices arrive as American odds, the way Pinnacle quotes them. The feed centers on live markets. Some pre-match prices travel on the stream's pre channel, and OddsPush offers the full pre-match board on request. The docs don't mention closing lines or a price archive, so pair it with a historical odds source if you backtest.
The WebSocket Stream and Channels
The stream lives at wss://feed.oddspush.com/v1/stream. You send a login message with your key within 15 seconds, then a subscribe message with the sports you want. The server answers with a snapshot of the current book and then every change on top of it, so a bot that connects mid-game starts with full prices.
Prices travel on named channels:
ld: the displayed price and the source of truth.both: displayed prices, often for events that aren't onld.dz: volatile "danger zone" moments, which the docs tell you to keep in a separate book.pre: pre-match prices for some upcoming matchups.
A streaming plan gets one WebSocket connection, and a key works from one IP address at a time. A new IP takes over and closes the old connection, so run the client from one server. The docs also ask you to turn off per-message compression and to host near Ireland for the lowest delay. For more on push feeds and polling, see our live odds guide.
OddsPush Pricing and the Free Trial
There are two plans, and every sport comes with both:
- REST: $69 a month, with no stream.
- REST + WebSocket: $138 a month, with one stream connection.
Prepaying longer costs less. Three months is $186 on REST or $373 on REST + WebSocket, 10% off. Six months is $331 or $662, 20% off.
Payment is prepaid crypto (USDC, USDT, BTC and others) through an invoice from your account. There's no card option and no auto-renewal, and fees are non-refundable. That makes the trial the right first step: seven days of REST and WebSocket with no card, one per person. OddsPush switches it on by hand after you message @oddspush on Telegram.
Getting an API Key
Sign up on the OddsPush site with an email address, then open the link that arrives. It works once, for 30 minutes, and the page shows your key. Keys start with opk_ and run to 47 characters. There's one key per account, and it also logs you in to the account page.
The key does nothing until a trial or plan is active. To start the 7-day trial, message @oddspush on Telegram with your account email, and OddsPush switches it on by hand. The seven days count from then, and you don't need a card (checked November 2026). REST calls send the key in the x-token header. The WebSocket takes it in the first login message.
A First Request in Python
This sample calls GET /v1/events for soccer (sport_id 1) on the ld channel. The answer holds a count and one row per event, with the open market counts for each channel. It comes from the docs, checked November 2026, and we haven't run it, because we don't hold a key yet.
import os
import requests
BASE = "https://feed.oddspush.com/v1"
KEY = os.environ["ODDSPUSH_API_KEY"]
resp = requests.get(
f"{BASE}/events",
params={"sport_id": 1, "channel": "ld"},
headers={"x-token": KEY},
timeout=10,
)
resp.raise_for_status()
data = resp.json()
print(data["n"], "events")
for event in data["events"][:5]:
print(event["event_id"], event["sport_id"], event["markets"])
Run it from the same machine as any open stream, because a request from a new IP takes over the key. For prices, call /v1/events/{event_id} and read merged, the price to show.
Rate Limits, Docs and SDKs
REST calls are rate limited per account, as a burst and then a steady rate per minute, but the docs publish no number. Past the limit you get HTTP 429 with rate_limited and a retry-after header that gives the seconds to wait. The stream's limits are public. The trial allows 1 connection, 6 snapshots and 200 MB of snapshots an hour, and 6 reconnects a minute. REST + WebSocket doubles those to 12 snapshots, 400 MB and 12 reconnects, still on 1 connection.
There's no official SDK. The docs include reference clients in Python and Node.js, and the integration guide puts the whole protocol in one Markdown file for coding agents. We found no changelog or status page, but GET /v1/health needs no key and returns {"ok": true} while the feed flows. Support runs through email and Telegram (@oddspush).
Who OddsPush Is For
OddsPush fits one job: a bot that has to react to Pinnacle's live prices as they move.
- In-play trading bots that keep a live price book and act on each change.
- Sharp-line models that use Pinnacle as the reference price during a game.
- Crypto-first teams that like prepaid plans with no card and no renewal.
The terms cover personal use and your own internal operations. They bar republishing the data on a website, app or API, so a product for third parties needs a different feed. If you want prices from several books, pair OddsPush with an aggregator from the API directory.
Verdict
For a feed this new, the documentation is a pleasant surprise. The integration guide covers the full protocol, reconnection rules and close codes, with reference clients in Python and Node.js. The pricing fits on one line, and every sport comes with every plan.
The 30 ms figure is still OddsPush's own, and a week of real use will tell you more than any spec sheet. The trial costs nothing, so start one and time the stream from your own server before you pay.
Last updated: ยท How providers get listed
Frequently Asked Questions
OddsPush Alternatives
Similar providers from the directory worth shortlisting alongside OddsPush.
Want live Pinnacle prices in your bot?
The 7-day trial covers REST and WebSocket with no card. Connect a client, watch the stream, and time the delay from your own server before you pay.
Are You the Team Behind OddsPush?
Show developers you're independently listed on SportsAPIs.dev. Copy this badge onto your site. It links straight back to this profile.