What SportScore covers and who should use it
SportScore targets developers building sports-adjacent products: live score dashboards, betting tools, fantasy sports platforms, sports news aggregators, or coaching/analytics applications. Rather than focusing on a single discipline, it spans football, tennis, basketball, ice hockey, volleyball, and handball — six sports addressable through one API key and one consistent endpoint structure.
The dataset is substantial: 8,300+ leagues, 65,474+ teams, and 193,691+ players. The API lives at https://sportscore1.p.rapidapi.com/api/v1 and authentication is handled through standard RapidAPI headers (X-RapidAPI-Key and X-RapidAPI-Host), so any existing RapidAPI subscriber can add SportScore without creating a new account.
Data architecture and endpoint walkthrough
The data model is strictly hierarchical:
Sport → Section (country/region) → League → Season → Events
Events (individual matches) are the central entity. From an event ID you can branch out to lineups, real-time incidents (goals, substitutions, corners, cards), markets (odds and odds history), and media (video highlights). This tree structure means your integration workflow is predictable: fetch sports, walk down to the section and league level, resolve the active season, then pull events.
Core endpoint groups
Sports and structure — GET /sports returns all six sports with translated names in up to 11 languages (English, Russian, German, Spanish, French, Simplified Chinese, Turkish, Greek, Italian, Dutch, Portuguese). Sport IDs are stable integers (1 = Football through 6 = Handball) that serve as the entry point for every subsequent query.
Events — The /events family is where most production traffic will land. Key routes include:
GET /events/live— all currently in-progress matches across every sportGET /events/date/{date}— full match schedule for a UTC date (format:Y-m-d)GET /sports/{id}/events/live— live matches scoped to one sportPOST /events/search— filtered event lookup with pagination
All timestamps are UTC, which matters for scheduling polling jobs correctly.
Incidents and lineups — GET /events/{id}/incidents streams in-match events (substitutions, cards, corners) making it suitable for real-time overlays. GET /events/{id}/lineups returns the starting XI for both sides; player positions are decoded via the metadata endpoint GET /meta/event-status.
Odds and markets — GET /events/{id}/markets exposes pre-match and in-play odds alongside odds history, which is useful for betting trend analysis without having to store snapshots yourself.
Teams and players — Beyond basic profile data, GET /teams/{id}/h2h-events/{id_two} gives head-to-head match histories between two teams. Player endpoints cover season statistics (GET /players/{id}/statistics), transfer histories, and their participation in specific lineups.
Standings and cup trees — GET /seasons/{id}/standings-tables returns league tables; GET /seasons/{id}/cup-trees returns bracket structures for knockout competitions.
Managers, referees, venues — The API includes dedicated endpoints for coaches, referees, and stadium data, which adds depth useful for editorial or analytical products.
Tennis rankings — There is a dedicated tennis rankings endpoint, reflecting that tennis has unique data needs (table scores, rankings) versus team sports.
In total the API exposes 82 endpoints. The 40 shown in the documentation cover the full breadth of entity types, and the pattern is consistent enough that you can infer the remainder.
Pricing breakdown
| Plan | Monthly price | Requests/month | Rate limit | Overage |
|---|---|---|---|---|
| BASIC | $0 | 500 | 5 req/sec | — |
| PRO | $29 | 120,000 | 5 req/sec | $0.0020/req |
| ULTRA | $39 | 600,000 | 7 req/sec | $0.0010/req |
| MEGA | $69 | Unlimited | 15 req/sec | — |
The BASIC tier at 500 requests per month is essentially a testing quota — enough to validate your integration and explore the data model but not enough for any production workload. A typical live score page that polls every 60 seconds across even a handful of matches will exhaust 500 requests in hours.
PRO at $29/month gives 120,000 requests with a 5 req/sec ceiling. At that rate limit, you can make about 432,000 requests per day theoretically, so the monthly cap of 120,000 is the binding constraint, not the rate limit. Overage charges of $0.002 per request mean 10,000 extra requests add $20 — close to the base plan cost, so watch your usage carefully at this tier.
ULTRA ($39) quintuples the monthly allowance to 600,000 and cuts overage to $0.001/req. The rate limit bumps to 7 req/sec. For a real-time multi-league dashboard, this tier covers moderate traffic well.
MEGA ($69) removes the request cap entirely and raises the rate ceiling to 15 req/sec, which is the right choice for high-traffic applications or services that need to fan out requests across many concurrent live events.
Practical use cases
- Live score apps: Poll
GET /events/liveon a short interval; scope to a specific sport ID to reduce payload size. - Betting companion tools: Combine
GET /events/{id}/marketsfor odds withGET /events/{id}/incidentsfor in-play context; the odds history data removes the need for a separate scraping layer. - Fantasy sports platforms: Use player statistics per season and transfer histories to build accurate squad valuation models.
- Pre-match editorial: Pull lineups (
/lineups), head-to-head records (/h2h-events), and standings tables to auto-generate pre-game previews. - Tournament brackets:
GET /seasons/{id}/cup-treesmakes it straightforward to render knockout draw visualizations without custom tree-building logic.
Limitations and things to verify before integrating
Free tier is prototype-only. 500 requests/month will not sustain any real user-facing feature. Budget for at least PRO if you are building something that sees regular use.
Rate limits are per-second. The BASIC and PRO plans share a 5 req/sec ceiling. If your application fires concurrent requests — common when resolving a full match card at startup — you will need to queue or throttle on the client side to avoid 429 errors.
Pagination is required. Endpoints like /players and /teams return paginated results. Bulk data loading (e.g., syncing all 193,000+ players to a local database) will consume a large slice of your monthly quota. Design your sync strategy around incremental fetches where possible.
Coverage depth varies by sport. Football has the richest data (video goals, detailed incidents, odds history). Confirm that the specific leagues and data points you need are present before committing to a plan — the search endpoints and metadata routes are useful for this exploration.
All times are UTC. Any timezone conversion is your responsibility on the client side.
Getting started
- Create or log in to your RapidAPI account.
- Subscribe to SportScore (BASIC is free and requires no credit card commitment to start).
- Copy your
X-RapidAPI-Keyfrom the dashboard. - Make a test call to
GET /sports— the response lists all six sports with their IDs and translated names, confirming your key is active. - Use the sport ID to call
GET /sports/{id}/events/liveand verify real-time data is flowing. - Walk down the hierarchy (sections → leagues → seasons → events) to scope down to the competition you care about.
For questions beyond the documentation, the provider offers support via email at [email protected] and a Telegram channel at https://t.me/api_tipsters. Custom quota plans can be arranged through [email protected].