Early adopter pricing: lock in your rate before we scale. Start free today

Real-Time Odds. Built-In Edge.

47M+ odds daily. +EV and arbitrage across 40+ books. One call, one format.

No credit card required

Odds preview
API snapshot
$ curl -N "https://api.sharpapi.io/api/v1/stream?channel=odds&league=NBA"
event: odds:update
{"game":"Philadelphia 76ers @ New York Knicks","market":"moneyline",
"fanduel":+166,"betmgm":+150,"caesars":+162}
event: ev:detected
{"best":"fanduel","odds":+166,"fair":+162,"ev":"+1.5%"}

Illustrative output. Full schema in the docs.

Sportsbook coverage · 40+ books, one API

Explore coverage
Odds Daily
47M+
Avg Response
89ms
Books Covered
40+
Uptime
99.9%

Ship Faster. Bet Smarter.

Stream market changes, compare prices, and surface opportunities without maintaining a separate pipeline for every sportsbook.

Illustrative API outputs

SSE Streaming

Follow price changes and market suspensions with odds:update and odds:locked events. Keep frozen quotes out of your live view.

+EV Calculations

Fair probabilities, estimated edge, and confidence scores in the same response. Rank opportunities without building your own EV engine.

Arb Detection

Opposing prices, calculated margins, and stake splits across books. The fields you need to build an arbitrage scanner.

40+ Sportsbooks

Shared event, market, and selection fields across books. Build once, then expand your coverage as your plan grows.

No-Vig Fair Odds

Get both sides of a two-way market with the vig removed, plus the sharp reference and method behind the calculation.

TypeScript-First

Typed responses from the official SDK. Work with odds, events, and opportunities using the same client.

What will you build first?

Pick a job, copy a working request, and see the fields your app can use.

Compare the same selection across your included books and return the best available price.

Every plan · Free includes DraftKings + FanDuel

Endpoint docs

Request Node.js

line-shopping.mjs
const key = process.env.SHARP_API_KEY;
if (!key) throw new Error('Set SHARP_API_KEY');

const url = new URL('/api/v1/odds/best',
  'https://api.sharpapi.io');
url.search = 'league=nba&market=moneyline&limit=5';

const res = await fetch(url, {
  headers: { 'X-API-Key': key },
});
if (!res.ok) throw new Error(`SharpAPI: ${res.status}`);
const { data } = await res.json();

console.table(data.map(row => ({
  selection: row.selection,
  book: row.best_book,
  american: row.best_odds.american,
})));

Response excerpt Illustrative data

response.json
{
  "data": [{
    "event_name": "Celtics @ Lakers",
    "market_type": "moneyline",
    "selection": "Lakers",
    "best_book": "draftkings",
    "best_odds": {
      "american": 110,
      "decimal": 2.1
    },
    "all_books": [
      { "book": "draftkings",
        "odds": { "american": 110 } },
      { "book": "fanduel",
        "odds": { "american": 105 } }
    ]
  }]
}

Node.js · Set SHARP_API_KEY before running.

Real-Time Odds Pipeline

SharpAPI aggregates odds from all major sportsbooks, normalizes the data, calculates EV using sharp references, and delivers it to your app over REST or SSE streaming.
DK
FD
PIN
MGM
SharpAPI
REST API
Your App
Push delivery
SSE streaming
No-vig calculations
Kelly criterion
1

Ingest

Real-time feeds from 40+ sportsbooks

2

Process

Normalize, calculate EV, detect arbs

3

Deliver

Streamed over SSE or fetched over REST

Simple pricing for the Sports Odds API

Start on the free tier with your own API key. Scale to real-time betting data, middles, and +EV detection as you grow. No hidden fees, no long-term contracts.

Free

$0
/ month
Explore the API
Pre-match in practice: the data delay rules out live in-play

Frequently Asked Questions

Everything you need to know about SharpAPI

Ready to Build?

Start free. Scale when you're ready. No credit card required.

No credit card required