Real-time Pinnacle odds API

Catch the drop the instant it happens.

Live Pinnacle odds and drop alerts, pushed to your bot in milliseconds over REST, SSE, and WebSocket. When the sharpest line in the world moves, you're on the soft book before it follows.

Event-driven push Sharp reference price Live + prematch No-vig prices
pinnapi · live terminal LIVE
Pinnacle detect your bot
Pinnacle detect your bot
18 ms frame → your bot
drop stream0 caught today
Illustrative live demo · only sub-1% moves shown here · your key streams the real Pinnacle drops
The window

Every drop opens a window.
We put you at the front of it.

When Pinnacle moves, the rest of the market has to follow — but it doesn't follow instantly. The gap between the sharp move and the soft correction is where the value lives. Your only job is to be inside it first.

the arbitrage window — yours
Pinnacle line breakst+0 ms your bot knowst+~22 ms · pinnapi polling APIs noticet+0.5–1 s soft books correctt+seconds…

Arbing has two enemies: getting limited, and being slow. We can't fix the first. We erase the second.

timeline illustrative · latency band is measured
Live right now

Today on pinnapi

Real numbers straight from the running scraper — drops we've caught today and what's on the board this second. Updates live.

drops caught today
live events
prematch events
Drops today by sport
Loading live data…
Why milliseconds matter

On Pinnacle, the price is gone in milliseconds.

Pinnacle is the sharpest book in the world — when its line breaks, the soft books haven't moved yet, and that gap is your bet. Most odds APIs poll on a timer, so you only hear about the move on their next request — by then the window is closing. We push the instant the line breaks, so you're on it while it's still open.

pinnapi · push
polling API · 1s
You caught it earlier
~536ms How far a 1-second poller trails the market — plenty of time for the sharp price to move and the soft books to start following.
First to the move Pinnacle is the reference price. We push the instant it breaks, so you're on the soft book before the line corrects.
Latency is the edge A slower feed means a worse number — or no bet, because the gap already closed. Milliseconds are the margin.
10
sports covered
2
pipelines · live + prematch
3
delivery modes · REST · SSE · WS
0
polling — fully event-driven
Built for steam

Everything you need to trade on Pinnacle moves.

One feed for sharp prices. We watch every market on Pinnacle and surface the move the moment the line breaks.

Event-driven drop detection

No tick timers, no polling. Every price change is checked the instant it lands — MQTT push for in-play, version-diffed REST for prematch — so an alert fires the moment a market actually moves.

Live + prematch

In-play push and pre-game polling run side by side, sharing the same detection engine.

No-vig fair prices

Margin-stripped probabilities and handicap-aware comparison on every leg.

Drop-in compatible

Same response schema as the engine you already run. Swap the base URL and go.

Stream it your way

REST kit endpoints for snapshots, a Server-Sent-Events stream for drop alerts, and a raw WebSocket passthrough of every Pinnacle frame. Pick the surface that fits your stack — they all read from the same store.

How it works

From line break to your bot in milliseconds.

1

Grab your key

Sign up, get an API key instantly, and authenticate every request with a single header.

2

We watch the board

We hold a live mirror of every Pinnacle market — in-play and prematch — and diff every update as it arrives.

3

You get the drop

The instant a price falls past your threshold, the alert hits your SSE stream, WebSocket, or REST poll.

Developer-first

A few lines to live odds.

Plain HTTP and a token. No SDK lock-in, no ceremony.

snapshot · REST
# live markets for soccer
curl https://pinnapi.com/kit/v1/markets \
  -H "x-portal-apikey: $KEY" \
  --data-urlencode "sport_id=1" \
  --data-urlencode "event_type=live"

# → array of events with all markets + periods
drop alert · SSE
const es = new EventSource(
  "https://pinnapi.com/odds-drop?token=$TOKEN");

es.onmessage = (e) => {
  const drops = JSON.parse(e.data);
  // { market, from_price, to_price, drop_pct… }
  drops.forEach(bet => trade(bet));
};
SoccerTennisBasketballHockeyFootballBaseballRugbyEsportsGolfSoccerTennisBasketballHockeyFootballBaseballRugbyEsportsGolf
Pricing

Start free. Scale when the edge pays for it.

Pick a billing term — quarterly and semi-annual save up to 24%. The Raw WebSocket feed is available as an add-on on any paid plan.

Drops
SSE drop alerts
$99/mo
  • /odds-drop SSE stream
  • Live + prematch drops
  • Custom drop thresholds
REST
Raw REST access
$99/mo
  • 10 requests / second
  • Live + prematch snapshots
  • All 10 sports
Most popular
Edge
REST speed + alerts
$149/mo
  • 10 requests / second
  • SSE drops included
  • WebSocket add-on ready
Scale
High-volume desks
$229/mo
  • 30 requests / second
  • SSE drops included
  • Priority throughput
Free trial · no card

See the data move before you pay a cent.

Skip the card, skip the email verification, skip the sales call. Your API key is your login — generate one, paste it into your code, and you're pulling live Pinnacle odds across all 10 sports in under a minute. 100 requests a day, free for as long as you're building.

No card now, no auto-charge later. Upgrade only when the edge pays for it.
How we compare

Built for one job: catching Pinnacle moves first.

Most odds APIs aggregate dozens of books or make you poll for changes. pinnapi is Pinnacle-native, pushes the instant a line breaks, and ships drop detection plus a raw WebSocket out of the box.

pinnapi The Odds API OddsJam OpticOdds BetsAPI
Pinnacle as the source✓ Core focus1 of many books1 of many1 of many1 of many
Real-time push (SSE / WebSocket)REST pollingREST
Latency (frame → you)~15–40 msPoll-bound (s)~200 ms+~200 ms+Poll-bound (s)
Built-in drop / steam detectionDIYRaw feed
Raw Pinnacle WS passthrough✓ byte-for-byte
No-vig fair prices
PricingFlat $99–229/moUsage creditsEnterpriseEnterpriseLow monthly
Crypto billing

Comparison reflects publicly documented features as of 2026; third-party offerings may differ or change. Latency figures for third-party feeds are our own measurements and may vary by region and plan. All product names and trademarks belong to their respective owners — pinnapi is independent and not affiliated with any listed provider or with Pinnacle.

FAQ

Questions, answered straight.

Is pinnapi an alternative to the closed Pinnacle API?

Yes. Pinnacle closed its public API on July 23, 2025. pinnapi is an independent drop-in replacement — the same familiar response shape, served from our own real-time feed. Swap the base URL and API key in your existing client code; no Pinnacle account needed.

How fast are the odds?

Pushed, not polled: roughly 15–40 ms from a Pinnacle price change to your bot over SSE or WebSocket. Polled aggregators are typically seconds stale.

How do odds-drop alerts work?

Open one SSE connection to /odds-drop with your key and a min_drop threshold — every market that falls past it is pushed the instant it happens. A prematch variant runs at /odds-drop-prematch. Full details in the docs.

Is there a free trial?

Yes — your API key is your login. Generate one in seconds with no card and no Pinnacle account; the trial includes 100 REST requests per day. Paid plans start at $99/mo.

Which sports and feeds are covered?

Live and prematch pipelines across 10+ sports — soccer, tennis, basketball, hockey, football, baseball, rugby, MMA, boxing, esports and golf — with moneyline, spreads, totals and team totals on every period.

Is pinnapi affiliated with Pinnacle?

No. pinnapi is an independent service and is not affiliated with or endorsed by Pinnacle.

Stop refreshing. Start catching.

Spin up a key and have live Pinnacle drops streaming into your stack in minutes.