What SportAPI covers and who it serves

SportAPI aggregates sports data from Sofascore and surfaces it through a REST API hosted on RapidAPI. The coverage is broad: football (soccer), basketball, tennis, ice hockey, handball, volleyball, baseball, American football, MMA, cricket, rugby, darts, snooker, futsal, badminton, Australian rules, beach volleyball, water polo, cycling, floorball, bandy, and a full suite of motorsport disciplines — Formula 1, Formula E, MotoGP, Moto2, Moto3, Superbike, WRC, NASCAR, DTM, and Indycar. Esports coverage includes CS:GO, Dota 2, and League of Legends.

The target audience is developers building sports-adjacent products: score widgets, fantasy sports platforms, betting tools, sports journalism dashboards, or statistical analysis applications. The depth of the data — incidents, lineups, per-player shot maps, team heatmaps — also makes it relevant for analytics and machine-learning projects that need structured historical match data.

Endpoint architecture and data depth

The documented API base is https://sportapi7.p.rapidapi.com. All requests use RapidAPI's standard header-based authentication (X-RapidAPI-Key and X-RapidAPI-Host). There are 100 endpoints in total; the documentation exposes the following core flows clearly.

Scheduled events

The entry point for most workflows is GET /api/v1/sport/{sport}/scheduled-events/{date}, which returns every match across all categories for a given sport on a YYYY-MM-DD date. If you want to drill down by region or competition first, GET /api/v1/sport/{sport}/{date}/{timezoneOffset}/categories lists all categories (e.g., England, Spain, Germany for football) that have events on a given date, and GET /api/v1/category/{id}/scheduled-events/{date} then returns the events for that specific category. The timezoneOffset parameter accepts seconds from UTC, so UTC+1 is 3600.

Per-event data

Once you have an event ID, four endpoints provide the granular data most applications need:

  • /api/v1/event/{id} — Core match metadata: teams, status, venue, referee, scores.
  • /api/v1/event/{id}/incidents — A chronological list of events within the match: goals, yellow and red cards, substitutions, VAR decisions.
  • /api/v1/event/{id}/lineups — Starting XI and substitutes, with a confirmed flag to distinguish provisional from official lineups.
  • /api/v1/event/{id}/statistics — Team-level stats grouped by period: possession, shots on/off target, passes, corners, and similar metrics.

Two additional per-event endpoints extend the dataset: /api/v1/event/{id}/odds/{providerId}/all returns betting odds across all markets from a specified provider (use 1 as the default provider ID), and /api/v1/event/{event}/shotmap/player/{player} gives a per-player shot map for football matches.

Tournament and standing data

Standings are fetched via GET /api/v1/unique-tournament/{id}/season/{seasonId}/standings/{type}, where type can be total, home, or away. The tournament and season IDs come directly from the event object, so no separate lookup is required. Other tournament-level endpoints cover round-by-round events, team-of-the-week rounds, and season top players broken down by position.

Team and player endpoints

The remaining endpoints cover team details (/api/v1/team/{id}), squad rosters (/api/v1/team/{id}/players), transfer history, career statistics, rankings, season heatmaps, goal distributions, and top-player leaderboards. Player endpoints offer career statistics, recent events, season shot actions by type, and media assets. Images for both teams and players are served directly from the API.

Esports-specific endpoints

For CS:GO, Dota 2, and League of Legends, dedicated endpoints handle esports-game bans (/api/v1/esports-game/{id}/bans) and round-by-round breakdowns (/api/v1/esports-game/{id}/rounds).

Odds by date

GET /api/v1/sport/{sport}/odds/{providerId}/{date} retrieves odds for all events of a sport scheduled on a given date — useful for building betting aggregation tools without iterating event by event.

Pricing breakdown

SportAPI uses a freemium model with four published tiers:

Plan Monthly price Requests / month Rate limit
BASIC $0 50
PRO $15 15,000 20 / second
ULTRA $100 150,000 50 / second
MEGA $500 2,000,000 100 / second

Overage on the MEGA plan is billed at $0.001 per request. Custom plans are available on request.

The BASIC tier is better described as a trial than a functional free tier. Fifty requests per month evaporates quickly: a single football match fetched with the full workflow documented above (scheduled events, match info, incidents, lineups, statistics, standings, odds) consumes at least seven requests. That leaves room for fewer than eight complete match lookups before the monthly quota resets. Realistic evaluation or development work requires at least the PRO tier.

PRO at $15/month and 15,000 requests is workable for a low-traffic hobby project or internal tool that monitors a handful of competitions. ULTRA at $100/month covers more demanding applications. MEGA is aimed at production platforms with high request volumes — the 2,000,000 monthly allowance with overage billing gives predictable scaling.

Practical use cases

  • Score and results widgets: Pull today's scheduled events across a sport, supplement with live incidents, and render a real-time scoreboard.
  • Fantasy sports: Combine lineups, player statistics, and standings to build scoring engines or injury-aware selection tools.
  • Betting platforms: Use per-event odds endpoints alongside match statistics and incidents for pre-match and in-play data feeds.
  • Motorsport dashboards: The breadth of motorsport disciplines — F1 through WRC — makes SportAPI more complete for racing data than many alternatives.
  • Esports analytics: Ban data and round breakdowns for CS:GO, Dota, and LoL are specific enough to support competitive analytics tools.

Things to consider before integrating

Success rate: The reported average success rate is 81%. For an API used in production, this figure deserves attention — roughly one in five requests returning an error means you need robust retry logic and graceful degradation in your application. Test the specific endpoints and sports you care about before committing to a paid tier, and monitor error patterns to see whether the failure rate is concentrated in particular endpoints.

Request economics: The multi-step nature of enriching a single match means your quota gets consumed faster than single-endpoint APIs. A workflow that fetches events for a full matchday and enriches each match with six sub-requests can burn through hundreds of calls for a busy football Saturday alone. Map out your expected daily call volume against your chosen plan before subscribing.

Latency: The average latency of 235 ms is reasonable for most non-real-time use cases, but if you are building a live ticker that polls continuously, the compounding effect of multiple requests per match cycle will add up.

Endpoint documentation: Only 40 of the 100 endpoints are documented in the public readme. The undocumented endpoints are discoverable through RapidAPI's interface, but you may need to experiment with request parameters.

Rate limits: BASIC has no published rate limit, which is academic given the 50-request monthly cap. PRO starts at 20 requests per second, which is sufficient for most applications at that scale.

Getting started

Sign up on RapidAPI, subscribe to SportAPI, and copy your X-RapidAPI-Key. The quickstart flows in the documentation use Python's requests library and are copy-paste ready. Start by calling the scheduled-events endpoint for football on today's date to verify connectivity, then layer in the per-event endpoints as needed. Keep event.tournament.uniqueTournament.id and event.season.id from each event object — you will need both for standings lookups. For production use, wrap each request in retry logic given the documented success rate.