SportyBet APIsportybet.com ↗
Access SportyBet odds, live scores, and betting markets for football, basketball, and more. 7 endpoints covering upcoming events, live matches, and virtual football.
What is the SportyBet API?
The SportyBet API provides 7 endpoints covering pre-match and live betting data from SportyBet Nigeria, including full market odds, real-time scores, virtual football fixtures, and bet slip booking. The get_upcoming_events endpoint returns paginated tournament and event data with markets like 1X2, Over/Under, Handicap, and more, filterable by sport, tournament, date, and market IDs.
curl -X GET 'https://api.parse.bot/scraper/8ffd9f0c-6174-43af-80dc-4898f47f074b/get_upcoming_events?page=1&sport=football&page_size=10&market_ids=1%2C18&today_only=False' \ -H 'X-API-Key: $PARSE_API_KEY'
Get upcoming and today's events with full betting odds for a sport. Returns tournaments with events, each containing multiple markets (1X2, Over/Under, Handicap, etc.) with odds for each outcome. Paginated by page number; each page returns up to page_size events grouped by tournament. Use tournament_id to filter results to a specific tournament.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination |
| sport | string | Sport name ('football', 'basketball') or a raw sport ID (e.g. 'sr:sport:1', 'sr:sport:2') |
| page_size | integer | Number of events per page (max 100) |
| market_ids | string | Comma-separated market IDs to include in results |
| today_only | boolean | If true, only return today's games |
| tournament_id | string | Tournament ID to filter by (e.g. 'sr:tournament:16' for World Cup). Obtain tournament IDs from the tournament_id field in get_upcoming_events results. When omitted, returns events from all tournaments. |
{
"type": "object",
"fields": {
"page": "integer, current page number",
"sport": "string, the sport queried",
"page_size": "integer, events per page",
"today_only": "boolean, whether filtered to today only",
"tournaments": "array of tournament objects with events and odds",
"total_events": "integer, total number of events available"
},
"sample": {
"data": {
"page": 1,
"sport": "football",
"page_size": 10,
"today_only": false,
"tournaments": [
{
"events": [
{
"status": 0,
"game_id": "43966",
"markets": [
{
"name": "1X2",
"group": "Main",
"status": 0,
"outcomes": [
{
"id": "1",
"odds": "1.46",
"is_active": 1,
"description": "Home"
}
],
"market_id": "1",
"description": "1X2"
}
],
"event_id": "sr:match:66456904",
"away_team": "South Africa",
"home_team": "Mexico",
"start_time": 1781204400000,
"match_status": "Not start",
"total_markets": 625
}
],
"category": "International",
"tournament_id": "sr:tournament:16",
"tournament_name": "World Cup"
}
],
"total_events": 570
},
"status": "success"
}
}About the SportyBet API
Upcoming and Live Events
The get_upcoming_events endpoint accepts sport (by name or raw ID such as sr:sport:1), page, page_size (up to 100), today_only, tournament_id, and market_ids as filters. It returns a tournaments array where each tournament contains events with full market odds. The total_events field tells you how many records exist before pagination. get_live_events works similarly but returns only matches currently in play, adding real-time fields like current score, match period, and played time.
Event-Level and Sport Discovery
get_event_odds accepts a single event_id in sr:match:<number> format and returns every available market for that match — Correct Score, Double Chance, Both Teams to Score, and multiple Over/Under lines among them. Each market object includes market_id, name, status, group, specifier, and an outcomes array with individual odds. get_sport_list lets you discover available sports and their raw IDs, filterable between live and prematch products.
Virtual Football
get_virtual_football returns simulated match fixtures grouped under leagues such as England and World Cup. New fixtures are generated continuously every few minutes. Inputs include page, page_size, league, and market_ids. Each fixture in the response carries event_id, home_team, away_team, start_time, league, and attached market odds.
Bet Booking
book_bet accepts a JSON array of selections — each specifying eventId, marketId, and outcome details — and returns a booking_code, share_url, deadline timestamp, and outcomes array with full selection details. get_booking retrieves an existing slip by booking_code, adding bet_type, total_odds, total_stake, potential_winnings, and per-outcome winning status.
The SportyBet API is a managed, monitored endpoint for sportybet.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when sportybet.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official sportybet.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Aggregating football and basketball odds from SportyBet alongside other bookmakers for odds comparison
- Monitoring live match scores and periods via get_live_events to power a real-time sports tracker
- Filtering today's events by tournament ID to display a daily fixture list for a specific league
- Retrieving all available markets for a single match with get_event_odds to build a detailed bet slip UI
- Ingesting virtual football fixtures continuously to display a simulated match feed
- Generating and sharing bet booking codes programmatically using book_bet and the returned share_url
- Discovering available sports and live event counts via get_sport_list to populate a navigation menu
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does SportyBet have an official public developer API?+
What does get_event_odds return beyond basic 1X2 odds?+
Can I filter upcoming events to a specific league or tournament?+
tournament_id such as sr:tournament:16 to get_upcoming_events to restrict results to that competition. Tournament IDs are available from the tournament listing data returned alongside events. You can also combine this with today_only and market_ids filters.