Player absences
A player's injuries and suspensions. By default you get only what keeps them out right now; pass current=false to see their history too. Use it to flag unavailable players before a match or on a profile page.
https://api.soccer-data.co/v1/players/{player_id}/injuries-suspensions
- With current=false, past records come back as well. Check active on each record to tell them apart.
- A suspension only counts in its own competition. A player banned in the league can still be free to play in a cup.
- A ban reported twice appears only once.
- International call-ups listed under an international competition are left out.
- expected_return is a best guess, not a fixed date.
- To check a whole squad in one request, use the team absences endpoint instead.
The player's id, like player_…. Find one with the ID guide.
true returns only injuries and suspensions in effect now. false returns every record, past ones included.
The player's injuries.
The injured player.
How serious it is, for example out or day_to_day.
The kind of injury, as a code such as leg_injury.
When the injury started, as an ISO 8601 date-time.
Estimated return date, as an ISO 8601 date-time. Null when there's no estimate or the absence is open-ended.
True while the injury still keeps the player out. False for past injuries.
The player's suspensions.
The suspended player.
Why the player is out, as a code such as red_card_suspension. national_team means the player is away with their country and misses club games; it isn't a ban.
How many matches the ban lasts.
The competition the ban applies to.
The competition's id.
The competition's name.
When the suspension starts, as an ISO 8601 date-time.
When the suspension ends, as an ISO 8601 date-time.
True while the suspension is in force. False for past suspensions.
curl "https://api.soccer-data.co/v1/players/player_rzw8un0kyit8/injuries-suspensions" \ -H "X-Api-Key: $SOCCER_DATA_KEY"
const res = await fetch("https://api.soccer-data.co/v1/players/player_rzw8un0kyit8/injuries-suspensions", {
headers: { "X-Api-Key": process.env.SOCCER_DATA_KEY },
});
const { data } = await res.json();
import os, requests
res = requests.get(
"https://api.soccer-data.co/v1/players/player_rzw8un0kyit8/injuries-suspensions",
headers={"X-Api-Key": os.environ["SOCCER_DATA_KEY"]},
)
data = res.json()["data"]
$data = Http::withHeaders(['X-Api-Key' => env('SOCCER_DATA_KEY')])
->get('https://api.soccer-data.co/v1/players/player_rzw8un0kyit8/injuries-suspensions')
->json('data');
{
"data": {
"injuries": [
{
"player_id": "player_rzw8un0kyit8",
"status": "out",
"reason": "leg_injury",
"start_date": "2026-09-29T00:00:00.000Z",
"expected_return": "2027-01-10T00:00:00.000Z",
"active": true
}
],
"suspensions": [
{
"player_id": "player_rzw8un0kyit8",
"reason": "red_card_suspension",
"matches": 1,
"competition": {
"id": "competition_ozwhqjc3z9ic",
"name": "LaLiga"
},
"start_date": "2026-09-20T17:30:17.000Z",
"end_date": "2026-10-10T22:00:00.000Z",
"active": true
}
]
}
}
### GET /players/{player_id}/injuries-suspensions
Player absences
A player's injuries and suspensions. By default you get only what keeps them out right now; pass current=false to see their history too. Use it to flag unavailable players before a match or on a profile page.
- With current=false, past records come back as well. Check active on each record to tell them apart.
- A suspension only counts in its own competition. A player banned in the league can still be free to play in a cup.
- A ban reported twice appears only once.
- International call-ups listed under an international competition are left out.
- expected_return is a best guess, not a fixed date.
- To check a whole squad in one request, use the team absences endpoint instead.
Query parameters:
- `current` (boolean, default true): true returns only injuries and suspensions in effect now. false returns every record, past ones included.
Response fields:
- `data.injuries[]` (array): The player's injuries.
- `data.injuries[].player_id` (string): The injured player.
- `data.injuries[].status` (string|null): How serious it is, for example out or day_to_day.
- `data.injuries[].reason` (string|null): The kind of injury, as a code such as leg_injury.
- `data.injuries[].start_date` (string|null): When the injury started, as an ISO 8601 date-time.
- `data.injuries[].expected_return` (string|null): Estimated return date, as an ISO 8601 date-time. Null when there's no estimate or the absence is open-ended.
- `data.injuries[].active` (boolean): True while the injury still keeps the player out. False for past injuries.
- `data.suspensions[]` (array): The player's suspensions.
- `data.suspensions[].player_id` (string): The suspended player.
- `data.suspensions[].reason` (string|null): Why the player is out, as a code such as red_card_suspension. national_team means the player is away with their country and misses club games; it isn't a ban.
- `data.suspensions[].matches` (integer|null): How many matches the ban lasts.
- `data.suspensions[].competition` (object|null): The competition the ban applies to.
- `data.suspensions[].competition.id` (string): The competition's id.
- `data.suspensions[].competition.name` (string): The competition's name.
- `data.suspensions[].start_date` (string|null): When the suspension starts, as an ISO 8601 date-time.
- `data.suspensions[].end_date` (string|null): When the suspension ends, as an ISO 8601 date-time.
- `data.suspensions[].active` (boolean): True while the suspension is in force. False for past suspensions.
Example: curl "https://api.soccer-data.co/v1/players/player_rzw8un0kyit8/injuries-suspensions" -H "X-Api-Key: $SOCCER_DATA_KEY"