SSE Streaming
Follow price changes and market suspensions with odds:update and odds:locked events. Keep frozen quotes out of your live view.
47M+ odds daily. +EV and arbitrage across 40+ books. One call, one format.
No credit card required
Illustrative output. Full schema in the docs.
Stream market changes, compare prices, and surface opportunities without maintaining a separate pipeline for every sportsbook.
Illustrative API outputs
Follow price changes and market suspensions with odds:update and odds:locked events. Keep frozen quotes out of your live view.
Fair probabilities, estimated edge, and confidence scores in the same response. Rank opportunities without building your own EV engine.
Opposing prices, calculated margins, and stake splits across books. The fields you need to build an arbitrage scanner.
Shared event, market, and selection fields across books. Build once, then expand your coverage as your plan grows.
Get both sides of a two-way market with the vig removed, plus the sharp reference and method behind the calculation.
Typed responses from the official SDK. Work with odds, events, and opportunities using the same client.
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
Request Node.js
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
{
"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 feeds from 40+ sportsbooks
Normalize, calculate EV, detect arbs
Streamed over SSE or fetched over REST
Start free. Scale when you're ready. No credit card required.
No credit card required