Sports odds & data API

Every game.
Every market.
One API.

Stop scraping. Stop normalizing. Stop calculating vig by hand. One game ID returns the score, dozens of books, exchanges, and edge — already joined.

REST · realtime · MCP Free to start Same game ID everywhere
Used to power
01 · Watch the game

Score and clock update

The match is live — state stays attached to every price.

02 · Prices move

Books and exchanges reprice

Sharp, soft books, Kalshi, and Polymarket on the same game ID.

03 · Edge appears

Signals re-rank in real time

+EV climbs or falls as the fair line and offered price diverge.

What’s in the API

One contract.
A full sports stack.

Prices, edges, and game state — over REST, realtime, or MCP. Same auth. Same game IDs wherever you call.

What you ship with. How we join books, exchanges, and scores is next — so you do not have to.

35+ booksSharp, soft, regional · + exchanges
ML · spread · totalProps where the sport covers them
Fair · +EV · gapsComputed fields, not DIY math
REST · SSE · MCPSame IDs across every transport
01 · Markets

Get the prices

Multi-venue quotes — sportsbooks and prediction markets.

Live quotes
  • Moneyline / spread / total /markets
  • Per-event market book /events/…/markets
  • Contracts · outcomes contracts
  • Best price across venues best
  • Kalshi · Polymarket exchanges
History
  • Line movement /history
  • Closing lines · CLV closing-lines
  • Venue comparison comparison
  • Realtime quote stream SSE
RESTSSEbooksexchangesCLV
02 · Signals

Find the edge

Fair value and opportunity fields already on the payload.

Value
  • No-vig / fair probability fair
  • Ranked +EV board /signals
  • Edge vs sharp / consensus ev_pct
  • Signal export pull /signals/export
Opportunities
  • Middles windows middle
  • Arb candidates arb
  • Book ↔ exchange gaps gap_pp
  • Moved / opened events signal.moved
no-vig+EVmiddlesarbgaps
03 · Sports

Keep the game

Schedule, live state, and deep event resources on stable IDs.

Core
  • Schedule · results /events
  • Live score · clock state
  • Sports · competitions /sports
  • Participants · search /search
  • Standings /standings
On the event
  • Timeline · lineups resources
  • Statistics · shots /statistics
  • Momentum · H2H /momentum
  • Stable game ID evt_…
eventsliveMCPresourcesstandings
Transports REST · SSE · MCP Auth one key across surfaces IDs shared evt_… / market keys Explore Games · Signal Lab · Coverage

Under the contract

Scattered feeds become one game.

Books, exchanges, and sports state lock onto one evt_…. Fair, +EV, and gaps are calculated there — then delivered through the API above. You don’t rebuild ingest, matching, or vig math.

Feeds in
Pinnacle DraftKings FanDuel BetMGM Caesars Bet365 Bovada BetRivers PointsBet Unibet William Hill 1xBet Kalshi Polymarket +20 books Live score Schedule Lineups Stats Line history
One game matching…
EPL · moneyline
Arsenal vs Liverpool
2–1Live
24Books on
46¢Polymarket
45.1%Fair
4.8ppGap
Edge locked Same ID · books + exchange + score
+4.8%
Then deliver
Normalized quotes Fair / no-vig +EV · middles Book↔PM gaps Score on same ID SSE push
ingest · Venues and sports state arriving… 01 ingest

Why the join matters

Stop stitching three vendors into one screen.

Most stacks split sports data, books, and prediction markets. Scoreline already puts them on one game — so your product doesn’t spend weeks remapping IDs.

Without Scoreline
Sports APIevt_score_991 Odds APImkt_dk_4421 Exchange feedpm_ars_liv
With Scoreline
Live score · 2–1sports 24 books · Kalshi · Polymarketmarkets +EV · +4.8%signals

One ID · evt_ars_liv_0426

Ship a match card, odds board, or agent from one game object — score, dozens of books, exchanges, and edge fields already aligned.

One request for the whole screen
Dozens of books already lined up
Edge fields on the same object
joined · Score + 24 books + exchanges on evt_ars_liv_0426 evt_…

Live signals

