FUSSBALL.DE API endpoint
Returns a team's matches across its competitions. `all` (default) is the match plan for a date window (default the current season, 1 July to 30 June), optionally for one competition kind and paged with `limit` and `offset`; `next` is the next 10 fixtures, `previous` the latest 10 results, and `wins`, `draws` and `losses` the latest 10 finished matches with that outcome.
/fussballde/team-matchesteam_id (string, required): Team id, see fussballde-team.kind (string, optional): Match list kind, default all. Allowed values: all, next, previous, wins, draws, losses.date_from (string, optional): kind all only: first day as YYYY-MM-DD, default 1 July of the current season.date_to (string, optional): kind all only: last day as YYYY-MM-DD, default 30 June of the season.competition_kind (string, optional): kind all only: competition kind id; omit for all kinds. Allowed values: 1, 8, 3, 7, 6, 11, 2, 21, 9. Names: 1 Meisterschaften, 8 Pokale, 3 Turniere, 7 Freundschaftsspiele, 6 Privatspiele, 11 Futsal-Ligabetrieb, 2 Hallenturniere (Futsal), 21 Beachsoccer-Meisterschaften, 9 Auswahlspiele.limit (integer, optional): Matches (kind all only) per call, 1 to 50, default 10.offset (integer, optional): Number of matches to skip, 0 to 1000, default 0.Standard envelope; data holds the result described above. Dates are ISO YYYY-MM-DD, times are local HH:MM. With kind all, matches are listed for the date window (default the current season, 1 July to 30 June) and final marks the last page. next, previous, wins, draws and losses are fixed lists of the 10 most relevant matches and ignore the window and paging parameters. 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 10 checked | Values in the sample |
|---|---|---|
| id | 10 | |
| url | 10 | fussball.de |
| date | 10 | 2026-07-18 to 2026-09-05 |
| time | 10 | “17:00” and 8 other values |
| match_number | 10 | 290,001,025 to 890,000,011, median 880,003,355 |
| competition | 10 | Freundschaftsspiele (5), Bundesliga (2), Regionalfreundschaftsspiele (1) and 2 more |
| home | 10 | |
| away | 10 | |
| home_score | 5 | 0 to 2, median 1 |
| away_score | 5 | 0 to 5, median 3 |
| status | 10 | finished (5), scheduled (5) |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| team_id | string | Yes | Team id, see fussballde-team | 011MI8V6UC000000VTVG0001VTR8C1K7 | |
| kind | string | No | Match list kind, default all Allowed values: all, next, previous, wins, draws, losses. | all | |
| date_from | string | No | kind all only: first day as YYYY-MM-DD, default 1 July of the current season | 2026-07-01 | |
| date_to | string | No | kind all only: last day as YYYY-MM-DD, default 30 June of the season | 2027-06-30 | |
| competition_kind | string | No | kind all only: competition kind id; omit for all kinds Allowed values: 1, 8, 3, 7, 6, 11, 2, 21, 9. | 8 | |
| limit | integer | No | Matches (kind all only) per call, 1 to 50, default 10 | 10 | |
| offset | integer | No | Number of matches to skip, 0 to 1000, default 0 | 0 | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/fussballde/team-matches?team_id=011MI8V6UC000000VTVG0001VTR8C1K7&kind=all&competition_kind=1&limit=10" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"count": 1,
"date_from": "2026-07-01",
"date_to": "2027-06-30",
"final": true,
"kind": "all",
"limit": 20,
"matches": [
{
"away": {
"club_id": "00ES8GN9L800003MVV0AG08LVUPGND5I",
"logo_url": "https://www.fussball.de/export.media/-/action/getLogo/format/0/id/00ES8GN9L800003MVV0AG08LVUPGND5I",
"name": "Eintracht Frankfurt",
"team_id": "011MICQNM8000000VTVG0001VTR8C1K7",
"url": "https://www.fussball.de/mannschaft/eintracht-frankfurt-eintracht-frankfurt-hessen/-/saison/2627/team-id/011MICQNM8000000VTVG0001VTR8C1K7"
},
"competition": "Bundesliga",
"date": "2026-10-24",
"home": {
"club_id": "00ES8GN8N400008VVV0AG08LVUPGND5I",
"logo_url": "https://www.fussball.de/export.media/-/action/getLogo/format/0/id/00ES8GN8N400008VVV0AG08LVUPGND5I",
"name": "Borussia Dortmund",
"team_id": "011MI8V6UC000000VTVG0001VTR8C1K7",
"url": "https://www.fussball.de/mannschaft/borussia-dortmund-borussia-dortmund-westfalen/-/saison/2627/team-id/011MI8V6UC000000VTVG0001VTR8C1K7"
},
"id": "031BFTHEIC000000VS5489BUVUR5FS5A",
"match_number": "890000055",
"status": "scheduled",
"time": "18:30",
"url": "https://www.fussball.de/spiel/borussia-dortmund-eintracht-frankfurt/-/spiel/031BFTHEIC000000VS5489BUVUR5FS5A"
}
],
"team_id": "011MI8V6UC000000VTVG0001VTR8C1K7"
}
}Request schema
No body schema
Response schema
#/definitions/fussballde.teamMatchesResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | fussballde.TeamMatchesResponse | No | ||||
| data.count | integer | No | ||||
| data.date_from | string | No | ||||
| data.date_to | string | No | ||||
| data.final | boolean | No | ||||
| data.kind | string | No | ||||
| data.limit | integer | No | ||||
| data.matches | array | 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.offset | integer | No | ||||
| data.team_id | 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/team-matches?team_id=011MI8V6UC000000VTVG0001VTR8C1K7&kind=all&competition_kind=1&limit=10" \
-H "x-api-key: $CRAWLORA_API_KEY"