Soccer v4 is built on the Global API v2 framework, which introduces consistent terminology and structure across all Sportradar sport APIs. If you are already using any other Sportradar v2-framework API (such as Global Baseball v2), the patterns in Soccer v4 will feel familiar.
The enhancements of v4 are:
- Unified terminology and ID formats across sports.
- Season-oriented endpoints with more data per call.
- Expanded coverage: Over 650 unique competitions in a single package, up from the league-group-based model in v3.
Action RequiredSoccer v3 has moved to reduced support. Current Soccer v3 customers are encouraged to migrate to Soccer v4. This guide is designed to help you transition quickly and take advantage of everything v4 has to offer.
Terminology Changes
The most important change in v4 is the adoption of standardized terminology. The table below maps v3 terms to their v4 equivalents.
| v3 Term | v4 Term | Notes |
|---|---|---|
tournament | competition | Applies to leagues, cups, and tournaments |
team | competitor | Applies to all teams |
match | sport_event | Universal term for any match |
sr:tournament: | sr:competition: | ID prefix change |
sr:team: | sr:competitor: | ID prefix change |
sr:match: | sr:sport_event: | ID prefix change |
sr:season: | sr:season: | Unchanged |
sr:player: | sr:player: | Unchanged |
TipOnce you understand these terminology changes, the rest of the migration is straightforward. The concepts are the same, only the names have changed.
Example: Competitor ID
v3:
sr:team:44
v4:
sr:competitor:44
Example: Sport Event ID
v3:
sr:match:27428994
v4:
sr:sport_event:27428994
URL Structure Changes
The base URL and path structure have been updated in v4. The most visible change is the removal of the league_group path parameter, v4 uses a single global package rather than splitting access by region (eu, am, as, intl, etc.).
v3 URL Pattern
https://api.sportradar.us/soccer-{access_level}3/{league_group}/{language_code}/matches/{match_id}/timeline.{format}?api_key={key}
v4 URL Pattern
https://api.sportradar.com/soccer/{access_level}/v4/{language_code}/sport_events/{sport_event_id}/timeline.{format}?api_key={key}
Key differences:
| Element | v3 | v4 |
|---|---|---|
| Base path | /soccer-{access_level}3/ | /soccer/ |
| Access level | Embedded in path prefix (t3, p3) | Explicit path param (trial, production) |
| League group | Required (eu, am, as, etc.) | Removed — single global package |
| Version | Embedded in path prefix | Explicit /v4/ path param |
| Resource names | matches, teams, tournaments | sport_events, competitors, competitions |
v3 Access Level Values
| v3 | v4 |
|---|---|
t (trial) | trial |
p (production) | production |
xt (extended trial) | trial |
x (extended production) | production |
Endpoint Changes
The tables below maps v3 endpoints to their v4 equivalents. Note that in several cases v4 consolidates what were previously separate endpoints.
Match-Level Feeds
| v3 Endpoint | v4 Equivalent | Notes |
|---|---|---|
| Match Summary | Sport Event Summary | Expanded player and team stats |
| Match Timeline | Sport Event Timeline | Now includes commentary text node |
| Match Lineups | Sport Event Lineups | Now includes channel availability and confirmed lineup flag |
| Match Fun Facts | Sport Event Fun Facts | Renamed |
| Match Probabilities | Sport Event Probabilities | Expanded; additional probability feeds now available |
| Live Results | Live Summaries + Live Schedules | Split into separate feeds for flexibility |
Team/Competitor Feeds
| v3 Endpoint | v4 Equivalent | Notes |
|---|---|---|
| Team Profile | Competitor Profile | Now includes team colors |
| Team Schedule | Competitor Schedules | Now returns last 30 matches + upcoming (v3 returned upcoming only) |
| Team Results | Competitor Schedules | Merged into Competitor Schedules |
| Team vs Team | Competitor vs Competitor | Now includes player and team match statistics (v3 had scoring only) |
| Team Statistics | Seasonal Competitor Statistics | More granular; scoped to season + competitor |
Tournament/Competition Feeds
| v3 Endpoint | v4 Equivalent | Notes |
|---|---|---|
| Tournament List | Competitions | Renamed |
| Tournament Info | Competition Info + Season Information | Split into two more focused feeds |
| Tournament Schedule | Season Schedule | Now scoped via season_id |
| Tournament Results | Season Summaries | Results now include match-level statistics |
| Tournament Standings | Season Standings | Renamed |
| Tournament Live Standings | Season Standings | Merged into Season Standings |
| Tournament Leaders | Season Leaders | Renamed; includes minutes played |
| Tournament Seasons | Competition Seasons + Seasons | Available via two feeds |
Player Feeds
| v3 Endpoint | v4 Equivalent | Notes |
|---|---|---|
| Player Profile | Player Profile | Now includes loaned player info |
| Missing Players | Season Missing Players | Now season-scoped |
Schedule Feeds
| v3 Endpoint | v4 Equivalent | Notes |
|---|---|---|
| Daily Schedule | Daily Schedules | Renamed |
| Daily Results | Daily Summaries | Now includes match-level statistics alongside scores |
Mapping Feeds
| v3 Endpoint | v4 Equivalent | Notes |
|---|---|---|
| Team Mapping v2 to v3 | Competitor Mappings | Now maps v3 IDs to v4 IDs |
| Player Mapping v2 to v3 | Player Mappings | Now maps v3 IDs to v4 IDs |
| Player Merge Mapping | Player Merge Mappings | Unchanged in function |
Push Feeds
| v3 Endpoint | v4 Equivalent | Notes |
|---|---|---|
| Push Events | Push Events | URL structure updated; match= filter param becomes sport_event_id= |
| Push Statistics | Push Statistics | URL structure updated |
Change Log Feeds
| v3 Endpoint | v4 Replacement | Notes |
|---|---|---|
| Deleted Matches | Sport Events Removed | Renamed; joined by two new change notification feeds |
New Feeds in v4
The following feeds have no direct v3 equivalent and are new in v4.
Summary Feeds
One of the most significant additions in v4 is the Summary feed pattern. Rather than calling separate schedule and results endpoints and then fetching individual match stats, summary feeds combine scheduling, results, and statistics into a single response.
| Feed | Description |
|---|---|
| Daily Summaries | All matches for a given day including team scoring, player and team match statistics |
| Live Summaries | All currently live matches including real-time statistics |
| Live Timelines | Play-by-play event timeline for all currently live matches |
| Live Timelines Delta | 10-second live delta of match information including scoring and play-by-play |
| Competitor Summaries | Previous and upcoming matches for a given competitor, including statistics for past matches |
| Season Summaries | All matches from a given season including scoring and match-level statistics |
| Player Summaries | Match info and statistics for the past 10 matches for a given player |
Season-Oriented Feeds
v4 introduces a set of season-scoped feeds that have no v3 equivalent.
| Feed | Description |
|---|---|
| Season Competitors | List of teams participating in a given season |
| Season Players | Names and IDs for all participating players in a given season |
| Season Transfers | All player transfers for a given season |
| Season Lineups | Match lineups and substitutions for all matches in a given season |
| Season Links | Cup bracket advancement links for a given season |
| Season Over/Under Statistics | Over/under match goal totals for all teams in a given season |
| Seasonal Competitor Players | Player roster information for every team from a given season |
Expanded Probabilities
v3 offered only a single Match Probabilities feed. v4 adds a full suite of probability feeds, available as an add-on package.
| Feed | Description |
|---|---|
| Season Probabilities | 3-way win probabilities for all matches in a season |
| Season Outright Probabilities | Outright winner probabilities for each competitor in a season |
| Live Probabilities | Pre-match and live probabilities for all currently live matches |
| Timeline Probabilities | Timeline of pre-match and live probability changes for a given match |
| Sport Event Upcoming Probabilities | IDs for upcoming sport events with probabilities in the next 24 hours |
Change Notification Feeds
v3 only had a Deleted Matches feed. v4 expands this to a full set of change notification feeds.
| Feed | Description |
|---|---|
| Sport Events Created | IDs for sport events created in the last 24 hours |
| Sport Events Updated | IDs for sport events updated in the last 24 hours |
| Sport Events Removed | IDs for sport events removed from the API |
Other New Feeds
| Feed | Description |
|---|---|
| League Timeline | Alternate statistics set aligned with official league sites (Premier League, Bundesliga, Serie A, La Liga, Champions League, MLS, Austria Bundesliga) |
| Live Schedules | Schedule-level data for all currently live matches |
| Player Schedules | Schedules and results of the last 10 matches played for a given player |
Coverage Model Changes
Coverage Properties
v3 used four named coverage tiers, Bronze, Silver, Gold, and Platinum, which you looked up via the coverage_info node. v4 replaces this with explicit coverage properties returned directly on each sport event response, making it programmatically clear what data is available for a given match.
v3 approach: Check coverage_info – level for bronze, silver, gold, or platinum, then infer what data is available.
v4 approach: Check the sport_event_properties object on the sport event, which contains explicit boolean flags:
"sport_event_properties": {
"basic_play_by_play": true,
"deeper_player_stats": true,
"lineups": true,
"ballspotting": false,
"fun_facts": true,
"scores": "live"
}Design your integration to check these flags conditionally rather than inferring data availability from a coverage tier name.
League Group Removal
v3 required a league_group parameter in every URL (eu, am, as, intl, other, global) and a separate API key per league group. v4 removes this entirely, all 650+ competitions are accessible through a single API key and a single endpoint structure.
ID Migration & Mapping
Your stored v3 IDs (teams, players, matches) will need to be updated to v4 format. Only the prefixes change, the underlying numeric IDs are the same across v3 and v4. For example, sr:match:27428994 in v3 becomes sr:sport_event:27428994 in v4; the number 27428994 is unchanged. The same applies to team and tournament IDs.
Sportradar provides dedicated mapping endpoints to assist with this.
- Call the Competitor Mappings endpoint to retrieve the v4
sr:competitor:ID for each of your stored v3sr:team:IDs.GET /soccer/{access_level}/v4/{language_code}/competitors/{competitor_id}/mappings.{format} - Call the Player Mappings endpoint to retrieve updated IDs for any stored v3 player IDs.
GET /soccer/{access_level}/v4/{language_code}/players/{player_id}/mappings.{format} - Use the Player Merge Mappings endpoint to resolve any player profiles that were merged in v4, ensuring you always reference the correct canonical ID.
- Update stored match and tournament IDs.
- Historic match IDs use the
sr:sport_event:prefix in place ofsr:match:. - Tournament IDs become competition IDs with the
sr:competition:prefix in place ofsr:tournament:. - Team IDs use the
sr:competitor:prefix in place ofsr:team:.
- Historic match IDs use the
Technical Considerations
Authentication
Authentication is required for all v4 API calls. Pass your API key via the x-api-key request header.
In v3, each league group required a separate API key. In v4, a single API key covers all competitions. If your current Soccer v3 access does not already include v4, contact your Sportradar account representative to request a Soccer v4 API key.
Update Your Data Models
Key things to update in your parsers and data models:
- Replace references to
tournament,team, andmatchnodes withcompetition,competitor, andsport_event - The
sport_event_contextobject now contains competition, season, round, stage, and group context in a unified structure, replacing the separatetournament,tournament_round, andseasonelements from v3 - Statistics are nested under
statistics > totals > competitorsandstatistics > periods > competitors - Coverage information moves from
coverage_infoattributes to a structuredcoverageobject with boolean property flags
Push Feed Filter Parameter Changes
In v3, the Push feeds accepted a match query parameter to filter by sport event. In v4, this becomes sport_event_id. Other filter parameters (season_id, sport_id, tournament_id) remain, but tournament_id now accepts sr:competition: format IDs.
Failover Behavior
The failover behavior in v4 is identical to v3. In the event of a scout feed outage, Sportradar activates Live Data Entry (LDE):
- Scenario 1: Basic events only (goals, cards, substitutions with player names). Deeper stats such as shots, corners, and assists will not be available.
- Scenario 2: Goals with player names only. All other event types and player associations will be unavailable.
Design your integration to handle reduced data gracefully.
Update Frequency & Caching
- The Sport Event Timeline has a 1-second TTL/cache
- For high-frequency live use cases, consider the Push Feeds to reduce polling overhead
Integration Resources
- OpenAPI Specs
- Postman
- Integration Guide
- Schema Download
- MCP Server
- Soccer v4 Reference Documentation
- Soccer v4 FAQ
