FUSSBALL.DE API endpoint
Returns the matches of a competition's current matchday, of a numbered matchday (`matchday`, 1 to the competition's matchday count, reported as `matchday_count`) or of the matchday around a date. Each match has teams, date, kick-off time, score and status (`finished`, `scheduled` or `other` with a note). Cups and tournaments have no numbered matchdays. Dates, times and scores are decoded from the site's obfuscated glyph fonts.
/fussballde/matchdaycompetition_id (string, required): Competition id from fussballde-competitions.date (string, optional): Matchday date as YYYY-MM-DD; omit for the current matchday; cannot be combined with matchday.matchday (integer, optional): Matchday number, 1 to the competition's matchday count (34 for the Bundesliga); cannot be combined with date.Standard envelope; data holds the result described above. Dates are ISO YYYY-MM-DD, times are local HH:MM. matchday and date are mutually exclusive. An out-of-range matchday returns 400 (the upstream silently falls back to matchday 1, which would mislead). Competitions without a numbered selector (cups, tournaments) reject matchday. Errors: 400 invalid parameter, 404 unknown id, 503 upstream failure.
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| competition_id | string | Yes | Competition id from fussballde-competitions | 031BFREJC800001BVS5489BUVUR5FS5A-G | |
| date | string | No | Matchday date as YYYY-MM-DD; omit for the current matchday; cannot be combined with matchday | 2026-10-03 | |
| matchday | integer | No | Matchday number, 1 to the competition's matchday count (34 for the Bundesliga); cannot be combined with date | 3 | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/fussballde/matchday?competition_id=031BFREJC800001BVS5489BUVUR5FS5A-G" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"competition_id": "031BFREJC800001BVS5489BUVUR5FS5A-G",
"count": 4,
"matchday": 3,
"matchday_count": 34,
"matches": [
{
"away": {
"club_id": "00ES8GN8OC00001LVV0AG08LVUPGND5I",
"logo_url": "https://www.fussball.de/export.media/-/action/getLogo/format/0/id/00ES8GN8OC00001LVV0AG08LVUPGND5I/verband/0123456789ABCDEF0123456700004010",
"name": "FC Schalke 04",
"team_id": "011MIA6VDK000000VTVG0001VTR8C1K7",
"url": "https://www.fussball.de/mannschaft/fc-schalke-04-fc-schalke-04-westfalen/-/saison/2627/team-id/011MIA6VDK000000VTVG0001VTR8C1K7"
},
"away_score": 3,
"date": "2026-09-11",
"home": {
"club_id": "00ES8GNCAC0000ABVV0AG08LVUPGND5I",
"logo_url": "https://www.fussball.de/export.media/-/action/getLogo/format/0/id/00ES8GNCAC0000ABVV0AG08LVUPGND5I/verband/0123456789ABCDEF0123456700004010",
"name": "1. FC Union Berlin",
"team_id": "011MIDMV1G000000VTVG0001VTR8C1K7",
"url": "https://www.fussball.de/mannschaft/1-fc-union-berlin-1fc-union-berlin-berlin/-/saison/2627/team-id/011MIDMV1G000000VTVG0001VTR8C1K7"
},
"home_score": 1,
"id": "031BFTHCLS000000VS5489BUVUR5FS5A",
"status": "finished",
"time": "20:30",
"url": "https://www.fussball.de/spiel/1-fc-union-berlin-fc-schalke-04/-/spiel/031BFTHCLS000000VS5489BUVUR5FS5A#!/section/course"
},
{
"away": {
"club_id": "00ES8GN8QS000024VV0AG08LVUPGND5I",
"logo_url": "https://www.fussball.de/export.media/-/action/getLogo/format/0/id/00ES8GN8QS000024VV0AG08LVUPGND5I/verband/0123456789ABCDEF0123456700004010",
"name": "SC Paderborn 07",
"team_id": "011MIC6ATK000000VTVG0001VTR8C1K7",
"url": "https://www.fussball.de/mannschaft/sc-paderborn-07-sc-paderborn-07-westfalen/-/saison/2627/team-id/011MIC6ATK000000VTVG0001VTR8C1K7"
},
"away_score": 0,
"date": "2026-09-12",
"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_score": 3,
"id": "031BFTHCAK000000VS5489BUVUR5FS5A",
"status": "finished",
"time": "15:30",
"url": "https://www.fussball.de/spiel/borussia-dortmund-sc-paderborn-07/-/spiel/031BFTHCAK000000VS5489BUVUR5FS5A#!/section/course"
}
],
"title": "Bundesliga - Deutschland – Herren - 2026/2027",
"url": "http://127.0.0.1:52964/spieltag/x/-/spieltag/3/staffel/031BFREJC800001BVS5489BUVUR5FS5A-G"
}
}Request schema
No body schema
Response schema
#/definitions/fussballde.matchdayResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | fussballde.MatchdayResponse | No | ||||
| data.competition_id | string | No | ||||
| data.count | integer | No | ||||
| data.date | string | No | ||||
| data.matchday | integer | No | 7 | |||
| data.matchday_count | integer | No | 34 | |||
| data.matches | array | No | ||||
| data.matches[].away | fussballde.TeamRef | No | ||||
| data.matches[].away.club_id | string | No | 00ES8GN8N400008VVV0AG08LVUPGND5I | |||
| data.matches[].away.logo_url | string | No | ||||
| data.matches[].away.name | string | No | Borussia Dortmund | |||
| data.matches[].away.team_id | string | No | 011MI8V6UC000000VTVG0001VTR8C1K7 | |||
| data.matches[].away.url | string | No | ||||
| data.matches[].away_score | integer | No | ||||
| data.matches[].competition | string | No | Bundesliga | |||
| data.matches[].date | string | No | 2026-10-09 | |||
| data.matches[].home | fussballde.TeamRef | No | ||||
| data.matches[].home.club_id | string | No | 00ES8GN8N400008VVV0AG08LVUPGND5I | |||
| data.matches[].home.logo_url | string | No | ||||
| data.matches[].home.name | string | No | Borussia Dortmund | |||
| data.matches[].home.team_id | string | No | 011MI8V6UC000000VTVG0001VTR8C1K7 | |||
| data.matches[].home.url | string | No | ||||
| data.matches[].home_score | integer | No | ||||
| data.matches[].id | string | No | 031BFTHDCC000000VS5489BUVUR5FS5A | |||
| data.matches[].league | string | No | Kreisfreundschaftsspiele | |||
| data.matches[].match_number | string | No | 037 | |||
| data.matches[].note | string | No | ||||
| data.matches[].status | string | No | finished | |||
| data.matches[].team_type | string | No | D-Junioren | |||
| data.matches[].time | string | No | 20:30 | |||
| data.matches[].url | string | No | ||||
| data.title | string | No | ||||
| data.url | 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/matchday?competition_id=031BFREJC800001BVS5489BUVUR5FS5A-G" \
-H "x-api-key: $CRAWLORA_API_KEY"