FUSSBALL.DE API endpoint
Returns a registered player's matches for one season and team: date, teams, result and per match the goals, the minute they were substituted in or out, and minutes played. Also lists the player's teams and competitions for the season so another team can be selected with `team_id`. Basic profiles without registration have no match data.
/fussballde/player-matchesplayer_id (string, required): Player id of a full profile, see fussballde-player.season (string, optional): Four-digit season code, default current season.team_id (string, optional): Team id from the teams list of a previous response; default the player's main team.Standard envelope; data holds the result described above. Dates are ISO YYYY-MM-DD. minutes, subbed_in_minute and subbed_out_minute are omitted when the site shows a dash. teams and competitions list the options for the selected season. Errors: 400 invalid parameter, 404 unknown id, 503 upstream failure. status is one of finished, scheduled, cancelled (Absetzung or Ausfall: called off), annulled, abandoned (Abbruch), no_show (Nichtantritt: a team did not turn up) or other (text the service does not recognise, kept in note). A finished result that was not simply played out carries result_qualifier: after_extra_time, after_penalties, awarded (set by the match authority), court_ruling, administrative_decision or test_match; note keeps the site's own marker, such as nE or Absetzung.
| Field | Filled in, of 34 checked | Values in the sample |
|---|---|---|
| match | 34 | |
| subbed_out_minute | 4 | 61 to 81, median 74 |
| minutes | 7 | 61 to 90, median 81 |
| goals | 6 | 1 to 2, median 1 |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| player_id | string | Yes | Player id of a full profile, see fussballde-player | 01MH0AKR7C000007VV0AG13EVSFDFGE6 | |
| season | string | No | Four-digit season code, default current season | 2627 | |
| team_id | string | No | Team id from the teams list of a previous response; default the player's main team | 030POM2JO0000000VS5489BSVSO3A7B3 | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/fussballde/player-matches?player_id=01MH0AKR7C000007VV0AG13EVSFDFGE6" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"appearances": [
{
"match": {
"away": {
"club_id": "00ES8GN8I400001CVV0AG08LVUPGND5I",
"logo_url": "https://www.fussball.de/export.media/-/action/getLogo/format/0/id/00ES8GN8I400001CVV0AG08LVUPGND5I/verband/0123456789ABCDEF0123456700004010",
"name": "SV Werder Bremen",
"team_id": "011MIC0IEC000000VTVG0001VTR8C1K7",
"url": "https://www.fussball.de/mannschaft/sv-werder-bremen-werder-bremen-bremen/-/saison/2627/team-id/011MIC0IEC000000VTVG0001VTR8C1K7"
},
"away_score": 1,
"date": "2026-08-30",
"home": {
"club_id": "00ES8GN9DO00000TVV0AG08LVUPGND5I",
"logo_url": "https://www.fussball.de/export.media/-/action/getLogo/format/0/id/00ES8GN9DO00000TVV0AG08LVUPGND5I/verband/0123456789ABCDEF0123456700004010",
"name": "Sport-Club Freiburg",
"team_id": "011MIC0ICG000000VTVG0001VTR8C1K7",
"url": "https://www.fussball.de/mannschaft/sport-club-freiburg-sc-freiburg-suedbaden/-/saison/2627/team-id/011MIC0ICG000000VTVG0001VTR8C1K7"
},
"home_score": 4,
"id": "031BFTHBG4000000VS5489BUVUR5FS5A",
"status": "finished",
"url": "https://www.fussball.de/spiel/sport-club-freiburg-sv-werder-bremen/-/spiel/031BFTHBG4000000VS5489BUVUR5FS5A"
},
"minutes": 61,
"subbed_out_minute": 61
},
{
"goals": 1,
"match": {
"away": {
"club_id": "012GQ6KPT8000000VV0AG811VSSOGHMU",
"logo_url": "https://www.fussball.de/export.media/-/action/getLogo/format/0/id/012GQ6KPT8000000VV0AG811VSSOGHMU/verband/0123456789ABCDEF0123456700004010",
"name": "RB Leipzig",
"team_id": "012Q6F4P9K000000VV0AG811VVN6GICI",
"url": "https://www.fussball.de/mannschaft/rb-leipzig-rasenballsport-leipzig-sachsen/-/saison/2627/team-id/012Q6F4P9K000000VV0AG811VVN6GICI"
},
"away_score": 1,
"date": "2026-09-05",
"home": {
"club_id": "00ES8GN8I400001CVV0AG08LVUPGND5I",
"logo_url": "https://www.fussball.de/export.media/-/action/getLogo/format/0/id/00ES8GN8I400001CVV0AG08LVUPGND5I/verband/0123456789ABCDEF0123456700004010",
"name": "SV Werder Bremen",
"team_id": "011MIC0IEC000000VTVG0001VTR8C1K7",
"url": "https://www.fussball.de/mannschaft/sv-werder-bremen-werder-bremen-bremen/-/saison/2627/team-id/011MIC0IEC000000VTVG0001VTR8C1K7"
},
"home_score": 3,
"id": "031BFTHC58000000VS5489BUVUR5FS5A",
"status": "finished",
"url": "https://www.fussball.de/spiel/sv-werder-bremen-rb-leipzig/-/spiel/031BFTHC58000000VS5489BUVUR5FS5A"
},
"minutes": 74,
"subbed_out_minute": 74
}
],
"competition": "SV Werder Bremen (Herren), Bundesliga",
"competitions": [
{
"id": "031BFREJC800001BVS5489BUVUR5FS5A-G",
"name": "Bundesliga"
}
],
"count": 3,
"player_id": "01MH0AKR7C000007VV0AG13EVSFDFGE6",
"season": "2627",
"team_id": "030POLP1B8000000VS5489BSVSO3A7B3",
"teams": [
{
"id": "030POLP1B8000000VS5489BSVSO3A7B3",
"name": "SV Werder Bremen (Herren)"
},
{
"id": "030POM2JO0000000VS5489BSVSO3A7B3",
"name": "SV Werder Bremen II (Herren)"
}
]
}
}Request schema
No body schema
Response schema
#/definitions/fussballde.playerMatchesResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | fussballde.PlayerMatchesResponse | No | ||||
| data.appearances | array | No | ||||
| data.appearances[].goals | integer | No | ||||
| data.appearances[].match | fussballde.MatchRow | No | MatchRow record, 26 fields: away, away_score, competition, date, home, home_score, id, league, match_number, note, result_qualifier, round and 4 more. Described under FUSSBALL.DE Matchday API. | |||
| data.appearances[].minutes | integer | No | ||||
| data.appearances[].subbed_in_minute | integer | No | ||||
| data.appearances[].subbed_out_minute | integer | No | ||||
| data.competition | string | No | SV Werder Bremen (Herren), Bundesliga | |||
| data.competitions | array | No | ||||
| data.competitions[].id | string | No | 2627 | |||
| data.competitions[].name | string | No | 26/27 | |||
| data.count | integer | No | ||||
| data.player_id | string | No | ||||
| data.season | string | No | ||||
| data.team_id | string | No | ||||
| data.teams | array | No | ||||
| data.teams[].id | string | No | 2627 | |||
| data.teams[].name | string | No | 26/27 | |||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 404 | Not Found | #/definitions/app.Response |
| 503 | Service Unavailable | #/definitions/app.Response |
Use environment variables for secrets and keep Crawlora API keys server-side.
curl -X GET "https://api.crawlora.net/api/v1/fussballde/player-matches?player_id=01MH0AKR7C000007VV0AG13EVSFDFGE6" \
-H "x-api-key: $CRAWLORA_API_KEY"