Quick Start
Get started with SharpAPI in 2 minutes.
Base URL
https://api.sharpapi.io/api/v1Always use api.sharpapi.io - not sharpapi.io - for API requests.
Get Your API Key
- Sign Up - Create a free account at sharpapi.io/sign-up
- Get Your Key - Copy your API key from the dashboard. It starts with
sk_live_orsk_test_ - Make Your First Call - Use the examples below to fetch live odds
Your First API Call
cURL
curl -X GET "https://api.sharpapi.io/api/v1/odds" \
-H "X-API-Key: YOUR_API_KEY"Example Response
{
"data": [
{
"id": "draftkings_33483153_moneyline_PHO",
"sportsbook": "draftkings",
"sportsbook_name": "DraftKings",
"sport": "basketball",
"home_team": "PHI 76ers",
"away_team": "PHO Suns",
"market_type": "moneyline",
"selection": "PHO Suns",
"odds_american": -150,
"odds_decimal": 1.667,
"probability": 0.60,
"is_live": false
}
],
"meta": {
"count": 1,
"total": 3095,
"books_available": ["draftkings", "fanduel"],
"books_returned": ["draftkings"],
"pagination": {
"limit": 50,
"offset": 0,
"has_more": true,
"next_offset": 50
},
"updated_at": "2026-01-26T02:10:37.846Z",
"filters": {}
}
}Filter Your Results
Add query parameters to narrow down results:
# Get NBA odds from DraftKings only
curl "https://api.sharpapi.io/api/v1/odds?league=nba&sportsbook=draftkings" \
-H "X-API-Key: YOUR_API_KEY"
# Get only live events
curl "https://api.sharpapi.io/api/v1/odds?live=true" \
-H "X-API-Key: YOUR_API_KEY"
# Get main markets only (moneyline, spread, total)
curl "https://api.sharpapi.io/api/v1/odds?market=moneyline,spread,total" \
-H "X-API-Key: YOUR_API_KEY"Find Value Bets
Once you have a Pro subscription, you can find +EV opportunities:
curl "https://api.sharpapi.io/api/v1/opportunities/ev?min_ev=3.0" \
-H "X-API-Key: YOUR_API_KEY"Response:
{
"data": [
{
"opportunity_id": "opp_x1y2z3",
"event_name": "PHO Suns @ PHI 76ers",
"sportsbook": "draftkings",
"selection": "PHO Suns -3.5",
"odds": {
"american": -105,
"decimal": 1.952,
"probability": 0.512
},
"sharp_odds": {
"american": -115,
"decimal": 1.870,
"probability": 0.535
},
"ev_percent": 4.35,
"kelly_fraction": 0.0218
}
],
"meta": {
"count": 12,
"total": 12,
"pagination": {
"limit": 50,
"offset": 0,
"has_more": false,
"next_offset": null
},
"updated_at": "2026-01-26T02:10:37.846Z",
"filters": {
"min_ev": 3.0
}
}
}Real-time Streaming
For the fastest updates, use SSE streaming (requires WebSocket add-on):
const eventSource = new EventSource(
'https://api.sharpapi.io/api/v1/stream?channel=all&api_key=YOUR_KEY'
);
eventSource.addEventListener('connected', (e) => {
const { stream_id } = JSON.parse(e.data);
console.log('Stream connected:', stream_id);
});
eventSource.addEventListener('snapshot', (e) => {
const { odds } = JSON.parse(e.data);
console.log('Initial snapshot:', odds.length, 'odds');
});
eventSource.addEventListener('odds:update', (e) => {
const update = JSON.parse(e.data);
console.log('Update from:', update.sportsbook);
});
eventSource.addEventListener('ev:detected', (e) => {
const opp = JSON.parse(e.data);
console.log(`+EV found: ${opp.selection} at ${opp.ev_percent}% EV`);
});Next Steps
- Get +EV Bets - Find positive expected value opportunities
- Find Arbitrage - Detect risk-free profit opportunities
- Stream Live - Real-time updates via SSE
- Rate Limits - Understand usage limits
- Pricing - Compare plans and features
Common Issues
!
Error: 401 Unauthorized
Make sure you’re using the correct API key and it’s properly formatted in the header.
!
Error: 429 Rate Limited
You’ve exceeded your rate limit. Wait for the reset time indicated in X-RateLimit-Reset or upgrade your plan.
!
Error: 403 Tier Restricted
This endpoint requires a higher tier. Check the Pricing page for tier features.
Last updated on