Integration GuidesDocs
Coverage MatrixDocumentationChange LogLog InContact Us
Docs

Soccer v3 to v4 Migration Guide

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 Required

Soccer 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 Termv4 TermNotes
tournamentcompetitionApplies to leagues, cups, and tournaments
teamcompetitorApplies to all teams
matchsport_eventUniversal 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

💡

Tip

Once 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:

Elementv3v4
Base path/soccer-{access_level}3//soccer/
Access levelEmbedded in path prefix (t3, p3)Explicit path param (trial, production)
League groupRequired (eu, am, as, etc.)Removed — single global package
VersionEmbedded in path prefixExplicit /v4/ path param
Resource namesmatches, teams, tournamentssport_events, competitors, competitions

v3 Access Level Values

v3v4
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 Endpointv4 EquivalentNotes
Match SummarySport Event SummaryExpanded player and team stats
Match TimelineSport Event TimelineNow includes commentary text node
Match LineupsSport Event LineupsNow includes channel availability and confirmed lineup flag
Match Fun FactsSport Event Fun FactsRenamed
Match ProbabilitiesSport Event ProbabilitiesExpanded; additional probability feeds now available
Live ResultsLive Summaries + Live SchedulesSplit into separate feeds for flexibility
Team/Competitor Feeds
v3 Endpointv4 EquivalentNotes
Team ProfileCompetitor ProfileNow includes team colors
Team ScheduleCompetitor SchedulesNow returns last 30 matches + upcoming (v3 returned upcoming only)
Team ResultsCompetitor SchedulesMerged into Competitor Schedules
Team vs TeamCompetitor vs CompetitorNow includes player and team match statistics (v3 had scoring only)
Team StatisticsSeasonal Competitor StatisticsMore granular; scoped to season + competitor
Tournament/Competition Feeds
v3 Endpointv4 EquivalentNotes
Tournament ListCompetitionsRenamed
Tournament InfoCompetition Info + Season InformationSplit into two more focused feeds
Tournament ScheduleSeason ScheduleNow scoped via season_id
Tournament ResultsSeason SummariesResults now include match-level statistics
Tournament StandingsSeason StandingsRenamed
Tournament Live StandingsSeason StandingsMerged into Season Standings
Tournament LeadersSeason LeadersRenamed; includes minutes played
Tournament SeasonsCompetition Seasons + SeasonsAvailable via two feeds
Player Feeds
v3 Endpointv4 EquivalentNotes
Player ProfilePlayer ProfileNow includes loaned player info
Missing PlayersSeason Missing PlayersNow season-scoped
Schedule Feeds
v3 Endpointv4 EquivalentNotes
Daily ScheduleDaily SchedulesRenamed
Daily ResultsDaily SummariesNow includes match-level statistics alongside scores
Mapping Feeds
v3 Endpointv4 EquivalentNotes
Team Mapping v2 to v3Competitor MappingsNow maps v3 IDs to v4 IDs
Player Mapping v2 to v3Player MappingsNow maps v3 IDs to v4 IDs
Player Merge MappingPlayer Merge MappingsUnchanged in function
Push Feeds
v3 Endpointv4 EquivalentNotes
Push EventsPush EventsURL structure updated; match= filter param becomes sport_event_id=
Push StatisticsPush StatisticsURL structure updated
Change Log Feeds
v3 Endpointv4 ReplacementNotes
Deleted MatchesSport Events RemovedRenamed; 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.

FeedDescription
Daily SummariesAll matches for a given day including team scoring, player and team match statistics
Live SummariesAll currently live matches including real-time statistics
Live TimelinesPlay-by-play event timeline for all currently live matches
Live Timelines Delta10-second live delta of match information including scoring and play-by-play
Competitor SummariesPrevious and upcoming matches for a given competitor, including statistics for past matches
Season SummariesAll matches from a given season including scoring and match-level statistics
Player SummariesMatch 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.

FeedDescription
Season CompetitorsList of teams participating in a given season
Season PlayersNames and IDs for all participating players in a given season
Season TransfersAll player transfers for a given season
Season LineupsMatch lineups and substitutions for all matches in a given season
Season LinksCup bracket advancement links for a given season
Season Over/Under StatisticsOver/under match goal totals for all teams in a given season
Seasonal Competitor PlayersPlayer 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.

FeedDescription
Season Probabilities3-way win probabilities for all matches in a season
Season Outright ProbabilitiesOutright winner probabilities for each competitor in a season
Live ProbabilitiesPre-match and live probabilities for all currently live matches
Timeline ProbabilitiesTimeline of pre-match and live probability changes for a given match
Sport Event Upcoming ProbabilitiesIDs 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.

FeedDescription
Sport Events CreatedIDs for sport events created in the last 24 hours
Sport Events UpdatedIDs for sport events updated in the last 24 hours
Sport Events RemovedIDs for sport events removed from the API
Other New Feeds
FeedDescription
League TimelineAlternate statistics set aligned with official league sites (Premier League, Bundesliga, Serie A, La Liga, Champions League, MLS, Austria Bundesliga)
Live SchedulesSchedule-level data for all currently live matches
Player SchedulesSchedules 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.

  1. Call the Competitor Mappings endpoint to retrieve the v4 sr:competitor: ID for each of your stored v3 sr:team: IDs.
    GET /soccer/{access_level}/v4/{language_code}/competitors/{competitor_id}/mappings.{format}
  2. 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}
  3. Use the Player Merge Mappings endpoint to resolve any player profiles that were merged in v4, ensuring you always reference the correct canonical ID.
  4. Update stored match and tournament IDs.
    1. Historic match IDs use the sr:sport_event: prefix in place of sr:match:.
    2. Tournament IDs become competition IDs with the sr:competition: prefix in place of sr:tournament:.
    3. Team IDs use the sr:competitor: prefix in place of sr:team:.


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, and match nodes with competition, competitor, and sport_event
  • The sport_event_context object now contains competition, season, round, stage, and group context in a unified structure, replacing the separate tournament, tournament_round, and season elements from v3
  • Statistics are nested under statistics > totals > competitors and statistics > periods > competitors
  • Coverage information moves from coverage_info attributes to a structured coverage object 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