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.
| 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, 24 fields: away, away_score, competition, date, home, home_score, id, league, match_number, note, status, team_type and 2 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"