Discover/SportyBet API
live

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.

Endpoint health
verified 3h ago
get_event_odds
get_upcoming_events
get_sport_list
get_booking
get_virtual_football
5/6 passing latest checkself-healing
Endpoints
7
Verified account required
Updated
1mo ago

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.

This call costs3 credits / call— charged only on success
Try it
Page number for pagination
Sport name ('football', 'basketball') or a raw sport ID (e.g. 'sr:sport:1', 'sr:sport:2')
Number of events per page (max 100)
Comma-separated market IDs to include in results
If true, only return today's games
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.
→ api.parse.bot/scraper/8ffd9f0c-6174-43af-80dc-4898f47f074b/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
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'
All endpoints · 7 totalmissing one? ·

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.

Input
ParamTypeDescription
pageintegerPage number for pagination
sportstringSport name ('football', 'basketball') or a raw sport ID (e.g. 'sr:sport:1', 'sr:sport:2')
page_sizeintegerNumber of events per page (max 100)
market_idsstringComma-separated market IDs to include in results
today_onlybooleanIf true, only return today's games
tournament_idstringTournament 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.
Response
{
  "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.

Reliability & maintenanceVerified

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.

Last verified
3h ago
Latest check
5/6 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • 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
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo2005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min
Team$300/mo20,000300 req/min
Company$1,000/mo100,000500 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.

Frequently asked questions
Does SportyBet have an official public developer API?+
SportyBet does not publish an official public developer API or API documentation for third-party use. There is no documented API portal or OAuth program listed on their site.
What does get_event_odds return beyond basic 1X2 odds?+
It returns every market SportyBet lists for that match, including Over/Under at multiple lines, Handicap, Double Chance, Both Teams to Score, and Correct Score. Each market carries a status, group, specifier (for line-specific markets), and an outcomes array with individual odds values. You need an event_id in sr:match:<number> format, obtainable from get_upcoming_events or get_live_events.
Can I filter upcoming events to a specific league or tournament?+
Yes. Pass a 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.
Does the API cover historical match results or settled bet outcomes?+
No. The API covers upcoming pre-match events, currently live events, virtual football fixtures, and booked bet slips. Historical results and settled market data are not exposed. You can fork this API on Parse and revise it to add an endpoint targeting SportyBet's results pages if that data is needed.
Is there any limitation on how many events get_upcoming_events can return per request?+
The page_size parameter has a maximum of 100 events per page. Results are paginated using the page parameter, and the total_events field in the response tells you the full count so you can calculate how many pages to fetch. Very large tournaments may therefore require multiple requests to retrieve all fixtures.
Page content last updated . Spec covers 7 endpoints from sportybet.com.
Related APIs in SportsSee all →