FUSSBALL.DE API endpoint
Returns one match: teams, competition, date, kick-off time, venue, score and half-time score, match number and matchday, officials, goals with minutes and timeline events such as substitutions. Fields the match has not published (for example a future match's score) are omitted.
/fussballde/matchmatch_id (string, required): Match id from fussballde-matchday or fussballde-match-plan.Standard envelope; data holds the result described above. Dates are ISO YYYY-MM-DD, times are local HH:MM. Scores, dates and names that FUSSBALL.DE serves as obfuscated glyphs are decoded server-side. Errors: 400 invalid parameter, 404 unknown id, 503 upstream failure.
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| match_id | string | Yes | Match id from fussballde-matchday or fussballde-match-plan | 031BFTHDCC000000VS5489BUVUR5FS5A | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/fussballde/match?match_id=031BFTHDCC000000VS5489BUVUR5FS5A" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"assistants": [
"Alexander Sather",
"Stefan Lupp"
],
"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_goals": [
{
"minute": 88,
"player": "Ludovit Reis"
},
{
"minute": 90,
"player": "Niclas Füllkrug",
"stoppage_minute": 2
}
],
"away_score": 2,
"competition": "Bundesliga",
"competition_id": "031BFREJC800001BVS5489BUVUR5FS5A-G",
"date": "2026-10-09",
"events": [
{
"minute": 19,
"side": "away",
"type": "substitute"
},
{
"minute": 63,
"side": "home",
"type": "substitute"
}
],
"fourth_official": "Tom Bauer",
"halftime_score": "0 : 0",
"home": {
"club_id": "00ES8GN8N400008VVV0AG08LVUPGND5I",
"logo_url": "https://www.fussball.de/export.media/-/action/getLogo/format/0/id/00ES8GN8N400008VVV0AG08LVUPGND5I/verband/0123456789ABCDEF0123456700004010",
"name": "Borussia Dortmund",
"team_id": "011MI8V6UC000000VTVG0001VTR8C1K7",
"url": "https://www.fussball.de/mannschaft/borussia-dortmund-borussia-dortmund-westfalen/-/saison/2627/team-id/011MI8V6UC000000VTVG0001VTR8C1K7"
},
"home_goals": [
{
"minute": 80,
"player": "Daniel Jonathan Svensson"
},
{
"minute": 85,
"player": "Nico Schlotterbeck"
}
],
"home_score": 2,
"id": "031BFTHDCC000000VS5489BUVUR5FS5A",
"match_number": "890000037",
"matchday": "5. Spieltag",
"referee": "Christian Dingert",
"status": "finished",
"time": "20:30",
"url": "https://www.fussball.de/spiel/borussia-dortmund-sv-werder-bremen/-/spiel/031BFTHDCC000000VS5489BUVUR5FS5A",
"venue": "Rasenplatz, SIGNAL IDUNA PARK, Strobelallee 50, 44139 Dortmund"
}
}Request schema
No body schema
Response schema
#/definitions/fussballde.matchResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | fussballde.MatchDetail | No | ||||
| data.assistants | array | No | ||||
| data.away | fussballde.TeamRef | No | ||||
| data.away.club_id | string | No | 00ES8GN8N400008VVV0AG08LVUPGND5I | |||
| data.away.logo_url | string | No | ||||
| data.away.name | string | No | Borussia Dortmund | |||
| data.away.team_id | string | No | 011MI8V6UC000000VTVG0001VTR8C1K7 | |||
| data.away.url | string | No | ||||
| data.away_goals | array | No | ||||
| data.away_goals[].minute | integer | No | 80 | |||
| data.away_goals[].player | string | No | Daniel Jonathan Svensson | |||
| data.away_goals[].stoppage_minute | integer | No | 2 | |||
| data.away_score | integer | No | ||||
| data.competition | string | No | Bundesliga | |||
| data.competition_id | string | No | ||||
| data.date | string | No | 2026-10-09 | |||
| data.events | array | No | ||||
| data.events[].minute | integer | No | ||||
| data.events[].side | string | No | home | |||
| data.events[].type | string | No | substitute | |||
| data.fourth_official | string | No | ||||
| data.halftime_score | string | No | 0 : 0 | |||
| data.home | fussballde.TeamRef | No | ||||
| data.home.club_id | string | No | 00ES8GN8N400008VVV0AG08LVUPGND5I | |||
| data.home.logo_url | string | No | ||||
| data.home.name | string | No | Borussia Dortmund | |||
| data.home.team_id | string | No | 011MI8V6UC000000VTVG0001VTR8C1K7 | |||
| data.home.url | string | No | ||||
| data.home_goals | array | No | ||||
| data.home_goals[].minute | integer | No | 80 | |||
| data.home_goals[].player | string | No | Daniel Jonathan Svensson | |||
| data.home_goals[].stoppage_minute | integer | No | 2 | |||
| data.home_score | integer | No | ||||
| data.id | string | No | ||||
| data.match_number | string | No | ||||
| data.matchday | string | No | 5. Spieltag | |||
| data.referee | string | No | ||||
| data.spectators | string | No | ||||
| data.status | string | No | finished | |||
| data.time | string | No | 20:30 | |||
| data.url | string | No | ||||
| data.venue | string | No | ||||
| 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/match?match_id=031BFTHDCC000000VS5489BUVUR5FS5A" \
-H "x-api-key: $CRAWLORA_API_KEY"