When the line moves, the edge is already ranked.

+EV, middles, and book↔exchange gaps aren’t homework — they’re fields that update as quotes tick, then the board re-ranks.

listening · Waiting for the next quote tick…
#1 Thunder · +8.4%
Fair value computed across sharp / consensus
Rows climb or fall as edge changes
Same shape over REST and realtime push
Signal board Demo · numbers move on purpose
SelectionVenueOddsEVAge
Thunder ML Kalshi +223 +8.4% 4s
Knicks -4.5 Polymarket +113 +5.1% 7s
Arsenal ML Pinnacle +118 +4.8% 3s
Over 218.5 DraftKings -110 +3.7% 9s
ARS book vs PM Gap 6.0pp 6.0 pp 5s
quote.updated · Pinnacle ARS 2.18 72ms

+EV = offered price vs no-vig fair. When it ticks, the row climbs or falls. Observed condition — not betting advice.

Developers

First call in under a minute.

One event ID returns the score, dozens of books, and fair/+EV already joined. Same contract streams live — and works for agents.

01
Get a key Free sandbox · no card
02
First call One event · whole stack
03
Stream SSE quote + signal ticks
04
Ship / agent Same IDs over MCP
Pull · One request → an odds board you can ship
Story
GET/v1/events/evt_ars_liv_0426

          
Ship this from one responseodds board
EPL · moneyline · evt_ars_liv_0426
Arsenal vs Liverpool 2–1
67′ · 2H · 24 books
Odds board
Implied prob · books · fair · exchanges
Pinnacle45.9%
DraftKings47.2%
Fair45.1%
Polymarket46¢
Kalshi44¢
Book ↔ PM gap6.0 pp
+EV on Arsenal+4.8%
+EV over the last minute · live ticks
+7.2%was +4.8%
quote.updatedPin 2.18 → 2.22
signal.moved+EV +4.8% → +7.2%
gap.widened6.0 → 7.4 pp
Same evt_… · board re-ranked +4.8% → +7.2%
Ranked edges · same IDs an agent can call
#1
Arsenal MLevt_ars_liv_0426
Pin +128 +4.8%
#2
LAL @ DENevt_lal_den_0411
DK -110 +3.1%
#3
Over 218.5evt_bos_mia_0402
FanDuel +2.4%
get_event → same score · books · fair · ev_pct · gap_pp
No second schema for agents.

One GET paints an odds board — books, fair, exchanges, and edge.

DX one key · OpenAPI · MCP Same IDs REST · SSE · agents Works in curl · JS · Python

Coverage

Dozens of books. Real sports depth.

Sharp references, major retail, regional books, and prediction markets — joined when the game overlaps. Catalog is the source of truth per key.

35+Sportsbooks where an event is covered
2Prediction markets · Kalshi · Polymarket
LiveScore, clock, lineups, stats on the same ID
Books & exchanges
Pinnacle sharp DraftKings FanDuel BetMGM Caesars Bet365 Bovada BetRivers PointsBet Unibet William Hill 1xBet Betway Hard Rock ESPN BET Fanatics Kalshi exch Polymarket exch + more in catalog
Sports shape
NFL NBA MLB NHL NCAAF NCAAB EPL La Liga Serie A Bundesliga Ligue 1 UCL MLS ATP / WTA + more leagues

Depth varies by sport and venue. Check the coverage page or catalog for what’s live on your key — we don’t invent book counts here.

Pricing

Free to build. Paid to ship.

Same endpoints on every tier. Pay for request volume — not a second markets product. From $15/mo when you go live.

Free
$0 / mo
  • Build and evaluate
  • 100 req/day
  • 7 days history
Start free
Starter
$15 / mo
  • Small production apps
  • 7,500 req/day
  • 31 days history
Choose Starter
Scale
$149 / mo
  • High-volume products
  • 300,000 req/day
  • 7320 days history
Choose Scale

See full plan limits →

Get started

Stop stitching vendors. Start shipping.

One API key for scores, sportsbooks, Kalshi & Polymarket, and edge — free to start, no card required.

No card · REST · realtime · MCP · same game IDs