Find all updates to the Soccer Extended v4 API and its documentation
Long Name for Club Disambiguation
🗓️ Release Date 09/03/2026
We've added a long_name attribute for all competitors in the Season Competitors endpoint of our Soccer APIs.
long_name provides the complete, display-ready club name with home-nation context — essential in international competitions where clubs from multiple nations appear together. For example, name returns "Newcastle United Jets" (risking confusion with Newcastle United, the English Premier League club), but long_name returns "Newcastle Jets FC (AUS)" — unambiguous. This field surfaces both fuller official club names (Beijing Guoan → Beijing FC) and country tagging (Kashima Antlers → Kashima Antlers (JPN)).
⭐ Benefit
Prevent club-name confusion in international competitions and continental brackets by displaying the complete, disambiguated club name with home-nation context — so "Newcastle" reads as "Newcastle Jets FC (AUS)" and not Newcastle United.
📋 Recommended Actions
- Read the
long_nameattribute from the Season Competitors endpoint alongsidenameandshort_name. - Display
long_namein international competitions, standings, and brackets where clubs from multiple nations appear together, or use it for cross-source data matching where the fuller official name matches more reliably. - Use
namefor familiar display in domestic leagues, andshort_namefor space-constrained UI like scoreboards or tabs.
🔢 Products
| Sport | Product | Version(s) |
|---|---|---|
| Soccer | Soccer API | v4 |
| Soccer | Soccer Extended API | v4 |
🔁 Endpoints Affected
☑️ Sample Request:
curl --request GET \
--url https://api.sportradar.com/soccer/trial/v4/en/seasons/sr:season:144602/competitors.json \
--header 'accept: application/json' \
--header 'x-api-key: YOUR_API_KEY'⚙️ Return Samples
Return Samples
<competitor id="sr:competitor:2934" name="Newcastle United Jets" short_name="Newcastle" long_name="Newcastle Jets FC (AUS)" abbreviation="NUJ" gender="male"/>
<competitor id="sr:competitor:2946" name="Adelaide United FC" short_name="Adelaide" long_name="Adelaide United FC (AUS)" abbreviation="ADU" gender="male"/>
<competitor id="sr:competitor:3134" name="Kashima Antlers" short_name="Kashima" long_name="Kashima Antlers (JPN)" abbreviation="KAS" gender="male"/>
<competitor id="sr:competitor:3376" name="Beijing Guoan" short_name="Beijing Guoan" long_name="Beijing FC (CHN)" abbreviation="BJG" gender="male"/>
<competitor id="sr:competitor:6908" name="Jeonbuk FC" short_name="Jeonbuk" long_name="Jeonbuk Hyundai Motors FC (KOR)" abbreviation="JEO" gender="male"/>
<competitor id="sr:competitor:7645" name="Daejeon Citizen FC" short_name="Daejeon Citizen" long_name="Daejeon Hanacitizen (KOR)" abbreviation="DAJ" gender="male"/>
<competitor id="sr:competitor:21895" name="Al Hilal SFC" short_name="Al Hilal" long_name="Al Hilal SFC (KSA)" abbreviation="HIL" gender="male"/>
<competitor id="sr:competitor:23400" name="Al Nassr Club" short_name="Al Nassr" long_name="Al Nassr Club (KSA)" abbreviation="ALN" gender="male"/>
..."season_competitors": [
{
"id": "sr:competitor:2934",
"name": "Newcastle United Jets",
"short_name": "Newcastle",
"long_name": "Newcastle Jets FC (AUS)",
"abbreviation": "NUJ",
"gender": "male"
},
{
"id": "sr:competitor:3376",
"name": "Beijing Guoan",
"short_name": "Beijing Guoan",
"long_name": "Beijing FC (CHN)",
"abbreviation": "BJG",
"gender": "male"
},
{
"id": "sr:competitor:6908",
"name": "Jeonbuk FC",
"short_name": "Jeonbuk",
"long_name": "Jeonbuk Hyundai Motors FC (KOR)",
"abbreviation": "JEO",
"gender": "male"
},
...
]Friendly Competition Flag
🗓️ Release Date 08/24/2026
We've added an identifier for all friendly competitions in each of our Soccer APIs.
Use the new is_friendly boolean value in the Season Info endpoint to determine whether a competition is a friendly (exhibition).
⭐ Benefit
Identify and filter friendly (exhibition) competitions across both Soccer APIs — so you can flag exhibition matches in your UI, separate them from competitive fixtures, or exclude them from standings and stats displays.
📋 Recommended Actions
- Read the
is_friendlyboolean fromcompetition_propertiesin the Season Info endpoint to determine whether a competition is a friendly (exhibition). - Use it to label exhibition matches, separate them from competitive fixtures, or exclude them from standings, stats, and predictive displays where friendlies would skew results.
- The attribute is always present: friendly competitions return
is_friendly="true"and all others returnis_friendly="false", so you can read it directly without null-checking for an absent value.
🔢 Products
| Sport | Product | Version(s) |
|---|---|---|
| Soccer | Soccer API | v4 |
| Soccer | Soccer Extended API | v4 |
🔁 Endpoints Affected
- Season Info
☑️ Sample Request:
curl --request GET \
--url https://api.sportradar.com/soccer/trial/v4/en/seasons/sr:season:145002/info.json \
--header 'accept: application/json' \
--header 'x-api-key: YOUR_API_KEY'⚙️ Return Samples
Return Samples
<!-- within the season_info response -->
<coverage type="competition">
<competition_properties brackets="false" missing_players="false" player_transfer_history="false" schedules="true" season_player_statistics="false" season_stats_leaders="false" season_team_statistics="false" standings="post" team_squads="false" is_friendly="true"/>
<sport_event_properties basic_play_by_play="false" basic_player_stats="false" basic_team_stats="false" extended_player_stats="false" extended_team_stats="false" deeper_play_by_play="false" deeper_team_stats="false" deeper_player_stats="false" lineups="false" goal_scorers="false" goal_scorers_live="false" scores="post" assists="false"/>
</coverage>
<!-- ...additional coverage detail omitted... -->{
"generated_at": "2026-08-23T10:51:25+00:00",
"coverage": {
"type": "competition",
"competition_properties": {
"brackets": false,
"missing_players": false,
"player_transfer_history": false,
"schedules": true,
"season_player_statistics": false,
"season_stats_leaders": false,
"season_team_statistics": false,
"standings": "post",
"team_squads": false,
"is_friendly": true
},
"sport_event_properties": {
"basic_play_by_play": false,
"basic_player_stats": false,
"basic_team_stats": false,
"extended_player_stats": false,
"extended_team_stats": false,
"deeper_play_by_play": false,
"deeper_team_stats": false,
"deeper_player_stats": false,
"lineups": false,
"goal_scorers": false,
"goal_scorers_live": false,
"scores": "post",
"assists": false
}
}
// ...additional fields omitted...
}Estimated Player Return Dates
🗓️ Release Date 08/20/2026
We've added an estimated_return_date attribute to players in the Season Missing Players endpoint of the Soccer Extended API. This attribute is available in the Soccer Extended API only — it is not part of the standard Soccer API.
This is an optional field — it is only present when a return date is available, so expect it to be absent for some players. Coverage is focused on top leagues. The dates are estimates based on the sources available at the time, and may change as new information comes in.
The value is returned as an ISO 8601 timestamp, though it represents a date only (the time component is always 00:00:00 UTC).
Return Samples
<player id="sr:player:1297412" name="Garner, James" start_date="2026-08-15T14:05:14+00:00" reason="injured" status="doubtful" estimated_return_date="2026-08-22T00:00:00+00:00"/>⭐ Benefit
Show users when injured or doubtful players are expected back, and enrich your availability and injury displays with a projected return timeline.
📋 Recommended Actions
- Read the
estimated_return_dateattribute from players in the Season Missing Players endpoint (Soccer Extended only). - Display it alongside player
statusandreasonto give users a projected return timeline for injured or doubtful players. - Treat the value as an estimate that may change as new information becomes available, and handle cases where it may be absent for players with no confirmed return date.
🔢 Products
| Sport | Product | Version(s) |
|---|---|---|
| Soccer | Soccer Extended API | v4 |
☑️ Sample Request:
curl --request GET \
--url https://api.sportradar.com/soccer-extended/trial/v4/en/seasons/sr:season:140756/missing_players.json \
--header 'accept: application/json' \
--header 'x-api-key: YOUR_API_KEY'⚙️ Return Samples
Return Samples
<competitors>
<competitor id="sr:competitor:11" name="Coventry City" abbreviation="COV">
<players>
<player id="sr:player:809762" name="Wright, Haji" start_date="2026-08-15T13:54:19+00:00" reason="injured" status="doubtful" estimated_return_date="2026-08-21T00:00:00+00:00"/>
<player id="sr:player:959744" name="Onyeka, Frank" start_date="2026-08-15T13:54:03+00:00" reason="injured" status="doubtful" estimated_return_date="2026-08-21T00:00:00+00:00"/>
<player id="sr:player:1079834" name="Mason-Clark, Ephron Jardell" start_date="2026-08-15T13:53:51+00:00" reason="injured" status="doubtful" estimated_return_date="2026-08-21T00:00:00+00:00"/>
<player id="sr:player:1720482" name="Rudoni, Jack" start_date="2026-08-15T13:54:11+00:00" reason="injured" status="doubtful" estimated_return_date="2026-08-21T00:00:00+00:00"/>
</players>
</competitor>
<competitor id="sr:competitor:14" name="Nottingham Forest" abbreviation="NFO">
<players>
<player id="sr:player:1984655" name="Savona, Nicolo" start_date="2026-08-15T14:00:32+00:00" reason="injured" status="doubtful" estimated_return_date="2026-08-22T00:00:00+00:00"/>
</players>
</competitor>
<competitor id="sr:competitor:17" name="Manchester City" abbreviation="MCI">
<players>
<player id="sr:player:844073" name="Rodri" start_date="2026-08-15T14:14:17+00:00" reason="injured" status="doubtful" estimated_return_date="2026-08-22T00:00:00+00:00"/>
<player id="sr:player:1253990" name="Reijnders, Tijjani" start_date="2026-08-15T14:15:27+00:00" reason="other" status="doubtful" estimated_return_date="2026-08-22T00:00:00+00:00"/>
<player id="sr:player:1297614" name="Doku, Jeremy" start_date="2026-08-17T12:32:46+00:00" reason="injured" status="doubtful" estimated_return_date="2026-08-22T00:00:00+00:00"/>
<player id="sr:player:1560920" name="Nunes, Matheus" start_date="2026-08-17T12:32:33+00:00" reason="injured" status="doubtful" estimated_return_date="2026-08-22T00:00:00+00:00"/>
<player id="sr:player:2057939" name="Savinho" start_date="2026-08-15T14:15:14+00:00" reason="other" status="doubtful" estimated_return_date="2026-08-22T00:00:00+00:00"/>
</players>
</competitor>
..."competitors": [
{
"id": "sr:competitor:11",
"name": "Coventry City",
"abbreviation": "COV",
"players": [
{
"id": "sr:player:809762",
"name": "Wright, Haji",
"start_date": "2026-08-15T13:54:19+00:00",
"reason": "injured",
"status": "doubtful",
"estimated_return_date": "2026-08-21T00:00:00+00:00"
},
{
"id": "sr:player:959744",
"name": "Onyeka, Frank",
"start_date": "2026-08-15T13:54:03+00:00",
"reason": "injured",
"status": "doubtful",
"estimated_return_date": "2026-08-21T00:00:00+00:00"
},
{
"id": "sr:player:1079834",
"name": "Mason-Clark, Ephron Jardell",
"start_date": "2026-08-15T13:53:51+00:00",
"reason": "injured",
"status": "doubtful",
"estimated_return_date": "2026-08-21T00:00:00+00:00"
},
{
"id": "sr:player:1720482",
"name": "Rudoni, Jack",
"start_date": "2026-08-15T13:54:11+00:00",
"reason": "injured",
"status": "doubtful",
"estimated_return_date": "2026-08-21T00:00:00+00:00"
}
]
},
{
"id": "sr:competitor:14",
"name": "Nottingham Forest",
"abbreviation": "NFO",
"players": [
{
"id": "sr:player:1984655",
"name": "Savona, Nicolo",
"start_date": "2026-08-15T14:00:32+00:00",
"reason": "injured",
"status": "doubtful",
"estimated_return_date": "2026-08-22T00:00:00+00:00"
}
]
},
...FA Cup Competition Consolidation
🗓️ Release Date 08/05/2026
We're consolidating the qualification and main-draw rounds of the FA Cup and FA Trophy into single competitions in our Soccer and Soccer Extended APIs.
Currently, the qualification rounds and main competition for these two events are maintained as separate competitions. Beginning with the new season, the standalone qualification competitions will be retired, and all qualification and main-draw content will be delivered through a single competition for each event:
| Retired Competition | Content now delivered through |
|---|---|
1696 – FA Cup, Qualification | 19 – FA Cup |
1991 – FA Trophy, Qualification | 628 – FA Trophy |
You can confirm these competition IDs through the Competitions endpoint (shown below). Competitions 1696 and 1991 will be retired, with all qualification content delivered through 19 and 628 respectively.
This change applies only to the FA Cup and FA Trophy. Other qualification tournaments that exist as independent competitions — such as the FIFA World Cup qualifiers and UEFA European Championship qualifiers — are structured differently and are not affected.
⭐ Benefit
Access both qualification and main-draw content for the FA Cup and FA Trophy through a single competition ID each, rather than tracking separate competitions for qualification and main rounds.
📋 Recommended Actions
- Update any integration that references competitions
1696(FA Cup, Qualification) or1991(FA Trophy, Qualification), as these will be retired. - Retrieve qualification and main-draw content for the FA Cup and FA Trophy from competitions
19and628respectively. - Confirm this change is in place before the new season begins on 23 August.
🔢 Products
| Sport | Product | Version(s) |
|---|---|---|
| Soccer | Soccer API | v4 |
| Soccer | Soccer Extended API | v4 |
🔁 Competitions Affected
19– FA Cup628– FA Trophy1696– FA Cup, Qualification (retired)1991– FA Trophy, Qualification (retired)
☑️ Sample Request:
Retrieve these competitions through the Competitions endpoint:
curl --request GET \
--url https://api.sportradar.com/soccer/trial/v4/en/competitions.json \
--header 'accept: application/json' \
--header 'x-api-key: YOUR_API_KEY'⚙️ Return Samples
The following shows the four competitions as they currently exist. After the change, 1696 and 1991 will no longer be returned.
Return Samples
<competition id="sr:competition:19" name="FA Cup" gender="men">
<category id="sr:category:1" name="England" country_code="ENG"/>
</competition>
<competition id="sr:competition:628" name="FA Trophy" gender="men">
<category id="sr:category:252" name="England Amateur" country_code="ENG"/>
</competition>
<competition id="sr:competition:1696" name="FA Cup, Qualification" gender="men">
<category id="sr:category:1" name="England" country_code="ENG"/>
</competition>
<competition id="sr:competition:1991" name="FA Trophy, Qualification" gender="men">
<category id="sr:category:252" name="England Amateur" country_code="ENG"/>
</competition>Overtime Score Behavior Update
🗓️ Release Date 06/09/2026
We've updated the behavior of overtime scoring in our Soccer APIs.
Going forward, the home_overtime_score and away_overtime_score attributes under sport_event_status will represent the goals scored by each team during overtime (extra time) only.
Previously, these attributes reflected the final match score after overtime had concluded, rather than the goals scored during the overtime period(s).
This change is particularly relevant for competitions that can be decided after extra time, including upcoming FIFA World Cup matches.
⭐ Benefit
Use the overtime score attributes to determine how many goals each team scored during extra time without needing to calculate the values from period scores.
⚠️ Action Recommended
Review any integrations, reports, or UI displays that consume home_overtime_score and away_overtime_score.
If your implementation currently uses these fields as the final match score, update your logic to use home_score and away_score instead. Going forward, the overtime score fields will only contain goals scored during overtime periods.
☑️ Sample Request:
Sport Event Timeline
curl --request GET \
--url https://api.sportradar.com/soccer-extended/trial/v4/en/sport_events/{sport_event_id}/timeline.json \
--header 'accept: application/json' \
--header 'x-api-key: YOUR_API_KEY'🔢 Versions
- Soccer v4 API
- Soccer Extended v4 API
🔁 Endpoints Affected
Sport Event Endpoints
- Sport Event Summary
- Sport Event Timeline
- Sport Event Extended Summary
- Sport Event Extended Timeline
- Sport Event Lineups
- League Timeline
Live Endpoints
- Live Schedules
- Live Summaries
- Live Timelines
- Live Timelines Delta
Push Feeds
- Push Events
- Push Statistics
Competitor Endpoints
- Competitor Schedules
- Competitor Summaries
- Competitor vs Competitor
Player Endpoints
- Player Schedules
- Player Summaries
Daily Endpoints
- Daily Schedules
- Daily Summaries
Season Endpoints
- Season Lineups
- Season Schedules
- Season Summaries
Probabilities
- Live Probabilities
- Season Probabilities
- Sport Event Probabilities
- Timeline Probabilities
⚙️ Return Samples
Previous Behavior Example
In the previous behavior, the overtime score attributes mirrored the final match score after overtime had concluded.
Return Samples
<sport_event_status status="closed" match_status="ended" home_score="3" away_score="3" home_normaltime_score="2" away_normaltime_score="2" home_overtime_score="3" away_overtime_score="3" winner_id="sr:competitor:4819">New Behavior Example
In the new behavior, the overtime score attributes reflect only the goals scored during overtime.
Return Samples
<sport_event_status status="closed" match_status="aet" home_score="2" away_score="1" home_normaltime_score="1" away_normaltime_score="1" home_overtime_score="1" away_overtime_score="0" winner_id="sr:competitor:2561">Late Substitution Events
🗓️ Release Date 06/02/2026
We've added a boolean late attribute to substitution events in all Soccer API Timeline endpoints. This flag indicates when a substitution was delayed because the player being replaced did not leave the field within the required time limit under the new substitution procedure introduced for the 2026 FIFA World Cup.
⭐ Benefit
Reference the event.late flag on substitution events to identify delayed substitutions. When late="true", the player being replaced did not leave the field within the required time limit, resulting in the incoming substitute being temporarily prevented from entering the field. During this delay, the team briefly plays with one fewer player until the substitution is completed.
☑️ Sample Request:
Sport Event Timeline
curl --request GET \
--url https://api.sportradar.com/soccer-extended/trial/v4/en/sport_events/{sport_event_id}/timeline.json \
--header 'accept: application/json' \
--header 'x-api-key: YOUR_API_KEY'🔢 Versions
🔁 Endpoints Affected
Soccer
- Live Timelines
- Live Timelines Delta
- Sport Event Timeline
- Push Events
Soccer Extended
- Live Timelines
- Live Timelines Delta
- Sport Event Extended Timeline
- Sport Event Timeline
- Push Events
⚙️ Return Sample
Return Samples
<event id="3002309890" type="substitution" time="2026-05-21T19:46:21+00:00" match_time="53" match_clock="52:30" competitor="home" period="2" period_type="regular_period" late="true">Removal of VAR Decision Field
🗓️ Release Date 06/01/2026
We've removed the decision data point from VAR review events across the Soccer and Soccer Extended APIs.
VAR review events will continue to be delivered, but the decision attribute is no longer included in the response payload.
Although the decision field has been removed, the outcome of a VAR review can still be determined using the description value on the VAR events.
The following description values may be provided:
goal/no_goalpenalty/no_penaltyred_card/no_red_cardcorner/no_cornermistaken_identity/no_mistaken_identity
☑️ Sample Request:
Sport Event Timeline (Match 70076100)
curl --request GET \
--url https://api.sportradar.com/soccer-extended/trial/v4/en/sport_events/sr:sport_event:70076100/timeline.json \
--header 'accept: application/json' \
--header 'x-api-key: YOUR_API_KEY'🔢 Versions
🔁 Endpoints Affected
The following endpoints are affected in both Soccer and Soccer Extended:
- Live Timelines
- Live Timelines Delta
- Sport Event Timeline
- Push Events
⚙️ Return Sample
A VAR review sequence continues to be represented by two timeline events:
video_assistant_referee— Indicates a VAR review has started.video_assistant_referee_over— Indicates the VAR review has concluded.
The decision field, previously available under event.decision, has been removed.
Return Samples
<event id="3000032774" type="video_assistant_referee" time="2026-04-29T01:07:33+00:00" match_time="50" match_clock="49:14" competitor="away" period="2" period_type="regular_period" description="penalty"/>
<event id="3000032882" type="video_assistant_referee_over" time="2026-04-29T01:09:38+00:00" match_time="52" match_clock="51:19" competitor="away" period="2" period_type="regular_period" description="penalty"/>{
"id": 3000032774,
"type": "video_assistant_referee",
"time": "2026-04-29T01:07:33+00:00",
"match_time": 50,
"match_clock": "49:14",
"competitor": "away",
"period": 2,
"period_type": "regular_period",
"description": "penalty"
},
{
"id": 3000032882,
"type": "video_assistant_referee_over",
"time": "2026-04-29T01:09:38+00:00",
"match_time": 52,
"match_clock": "51:19",
"competitor": "away",
"period": 2,
"period_type": "regular_period",
"description": "penalty"
},City IDs in Venue Objects
🗓️ Release Date 06/01/2026
We've added a city_id unique identifier to all venue objects across our General Sport Media APIs. The new field is included alongside the existing city_name field and is available in all feeds that contain venue information.
This is a non-breaking enhancement to existing responses.
Return Samples
"city_name": "Liverpool",
"city_id": "sr:city:31",⭐ Benefit
Use a city's unique identifier for entity linking, data enrichment, and cross-feed correlation wherever venue information is available.
☑️ Sample Requests:
Soccer - Competitor Profile
curl --request GET \
--url https://api.sportradar.com/soccer/trial/v4/en/competitors/sr:competitor:44/profile.json \
--header 'accept: application/json' \
--header 'x-api-key: YOUR_API_KEY'⚙️ Return Samples
Return Samples
<venue id="sr:venue:8117" name="Dodger Stadium" capacity="56000" city_name="Los Angeles, CA" city_id="sr:city:963" country_name="USA" map_coordinates="34.0745409, -118.2408881" country_code="USA" timezone="America/Los_Angeles"/>"venue": {
"id": "sr:venue:8117",
"name": "Dodger Stadium",
"capacity": 56000,
"city_name": "Los Angeles, CA",
"city_id": "sr:city:963",
"country_name": "USA",
"map_coordinates": "34.0745409, -118.2408881",
"country_code": "USA",
"timezone": "America/Los_Angeles"
},New VAR Event Descriptions and Player Node
🗓️ Release Date 05/26/2026
Four new description values have been added to the Soccer Timeline endpoints for Video Assistant Referee events.
Additionally, VAR timeline events will now have the ability to include an associated player name and Id.
Added description values:
cornerno_cornermistaken_identityno_mistaken_identity
⭐ Benefit
The new corner and mistaken_identity description values provide greater context into the outcome of a VAR review, enabling developers to surface more detailed decision data in their applications. The addition of the player node further enriches timeline events by associating specific players with VAR incidents.
Learn more in our VAR Review Process guide, or locate valid enums in our Soccer FAQ.
☑️ Sample Request:
Sport Event Timeline
curl --request GET \
--url https://api.sportradar.com/soccer-extended/trial/v4/en/sport_events/{sport_event_id}/timeline.json \
--header 'accept: application/json' \
--header 'x-api-key: YOUR_API_KEY'🔢 Versions
🔁 Endpoints Affected
Soccer
- Live Timelines
- Live Timelines Delta
- Sport Event Timeline
- Push Events
Soccer Extended
- Live Timelines
- Live Timelines Delta
- Sport Event Extended Timeline
- Sport Event Timeline
- Push Events
⚙️ Return Sample
Return Samples
<event id="4587691" type="video_assistant_referee" time="2025-08-25T20:21:57+00:00" match_time="61" match_clock="60:40" competitor="away" period="2" period_type="regular_period" description="red_card">
<players>
<player id="sr:player:560128" name="Joelinton" competitor_id="sr:competitor:39"/>
</players>
</event>
<event id="4587738" type="video_assistant_referee_over" time="2025-08-25T20:22:39+00:00" match_time="62" match_clock="61:22" competitor="away" period="2" period_type="regular_period" description="no_red_card" decision="cancelled">
<players>
<player id="sr:player:560128" name="Joelinton" competitor_id="sr:competitor:39"/>
</players>
</event><event id="4587691" type="video_assistant_referee" time="2025-08-25T20:21:57+00:00" match_time="61" match_clock="60:40" competitor="away" period="2" period_type="regular_period" description="corner"/>
<event id="4587738" type="video_assistant_referee_over" time="2025-08-25T20:22:39+00:00" match_time="62" match_clock="61:22" competitor="away" period="2" period_type="regular_period" description="no_corner" decision="cancelled"/><event id="4587691" type="video_assistant_referee" time="2025-08-25T20:21:57+00:00" match_time="61" match_clock="60:40" competitor="away" period="2" period_type="regular_period" description="mistaken_identity"/>
<event id="4587738" type="video_assistant_referee_over" time="2025-08-25T20:22:39+00:00" match_time="62" match_clock="61:22" competitor="away" period="2" period_type="regular_period" description="no_mistaken_identity" decision="cancelled"/>VAR Decisions
🗓️ Release Date 05/21/2026
We’ve added the decision data point for VAR review events across Soccer and Soccer Extended API Timeline endpoints. Previously available only in the Soccer Extended Timeline endpoint, decision now appears on video_assistant_referee_over events and indicates the outcome of the VAR review.
Possible values:pending, cancelled, upheld, overturned
⭐ Benefit
The decision data point gives you a complete picture of each VAR review — from the initial review trigger to the final outcome — so you can surface accurate, detailed VAR event data in your platform.
Learn more in our VAR Review Process guide.
☑️ Sample Request:
Sport Event Timeline (Match 70076100)
curl --request GET \
--url https://api.sportradar.com/soccer-extended/trial/v4/en/sport_events/sr:sport_event:70076100/timeline.json \
--header 'accept: application/json' \
--header 'x-api-key: YOUR_API_KEY'🔢 Versions
🔁 Endpoints Affected
Soccer
- Live Timelines
- Live Timelines Delta
- Sport Event Timeline
- Push Events
Soccer Extended
- Live Timelines
- Live Timelines Delta
- Sport Event Timeline
- Push Events
⚙️ Return Sample
A VAR sequence consists of two events: a video_assistant_referee event when the review is initiated, and a video_assistant_referee_over event when the review concludes. The decision field appears only on the closing video_assistant_referee_over event. Other timeline events may appear between the two VAR events.
Return Samples
<!-- VAR review initiated -->
<event id="3000032774" type="video_assistant_referee" time="2026-04-29T01:07:33+00:00" match_time="50" match_clock="49:14" competitor="away" period="2" period_type="regular_period" description="penalty"/>
<!-- Unrelated timeline event occurring during the review -->
<event id="3000032899" type="dribble" time="2026-04-29T01:10:21+00:00" match_time="52" match_clock="51:17" competitor="away" x="8" y="72" period="2" period_type="regular_period" outcome="successful">
<players>
<player id="sr:player:2150446" name="Veliz, Alejo" competitor_id="sr:competitor:3217"/>
</players>
</event>
<!-- VAR review concluded — decision returned here -->
<event id="3000032882" type="video_assistant_referee_over" time="2026-04-29T01:09:38+00:00" match_time="52" match_clock="51:19" competitor="away" period="2" period_type="regular_period" description="penalty" decision="upheld"/>// VAR review initiated
{
"id": 3000032774,
"type": "video_assistant_referee",
"time": "2026-04-29T01:07:33+00:00",
"match_time": 50,
"match_clock": "49:14",
"competitor": "away",
"period": 2,
"period_type": "regular_period",
"description": "penalty"
},
// Unrelated timeline event occurring during the review
{
"id": 3000032899,
"type": "dribble",
"time": "2026-04-29T01:10:21+00:00",
"match_time": 52,
"match_clock": "51:17",
"competitor": "away",
"x": 8,
"y": 72,
"period": 2,
"period_type": "regular_period",
"players": [
{
"id": "sr:player:2150446",
"name": "Veliz, Alejo",
"competitor_id": "sr:competitor:3217"
}
],
"outcome": "successful"
},
// VAR review concluded — decision returned here
{
"id": 3000032882,
"type": "video_assistant_referee_over",
"time": "2026-04-29T01:09:38+00:00",
"match_time": 52,
"match_clock": "51:19",
"competitor": "away",
"period": 2,
"period_type": "regular_period",
"description": "penalty",
"decision": "upheld"
}Team Own Goals
🗓️ Release Date 05/21/2026
We’ve added own_goals to the team statistics object in the Extended Summary endpoint of our Soccer Extended API. This data point is returned at both the match level and for each individual period, giving you a complete breakdown of own goals throughout the match.
⭐ Benefit
With Extended access, you can now track how many own goals a team conceded at both the overall match and individual period level. This makes it easier to identify exactly when in a match an own goal occurred, and attribute it accurately when building match summaries or statistical displays.
☑️ Sample Request:
Sport Event Extended Summary (Match 61624670)
curl --request GET \
--url https://api.sportradar.com/soccer-extended/trial/v4/en/sport_events/sr:sport_event:61624670/extended_summary.json \
--header 'accept: application/json' \
--header 'x-api-key: YOUR_API_KEY'🔢 Versions
🔁 Endpoints Affected
⚙️ Return Sample
Return Samples
<competitor id="sr:competitor:2828" name="Valencia CF" abbreviation="VCF" qualifier="away">
<statistics assists="4" ball_possession="45" cards_given="1" chances_created="11" clean_sheet="false" clearances="30" corner_kicks="2" crosses_claimed="0" crosses_excluding_corners="5" crosses_successful="3" crosses_successful_excluding_corners="1" crosses_total="7" crosses_unsuccessful="4" defensive_blocks="0" diving_saves="2" dribbles="8" dribbles_completed="6" dribbles_successful_percentage="75" dribbles_unsuccessful="2" fouls="11" fouls_suffered_final_third="3" free_kicks="13" free_kicks_scored="0" goal_kicks="6" goals="4" goals_conceded="3" goals_counter_attack="1" goals_excluding_penalties="4" goals_expected="1.647" goals_expected_created="1.535" goals_from_header="1" goals_inside_box="4" goals_left_footed="2" goals_lower_center="1" goals_lower_left="1" goals_lower_right="1" goals_open_play="3" goals_outside_box="0" goals_right_footed="1" goals_set_piece="1" goals_top_center="0" goals_top_left="0" goals_top_right="1" injuries="1" interceptions="2" interceptions_defensive_third="1" interceptions_final_third="0" interceptions_inside_box="0" interceptions_middle_third="1" interceptions_opposition_half="0" interceptions_own_half="2" long_passes_successful="11" long_passes_total="54" long_passes_unsuccessful="43" loss_of_possession="24" offsides="3" own_goals="1" passes_backward_successful="150" passes_center="124" passes_forward_successful="155" passes_in_final_third="77" passes_in_final_third_successful="77" passes_into_box="4" passes_left="83" passes_opponent_half="105" passes_opponent_half_successful="105" passes_own_half="153" passes_own_half_successful="153" passes_right="109" passes_successful="317" passes_successful_percentage="80.25" passes_total="395" passes_unsuccessful="78" penalties_conceded="0" penalties_faced="0" penalties_missed="0" penalties_saved="0" penalties_scored="0" possessions_regained_in_defensive_third="2" possessions_regained_in_final_third="6" possessions_regained_in_middle_third="4" possessions_regained_in_opponent_half="8" possessions_regained_in_own_half="4" red_cards="1" saves_inside_box="0" saves_lower_center="0" saves_lower_left="0" saves_lower_right="0" saves_outside_box="0" saves_percentage="0" saves_top_center="0" saves_top_left="0" saves_top_right="0" shootout_penalties_faced="0" shootout_penalties_missed="0" shootout_penalties_saved="0" shootout_penalties_scored="0" shots_blocked="2" shots_center="3" shots_counter_attack="3" shots_direct_free_kicks="0" shots_excluding_blocks="11" shots_faced="6" shots_headed="0" shots_headed_off_target="0" shots_headed_on_target="0" shots_headed_woodwork="0" shots_hit_woodwork="0" shots_inside_box="0" shots_inside_box_center="0" shots_inside_box_left="0" shots_inside_box_on_target="0" shots_inside_box_right="0" shots_left="1" shots_left_footed="5" shots_left_footed_off_target="2" shots_left_footed_on_target="2" shots_missed_high="2" shots_missed_left="1" shots_missed_right="2" shots_off_target="5" shots_off_target_inside_box="0" shots_off_target_outside_box="0" shots_on_target="6" shots_on_target_lower_center="3" shots_on_target_lower_left="1" shots_on_target_lower_right="1" shots_on_target_percentage="46.15" shots_on_target_top_center="0" shots_on_target_top_left="0" shots_on_target_top_right="1" shots_open_play="11" shots_outside_box="0" shots_outside_box_center="0" shots_outside_box_left="0" shots_outside_box_on_target="0" shots_outside_box_right="0" shots_right="2" shots_right_footed="6" shots_right_footed_off_target="3" shots_right_footed_on_target="2" shots_saved="0" shots_set_piece="2" shots_total="13" substitutions="5" tackles_defensive_third_successful="1" tackles_final_third_successful="6" tackles_middle_third_successful="3" tackles_opponent_half="8" tackles_opponent_half_successful="8" tackles_own_half="3" tackles_own_half_successful="2" tackles_successful="10" tackles_total="11" tackles_unsuccessful="1" throw_ins="18" was_fouled="13" yellow_cards="0" yellow_red_cards="0"/>{
"id": "sr:competitor:2828",
"name": "Valencia CF",
"abbreviation": "VCF",
"qualifier": "away",
"statistics": {
"assists": 4,
"ball_possession": 45,
"cards_given": 1,
"chances_created": 11,
"clean_sheet": false,
"clearances": 30,
"corner_kicks": 2,
"crosses_claimed": 0,
"crosses_excluding_corners": 5,
"crosses_successful": 3,
"crosses_successful_excluding_corners": 1,
"crosses_total": 7,
"crosses_unsuccessful": 4,
"defensive_blocks": 0,
"diving_saves": 2,
"dribbles": 8,
"dribbles_completed": 6,
"dribbles_successful_percentage": 75,
"dribbles_unsuccessful": 2,
"fouls": 11,
"fouls_suffered_final_third": 3,
"free_kicks": 13,
"free_kicks_scored": 0,
"goal_kicks": 6,
"goals": 4,
"goals_conceded": 3,
"goals_counter_attack": 1,
"goals_excluding_penalties": 4,
"goals_expected": 1.647,
"goals_expected_created": 1.5350000000000001,
"goals_from_header": 1,
"goals_inside_box": 4,
"goals_left_footed": 2,
"goals_lower_center": 1,
"goals_lower_left": 1,
"goals_lower_right": 1,
"goals_open_play": 3,
"goals_outside_box": 0,
"goals_right_footed": 1,
"goals_set_piece": 1,
"goals_top_center": 0,
"goals_top_left": 0,
"goals_top_right": 1,
"injuries": 1,
"interceptions": 2,
"interceptions_defensive_third": 1,
"interceptions_final_third": 0,
"interceptions_inside_box": 0,
"interceptions_middle_third": 1,
"interceptions_opposition_half": 0,
"interceptions_own_half": 2,
"long_passes_successful": 11,
"long_passes_total": 54,
"long_passes_unsuccessful": 43,
"loss_of_possession": 24,
"offsides": 3,
"own_goals": 1,
"passes_backward_successful": 150,
"passes_center": 124,
"passes_forward_successful": 155,
"passes_in_final_third": 77,
"passes_in_final_third_successful": 77,
"passes_into_box": 4,
"passes_left": 83,
"passes_opponent_half": 105,
"passes_opponent_half_successful": 105,
"passes_own_half": 153,
"passes_own_half_successful": 153,
"passes_right": 109,
"passes_successful": 317,
"passes_successful_percentage": 80.25,
"passes_total": 395,
"passes_unsuccessful": 78,
"penalties_conceded": 0,
"penalties_faced": 0,
"penalties_missed": 0,
"penalties_saved": 0,
"penalties_scored": 0,
"possessions_regained_in_defensive_third": 2,
"possessions_regained_in_final_third": 6,
"possessions_regained_in_middle_third": 4,
"possessions_regained_in_opponent_half": 8,
"possessions_regained_in_own_half": 4,
"red_cards": 1,
"saves_inside_box": 0,
"saves_lower_center": 0,
"saves_lower_left": 0,
"saves_lower_right": 0,
"saves_outside_box": 0,
"saves_percentage": 0,
"saves_top_center": 0,
"saves_top_left": 0,
"saves_top_right": 0,
"shootout_penalties_faced": 0,
"shootout_penalties_missed": 0,
"shootout_penalties_saved": 0,
"shootout_penalties_scored": 0,
"shots_blocked": 2,
"shots_center": 3,
"shots_counter_attack": 3,
"shots_direct_free_kicks": 0,
"shots_excluding_blocks": 11,
"shots_faced": 6,
"shots_headed": 0,
"shots_headed_off_target": 0,
"shots_headed_on_target": 0,
"shots_headed_woodwork": 0,
"shots_hit_woodwork": 0,
"shots_inside_box": 0,
"shots_inside_box_center": 0,
"shots_inside_box_left": 0,
"shots_inside_box_on_target": 0,
"shots_inside_box_right": 0,
"shots_left": 1,
"shots_left_footed": 5,
"shots_left_footed_off_target": 2,
"shots_left_footed_on_target": 2,
"shots_missed_high": 2,
"shots_missed_left": 1,
"shots_missed_right": 2,
"shots_off_target": 5,
"shots_off_target_inside_box": 0,
"shots_off_target_outside_box": 0,
"shots_on_target": 6,
"shots_on_target_lower_center": 3,
"shots_on_target_lower_left": 1,
"shots_on_target_lower_right": 1,
"shots_on_target_percentage": 46.15,
"shots_on_target_top_center": 0,
"shots_on_target_top_left": 0,
"shots_on_target_top_right": 1,
"shots_open_play": 11,
"shots_outside_box": 0,
"shots_outside_box_center": 0,
"shots_outside_box_left": 0,
"shots_outside_box_on_target": 0,
"shots_outside_box_right": 0,
"shots_right": 2,
"shots_right_footed": 6,
"shots_right_footed_off_target": 3,
"shots_right_footed_on_target": 2,
"shots_saved": 0,
"shots_set_piece": 2,
"shots_total": 13,
"substitutions": 5,
"tackles_defensive_third_successful": 1,
"tackles_final_third_successful": 6,
"tackles_middle_third_successful": 3,
"tackles_opponent_half": 8,
"tackles_opponent_half_successful": 8,
"tackles_own_half": 3,
"tackles_own_half_successful": 2,
"tackles_successful": 10,
"tackles_total": 11,
"tackles_unsuccessful": 1,
"throw_ins": 18,
"was_fouled": 13,
"yellow_cards": 0,
"yellow_red_cards": 0
},Live Third-Place Rankings for World Cup
🗓️ Release Date 05/12/2026
We’ve expanded Soccer live standings support to include ranking of the best third-placed teams across all groups.
This behavior now applies to the Standings endpoint:
- Standard group standings will continue to update dynamically during live matches.
current_outcomedata can now indicate qualification status for teams currently occupying a best third-place position.- A new live standings table will display all teams currently placed 3rd in their respective groups and rank them against one another.
This additional table is separate from the official tournament groups and is generated dynamically during live play. Teams will move into and out of the rankings as match results change.
⭐ Benefit
This update allows users to:
- Track which third-placed teams are currently advancing in the World Cup
- View the live ranking order of all third-place teams
- Monitor qualification changes in real time during simultaneous group-stage matches
The behavior mirrors existing live standings functionality, with rankings continuously recalculated throughout active matches.
☑️ Sample Request:
Season Standings (World Cup)
curl --request GET \
--url https://api.sportradar.com/soccer/trial/v4/en/seasons/sr:season:101177/standings.json \
--header 'accept: application/json' \
--header 'x-api-key: YOUR_API_KEY'🔢 Versions
🔁 Endpoints Affected
- Season Standings
⚙️ Return Sample
Return Samples
<season_standing tie_break_rule="In the event that two (or more) teams finish with an equal number of points, the following rules break the tie: 1. Head-to-head games between the teams concerned 1a. Points total 1b. Goal difference 1c. Goals scored 2. Overall goal difference 3. Overall number of goals scored 4. Disciplinary points 5. Higher position in FIFA World Ranking" type="best_third" points_win="3" points_draw="1" points_loss="0" round="1">
<groups>
<group id="sr:league:106218" name="Best third" live="false">
<stage order="1" type="league" phase="best third" start_date="2026-06-11" end_date="2026-06-25" year="2026"/>
<standings>
<standing rank="1" played="0" win="0" loss="0" draw="0" goals_for="0" goals_against="0" goals_diff="0" points="0" current_outcome="Playoffs" change="0">
<competitor id="sr:competitor:4766" name="IR Iran" country="Iran" country_code="IRN" abbreviation="IRI" gender="male"/>
</standing>
<standing rank="2" played="0" win="0" loss="0" draw="0" goals_for="0" goals_against="0" goals_diff="0" points="0" current_outcome="Playoffs" change="0">
<competitor id="sr:competitor:4718" name="Austria" country="Austria" country_code="AUT" abbreviation="AUT" gender="male"/>
</standing>
<standing rank="3" played="0" win="0" loss="0" draw="0" goals_for="0" goals_against="0" goals_diff="0" points="0" current_outcome="Playoffs" change="0">
<competitor id="sr:competitor:4735" name="Korea Republic" country="Republic of Korea" country_code="KOR" abbreviation="KOR" gender="male"/>
</standing>
<standing rank="4" played="0" win="0" loss="0" draw="0" goals_for="0" goals_against="0" goals_diff="0" points="0" current_outcome="Playoffs" change="0">
<competitor id="sr:competitor:4741" name="Australia" country="Australia" country_code="AUS" abbreviation="AUS" gender="male"/>
</standing>
<standing rank="5" played="0" win="0" loss="0" draw="0" goals_for="0" goals_against="0" goals_diff="0" points="0" current_outcome="Playoffs" change="0">
<competitor id="sr:competitor:4768" name="Ivory Coast" country="Cote d’Ivoire" country_code="CIV" abbreviation="CIV" gender="male"/>
</standing>
<standing rank="6" played="0" win="0" loss="0" draw="0" goals_for="0" goals_against="0" goals_diff="0" points="0" current_outcome="Playoffs" change="0">
<competitor id="sr:competitor:4688" name="Sweden" country="Sweden" country_code="SWE" abbreviation="SWE" gender="male"/>
</standing>
<standing rank="7" played="0" win="0" loss="0" draw="0" goals_for="0" goals_against="0" goals_diff="0" points="0" current_outcome="Playoffs" change="0">
<competitor id="sr:competitor:4723" name="Uzbekistan" country="Uzbekistan" country_code="UZB" abbreviation="UZB" gender="male"/>
</standing>
<standing rank="8" played="0" win="0" loss="0" draw="0" goals_for="0" goals_against="0" goals_diff="0" points="0" current_outcome="Playoffs" change="0">
<competitor id="sr:competitor:4792" name="Qatar" country="Qatar" country_code="QAT" abbreviation="QAT" gender="male"/>
</standing>
<standing rank="9" played="0" win="0" loss="0" draw="0" goals_for="0" goals_against="0" goals_diff="0" points="0" change="0">
<competitor id="sr:competitor:4767" name="Iraq" country="Iraq" country_code="IRQ" abbreviation="IRQ" gender="male"/>
</standing>
<standing rank="10" played="0" win="0" loss="0" draw="0" goals_for="0" goals_against="0" goals_diff="0" points="0" change="0">
<competitor id="sr:competitor:4834" name="Saudi Arabia" country="Saudi Arabia" country_code="SAU" abbreviation="KSA" gender="male"/>
</standing>
<standing rank="11" played="0" win="0" loss="0" draw="0" goals_for="0" goals_against="0" goals_diff="0" points="0" change="0">
<competitor id="sr:competitor:4764" name="Ghana" country="Ghana" country_code="GHA" abbreviation="GHA" gender="male"/>
</standing>
<standing rank="12" played="0" win="0" loss="0" draw="0" goals_for="0" goals_against="0" goals_diff="0" points="0" change="0">
<competitor id="sr:competitor:7229" name="Haiti" country="Haiti" country_code="HTI" abbreviation="HTI" gender="male"/>
</standing>
</standings>
</group>
</groups>
</season_standing>{
"tie_break_rule": "In the event that two (or more) teams finish with an equal number of points, the following rules break the tie:\r\n1. Head-to-head games between the teams concerned\r\n1a. Points total\r\n1b. Goal difference\r\n1c. Goals scored\r\n2. Overall goal difference\r\n3. Overall number of goals scored\r\n4. Disciplinary points\r\n5. Higher position in FIFA World Ranking",
"type": "best_third",
"groups": [
{
"stage": {
"order": 1,
"type": "league",
"phase": "best third",
"start_date": "2026-06-11",
"end_date": "2026-06-25",
"year": "2026"
},
"id": "sr:league:106218",
"name": "Best third",
"live": false,
"standings": [
{
"rank": 1,
"played": 0,
"win": 0,
"loss": 0,
"draw": 0,
"goals_for": 0,
"goals_against": 0,
"goals_diff": 0,
"competitor": {
"id": "sr:competitor:4766",
"name": "IR Iran",
"country": "Iran",
"country_code": "IRN",
"abbreviation": "IRI",
"gender": "male"
},
"points": 0,
"current_outcome": "Playoffs",
"change": 0
},
{
"rank": 2,
"played": 0,
"win": 0,
"loss": 0,
"draw": 0,
"goals_for": 0,
"goals_against": 0,
"goals_diff": 0,
"competitor": {
"id": "sr:competitor:4718",
"name": "Austria",
"country": "Austria",
"country_code": "AUT",
"abbreviation": "AUT",
"gender": "male"
},
"points": 0,
"current_outcome": "Playoffs",
"change": 0
},
{
"rank": 3,
"played": 0,
"win": 0,
"loss": 0,
"draw": 0,
"goals_for": 0,
"goals_against": 0,
"goals_diff": 0,
"competitor": {
"id": "sr:competitor:4735",
"name": "Korea Republic",
"country": "Republic of Korea",
"country_code": "KOR",
"abbreviation": "KOR",
"gender": "male"
},
"points": 0,
"current_outcome": "Playoffs",
"change": 0
},
{
"rank": 4,
"played": 0,
"win": 0,
"loss": 0,
"draw": 0,
"goals_for": 0,
"goals_against": 0,
"goals_diff": 0,
"competitor": {
"id": "sr:competitor:4741",
"name": "Australia",
"country": "Australia",
"country_code": "AUS",
"abbreviation": "AUS",
"gender": "male"
},
"points": 0,
"current_outcome": "Playoffs",
"change": 0
},
{
"rank": 5,
"played": 0,
"win": 0,
"loss": 0,
"draw": 0,
"goals_for": 0,
"goals_against": 0,
"goals_diff": 0,
"competitor": {
"id": "sr:competitor:4768",
"name": "Ivory Coast",
"country": "Cote d’Ivoire",
"country_code": "CIV",
"abbreviation": "CIV",
"gender": "male"
},
"points": 0,
"current_outcome": "Playoffs",
"change": 0
},
{
"rank": 6,
"played": 0,
"win": 0,
"loss": 0,
"draw": 0,
"goals_for": 0,
"goals_against": 0,
"goals_diff": 0,
"competitor": {
"id": "sr:competitor:4688",
"name": "Sweden",
"country": "Sweden",
"country_code": "SWE",
"abbreviation": "SWE",
"gender": "male"
},
"points": 0,
"current_outcome": "Playoffs",
"change": 0
},
{
"rank": 7,
"played": 0,
"win": 0,
"loss": 0,
"draw": 0,
"goals_for": 0,
"goals_against": 0,
"goals_diff": 0,
"competitor": {
"id": "sr:competitor:4723",
"name": "Uzbekistan",
"country": "Uzbekistan",
"country_code": "UZB",
"abbreviation": "UZB",
"gender": "male"
},
"points": 0,
"current_outcome": "Playoffs",
"change": 0
},
{
"rank": 8,
"played": 0,
"win": 0,
"loss": 0,
"draw": 0,
"goals_for": 0,
"goals_against": 0,
"goals_diff": 0,
"competitor": {
"id": "sr:competitor:4792",
"name": "Qatar",
"country": "Qatar",
"country_code": "QAT",
"abbreviation": "QAT",
"gender": "male"
},
"points": 0,
"current_outcome": "Playoffs",
"change": 0
},
{
"rank": 9,
"played": 0,
"win": 0,
"loss": 0,
"draw": 0,
"goals_for": 0,
"goals_against": 0,
"goals_diff": 0,
"competitor": {
"id": "sr:competitor:4767",
"name": "Iraq",
"country": "Iraq",
"country_code": "IRQ",
"abbreviation": "IRQ",
"gender": "male"
},
"points": 0,
"change": 0
},
{
"rank": 10,
"played": 0,
"win": 0,
"loss": 0,
"draw": 0,
"goals_for": 0,
"goals_against": 0,
"goals_diff": 0,
"competitor": {
"id": "sr:competitor:4834",
"name": "Saudi Arabia",
"country": "Saudi Arabia",
"country_code": "SAU",
"abbreviation": "KSA",
"gender": "male"
},
"points": 0,
"change": 0
},
{
"rank": 11,
"played": 0,
"win": 0,
"loss": 0,
"draw": 0,
"goals_for": 0,
"goals_against": 0,
"goals_diff": 0,
"competitor": {
"id": "sr:competitor:4764",
"name": "Ghana",
"country": "Ghana",
"country_code": "GHA",
"abbreviation": "GHA",
"gender": "male"
},
"points": 0,
"change": 0
},
{
"rank": 12,
"played": 0,
"win": 0,
"loss": 0,
"draw": 0,
"goals_for": 0,
"goals_against": 0,
"goals_diff": 0,
"competitor": {
"id": "sr:competitor:7229",
"name": "Haiti",
"country": "Haiti",
"country_code": "HTI",
"abbreviation": "HTI",
"gender": "male"
},
"points": 0,
"change": 0
}
]
}
],
"points_win": 3,
"points_draw": 1,
"points_loss": 0,
"round": 1
}Start Date Confirmed Flag
🗓️ Release Date 05/06/2026
We've added a date_confirmed attribute to our Soccer APIs.
This indicates whether the scheduled date of a sport event is confirmed, even if the start time remains unconfirmed.
When date_confirmed = true and start_time_confirmed = false, the event is guaranteed to occur on the specified date, but the exact start time is still TBD.
⭐ Benefit
Definitively indicate when an upcoming match is scheduled for a specific date, when the start time on that date is not yet known.
Return Samples
<!-- Date confirmed, start time not yet confirmed -->
<sport_event id="sr:sport_event:68156836"
start_time="2026-05-10T00:00:00+00:00"
start_time_confirmed="false"
date_confirmed="true">☑️ Sample Request:
Season Summaries
curl --request GET \
--url https://api.sportradar.com/soccer/trial/v4/en/seasons/sr:season:130281/summaries.json \
--header 'accept: application/json' \
--header 'x-api-key: YOUR_API_KEY'🔢 Versions
🔁 Endpoints Affected
Competitor:
- Schedules
- Summaries
- vs Competitor
Daily:
- Schedules
- Summaries
Season:
- Schedules
- Summaries
- Lineups
- Links
- Probabilities
Sport Event:
- Summary
- Timeline
- Lineups
- League Timeline
- Momentum (Extended)
- Extended Summary (Extended)
- Extended Timeline (Extended)
Live:
- Schedules
- Summaries
Player:
- Player Schedules
- Player Summaries
Probabilities Package:
- Live Probabilities
- Sport Event Probabilities
- Timeline Probabilities
⚙️ Return Sample
Return Samples
<sport_event id="sr:sport_event:68156836" start_time="2026-05-07T00:00:00+00:00" start_time_confirmed="true" date_confirmed="true">
<sport_event_context>
<sport id="sr:sport:1" name="Soccer"/>
<category id="sr:category:26" name="USA" country_code="USA"/>
<competition id="sr:competition:36479" name="MLS Next Pro" gender="men"/>
<season id="sr:season:139090" name="MLS Next Pro 2026" start_date="2026-02-28" end_date="2026-11-09" year="2026" competition_id="sr:competition:36479"/>
<stage order="1" type="league" phase="regular season" start_date="2026-02-28" end_date="2026-09-20" year="2026"/>
<round/>
<groups>
<group id="sr:league:104598" name="MLS Next Pro 2026"/>
<group id="sr:league:104602" name="MLS Next Pro 2026, Western Conference" group_name="Western"/>
</groups>
</sport_event_context>
<coverage type="sport_event">
<sport_event_properties lineups="false" formations="false" venue="true" extended_play_by_play="false" extended_player_stats="false" extended_team_stats="false" ballspotting="false" commentary="false" fun_facts="false" goal_scorers="false" goal_scorers_live="false" scores="post" game_clock="false" deeper_play_by_play="false" deeper_player_stats="false" deeper_team_stats="false" basic_play_by_play="false" basic_player_stats="false" basic_team_stats="false"/>
</coverage>
<competitors>
<competitor id="sr:competitor:239006" name="Sporting Kansas City II" country="USA" country_code="USA" abbreviation="SKC" qualifier="home" gender="male"/>
<competitor id="sr:competitor:153490" name="Ventura County FC" country="USA" country_code="USA" abbreviation="VEN" qualifier="away" gender="male"/>
</competitors>
<venue id="sr:venue:82567" name="Swope Park" capacity="8000" city_name="Kansas City, MO" country_name="USA" map_coordinates="39.007813, -94.5348" country_code="USA" timezone="America/Chicago"/>
<sport_event_conditions>
<ground neutral="false"/>
</sport_event_conditions>
</sport_event>{
"sport_event": {
"id": "sr:sport_event:70075098",
"start_time": "2026-05-07T00:00:00+00:00",
"start_time_confirmed": true,
"date_confirmed": true,
"sport_event_context": {
"sport": {
"id": "sr:sport:1",
"name": "Soccer"
},
"category": {
"id": "sr:category:393",
"name": "International Clubs"
},
"competition": {
"id": "sr:competition:480",
"name": "CONMEBOL Sudamericana",
"gender": "men"
},
"season": {
"id": "sr:season:138028",
"name": "CONMEBOL Sudamericana 2026",
"start_date": "2026-03-03",
"end_date": "2026-11-22",
"year": "2026",
"competition_id": "sr:competition:480"
},
"stage": {
"order": 2,
"type": "league",
"phase": "regular season",
"start_date": "2026-04-07",
"end_date": "2026-05-29",
"year": "2026"
},
"round": {
"number": 4
},
"groups": [
{
"id": "sr:league:105850",
"name": "CONMEBOL Sudamericana 2026, Group A",
"group_name": "A"
}
]
},
"coverage": {
"type": "sport_event",
"sport_event_properties": {
"lineups": true,
"formations": true,
"venue": true,
"extended_play_by_play": true,
"extended_player_stats": true,
"extended_team_stats": true,
"lineups_availability": "pre",
"ballspotting": true,
"commentary": true,
"fun_facts": true,
"goal_scorers": true,
"goal_scorers_live": true,
"scores": "live",
"game_clock": true,
"deeper_play_by_play": true,
"deeper_player_stats": true,
"deeper_team_stats": true,
"basic_play_by_play": true,
"basic_player_stats": true,
"basic_team_stats": true
}
},
"competitors": [
{
"id": "sr:competitor:6001",
"name": "CSD Macara",
"country": "Ecuador",
"country_code": "ECU",
"abbreviation": "MAC",
"qualifier": "home",
"gender": "male"
},
{
"id": "sr:competitor:7628",
"name": "CA Tigre",
"country": "Argentina",
"country_code": "ARG",
"abbreviation": "TIG",
"qualifier": "away",
"gender": "male"
}
],
"venue": {
"id": "sr:venue:2966",
"name": "Estadio Bellavista",
"capacity": 20000,
"city_name": "Ambato",
"country_name": "Ecuador",
"map_coordinates": "-1.244694, -78.623174",
"country_code": "ECU",
"timezone": "America/Guayaquil"
},
"sport_event_conditions": {
"referees": [
{
"id": "sr:referee:1705647",
"name": "Zanovelli da Silva, Paulo Cesar",
"nationality": "Brazil",
"country_code": "BRA",
"type": "main_referee"
}
],
"ground": {
"neutral": false
}
}
},
"sport_event_status": {
"status": "not_started",
"match_status": "not_started"
}
},Soccer Simulations
🗓️ Release Date 05/04/2026
We've added Soccer APIs to our Simulations offering!
⭐ What You Can Do
- Retrieve available recordings and supported feeds
- Replay matches on demand, on your own schedule
- Test integrations using both REST and Push feeds
New recordings will continue to be added as matches are played.
☑️ Sample Request:
Sport Event Summary
curl --location 'https://playback.sportradar.com/replay/soccer/{recording_id}?feed=summary&contentType=json&sessionId={session_id}'🔢 Versions
🔁 Endpoints Supported
Sport Event
- Lineups
- Summary
- Timeline
- Extended Summary
- Extended Timeline
Season
- Standings
- Links
- Summaries
- Leaders
- Missing Players
- Info
- Competitors
Push
- Events
- Statistics
'Seasons Disabled' Endpoint
🗓️ Release Date 04/28/2026
We've added a Seasons Disabled endpoint to each of our Soccer APIs, providing a list of currently disabled seasons, including future seasons that have not yet been enabled.
Season details and availability are subject to change prior to enablement.
⭐ Benefit
Leverage this endpoint to obtain IDs for upcoming competitions, enabling you to prepare your product for live games.
For example, pull this feed now to obtain details for this fall's Premier League:
Return Samples
<season id="sr:season:140756" name="Premier League 26/27" start_date="2026-08-22" end_date="2027-05-30" year="26/27" competition_id="sr:competition:17" disabled="true" />☑️ Sample Request:
Seasons Disabled
curl --request GET \
--url https://api.sportradar.com/soccer/trial/v4/en/seasons_disabled.json \
--header 'accept: application/json' \
--header 'x-api-key: YOUR_API_KEY'🔢 Versions
🔁 Endpoints Affected
⚙️ Return Sample
Return Samples
<season id="sr:season:140786" name="UEFA Champions League 26/27" start_date="2026-07-07" end_date="2027-06-05" year="26/27" competition_id="sr:competition:7" disabled="true"/>
<season id="sr:season:140756" name="Premier League 26/27" start_date="2026-08-22" end_date="2027-05-30" year="26/27" competition_id="sr:competition:17" disabled="true"/>
<season id="sr:season:140810" name="Championship 26/27" start_date="2026-08-14" end_date="2027-05-29" year="26/27" competition_id="sr:competition:18" disabled="true"/>
<season id="sr:season:140816" name="EFL Cup 26/27" start_date="2026-08-14" end_date="2027-02-28" year="26/27" competition_id="sr:competition:21" disabled="true"/>
<season id="sr:season:140782" name="Serie A 26/27" start_date="2026-08-21" end_date="2027-05-30" year="26/27" competition_id="sr:competition:23" disabled="true"/>"seasons_disabled": [
{
"id": "sr:season:140786",
"name": "UEFA Champions League 26/27",
"start_date": "2026-07-07",
"end_date": "2027-06-05",
"year": "26/27",
"competition_id": "sr:competition:7",
"disabled": true
},
{
"id": "sr:season:140756",
"name": "Premier League 26/27",
"start_date": "2026-08-22",
"end_date": "2027-05-30",
"year": "26/27",
"competition_id": "sr:competition:17",
"disabled": true
},
{
"id": "sr:season:140810",
"name": "Championship 26/27",
"start_date": "2026-08-14",
"end_date": "2027-05-29",
"year": "26/27",
"competition_id": "sr:competition:18",
"disabled": true
},
{
"id": "sr:season:140816",
"name": "EFL Cup 26/27",
"start_date": "2026-08-14",
"end_date": "2027-02-28",
"year": "26/27",
"competition_id": "sr:competition:21",
"disabled": true
},
{
"id": "sr:season:140782",
"name": "Serie A 26/27",
"start_date": "2026-08-21",
"end_date": "2027-05-30",
"year": "26/27",
"competition_id": "sr:competition:23",
"disabled": true
},Infrastructure Update
🗓️ Release Date 04/28/2026
We are upgrading our event infrastructure to improve consistency and quality.
No breaking changes are expected, however there is potential for some changes in behaviour. Our support team is on hand if you experience any issues.
🔢 Versions
Earlier updatesOlder updates are listed in the Change Log Archive.
