HomeBlog › The Pinnacle API Closed. Here's How to Still Get Pinnacle Odds in 2026
API & Data

The Pinnacle API Closed. Here's How to Still Get Pinnacle Odds in 2026

The Pinnacle API Closed. Here's How to Still Get Pinnacle Odds in 2026

Pinnacle shut its public API on 23 July 2025. This is a practical look at what actually replaced it, with the trade-offs of each path and a working migration.

The Pinnacle API Closed. Here's How to Still Get Pinnacle Odds in 2026

If you built anything on top of Pinnacle's public API, you already know the date: 23 July 2025, the morning the official endpoints went dark. For a lot of people that quietly broke a bot, a dashboard, or a model that had been running fine for years.

I work on a replacement, so take the framing with the appropriate grain of salt — there's a disclosure note at the top. What I want to do here is less of a pitch and more of a map: why Pinnacle's prices are worth chasing at all, what your real options are now, and how to migrate if you decide to.

Why Pinnacle prices are still worth the trouble

Pinnacle runs a low-margin, high-limit book. They make money on volume and on being right, not on shading prices against casual bettors. Two consequences matter for anyone building with odds data:

That's the whole reason this is annoying enough to solve. A slower, softer book's API would be easy to get — it just wouldn't tell you much.

What changed, and what your options actually are

Since the shutdown — why it happened is a story of its own, and a useful predictor of what stays reliable — the landscape sorts into three buckets:

  1. Scrape it yourself. Technically possible, operationally miserable. You inherit anti-bot defenses, rotating markets, and the job of staying live during exactly the moments — kickoff, red cards, goals — when the data matters most and the site is hardest to read.
  2. Use a broad aggregator (e.g. The Odds API, OddsJam-style feeds). You get many books in one call, usually over REST polling. Great for coverage, weaker for speed and for Pinnacle-specific fidelity — though the free tiers are genuinely useful for research-grade work.
  3. Use a Pinnacle-focused feed that pushes updates as they happen. Narrower scope, but built for the latency-sensitive case.

There's no universally correct answer here. The right one depends almost entirely on whether you're optimizing for coverage or for speed.

The core problem with polling

Most aggregators hand you a REST endpoint you call on a timer. The hidden cost is staleness. If you poll every two seconds, your worst-case view of the market is two seconds old — plus the round trip. During a settled prematch market that's fine. During a live match, two seconds is several lifetimes; the move you're trying to catch has already happened and the soft books have followed.

Push delivery (Server-Sent Events or WebSocket) flips that: the server sends you the change the instant it sees it, so your latency is dominated by network transit rather than by your polling interval.

How pinnapi fits — and how fast it actually is

pinnapi is the Pinnacle-focused, push-first option in bucket three. It exposes the same data over REST, SSE, and WebSocket, live and prematch, across 10+ sports.

On speed: we measure roughly 15–40 ms from the moment a price changes upstream to the moment it lands on a connected client, on SSE/WebSocket. I'd rather you not take that on faith — the methodology is simple to reproduce, and your own number will vary by region and plan. If you only remember one thing, make it this: measure it yourself against your real deployment before you trust any vendor's figure, including ours.

A concrete swap

Authentication is an API key in a header. A REST snapshot looks like:

curl -H "x-portal-apikey: $PINNAPI_KEY" \
 "https://pinnapi.com/kit/v1/markets?sport_id=1&event_type=live"

Subscribing to the push stream

const es = new EventSource(`https://pinnapi.com/odds-drop?key=${process.env.PINNAPI_KEY}&min_drop=5`);

es.onmessage = (e) => {
  const payload = JSON.parse(e.data);
  if (payload.type === "connected") return;   // first frame is a handshake
  for (const drop of payload) {                // every frame is an array of drops
    // drop = { sport, home, away, sect, outcome, from_price, to_price, nvp, ... }
    handleDrop(drop);
  }
};

Migration in practice

If you had working Pinnacle code before the shutdown, the migration is mostly mechanical:

  1. Point your market-snapshot calls at the REST endpoint and adjust the response mapping.
  2. Replace your polling loop with an SSE/WebSocket subscription for anything live.
  3. Keep a REST call on hand for recovery — after a disconnect, backfill state with one snapshot rather than replaying the stream.

Realistically this is an afternoon, not a rewrite, because the shape of the data (fixtures → markets → prices) is the same shape you were already handling.

When a generic aggregator is the better call

Being honest about the boundaries:

The case for a Pinnacle-focused push feed is narrow and specific: you care about the sharpest line, and you care about time.

The takeaway

The shutdown didn't kill access to Pinnacle prices; it killed the easy version of it. Pick your replacement based on whether your edge comes from breadth or from speed. If it's speed, push delivery is the part that actually matters, and the number to scrutinize is end-to-end latency measured on your own infrastructure.

FAQ

Is there still a public Pinnacle API? No. Pinnacle closed public access on 23 July 2025. Current access is via third-party feeds — and so is the documentation.

Can I still access Pinnacle odds programmatically in 2026? Yes — through the three buckets above: specialist push feeds, broad aggregators, or scraping (not recommended). The trade-off that decides between them is coverage versus speed.

What's a drop-in replacement for the Pinnacle API? A Pinnacle-focused feed carrying the same fixtures → markets → prices shape, so your old parsing survives. That's the bucket pinnapi sits in — the migration section above is three steps, and it's usually an afternoon.

Do I need a Pinnacle account? No. pinnapi is independent and not affiliated with Pinnacle; your pinnapi key is all you need — every realistic option works account-free.

Can I test before paying? Yes — the free tier is 100 REST requests/day, no card required. Paid plans start at $99/mo.

--- Disclosure: pinnapi is our product. Where another tool fits your use case better, we've said so.

Get real-time Pinnacle odds in your code

Live & prematch markets with sub-second odds-drop alerts. Free trial key in seconds — no card.

Start free trial