Sportskeeda API endpoint
Returns first-party football widget fixtures and standings. Event and optional matchday must be offered by football-options. Omit matchday for the widget's selected round. Scores and standings reflect upstream data, which may be stale.
/sportskeeda/football-dataQuery parameters: event (required) is a tournament slug from /sportskeeda/football-options. matchday (optional) is an exact slug from that event's matchdays list; omit it for Sportskeeda's currently selected round. The tournament selector on 2026-09-29 offered featured, epl, uefa-champions-league, uefa-nations-league, la-liga, ligue-1, mls, and bundesliga, but callers should use the live discovery endpoint. Invalid event or matchday values return parameter errors, including round slugs for which the upstream silently returns an empty array.
Header: x-api-key (required).
Returns fixture IDs, canonical match slugs, UTC datetimes, team names and slugs, scores, and the tournament's published standings. status is ok when matches exist and no_matches when the selected event has no fixtures. previous_matchday and next_matchday are the upstream's linked round slugs. The event name identifies the published season. The site currently has some stale or incomplete seasons and tables; values are returned as published, without an accuracy claim. The widget's generic JavaScript can append a filter query, but the public football page exposes no filter choices, so this API has no filter parameter.
| Field | Filled in, of 20 checked | Values in the sample |
|---|---|---|
| position | 20 | 1 |
| team | 20 | “Bournemouth” and 19 other values |
| team_code | 20 | |
| played | 20 | 0 |
| wins | 20 | 0 |
| draws | 20 | 0 |
| losses | 20 | 0 |
| goals_for | 20 | 0 |
| goals_against | 20 | 0 |
| goal_difference | 20 | 0 |
| points | 20 | 0 |
| qualification | 8 | UEFA Champions League (4), Relegation (3), UEFA Europa League (1) |
| team_slug | 4 |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| event | string | Yes | Tournament slug from football-options; current selector: featured, epl, uefa-champions-league, uefa-nations-league, la-liga, ligue-1, mls, bundesliga | epl | |
| matchday | string | No | Round slug from football-options for the selected event | round-5 | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/sportskeeda/football-data?event=epl" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"data": {
"event": "epl",
"event_name": "EPL 2026-27",
"matchday": "round-5",
"matchday_name": "Round 5",
"previous_matchday": "round-4",
"next_matchday": "round-6",
"status": "ok",
"matches": [
{
"id": "brentford-vs-chelsea-epl-18-sep-2026",
"slug": "live-football-score/brentford-vs-chelsea-epl-18-sep-2026",
"datetime": "2026-09-18T19:00:00+00:00",
"status": "pre",
"home": "Brentford",
"away": "Chelsea"
}
],
"standings": [
{
"position": 1,
"team": "Bournemouth",
"played": 0,
"wins": 0,
"draws": 0,
"losses": 0,
"goals_for": "0",
"goals_against": "0",
"goal_difference": "0",
"points": 0
}
]
}
}Request schema
No body schema
Response schema
#/definitions/publicnews.sportskeedaFootballDataResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| data | sportskeeda.FootballDataResponse | No | ||||
| data.event | string | No | ||||
| data.event_name | string | No | ||||
| data.matchday | string | No | ||||
| data.matchday_name | string | No | ||||
| data.matches | array | No | ||||
| data.matches[].away | string | No | ||||
| data.matches[].away_score | string | No | ||||
| data.matches[].away_slug | string | No | ||||
| data.matches[].datetime | string | No | ||||
| data.matches[].home | string | No | ||||
| data.matches[].home_score | string | No | ||||
| data.matches[].home_slug | string | No | ||||
| data.matches[].id | string | No | ||||
| data.matches[].postponed | boolean | No | ||||
| data.matches[].result | string | No | ||||
| data.matches[].slug | string | No | ||||
| data.matches[].status | string | No | ||||
| data.next_matchday | string | No | ||||
| data.previous_matchday | string | No | ||||
| data.standings | array | No | ||||
| data.standings[].draws | integer | No | ||||
| data.standings[].goal_difference | string | No | ||||
| data.standings[].goals_against | string | No | ||||
| data.standings[].goals_for | string | No | ||||
| data.standings[].group | string | No | ||||
| data.standings[].league | string | No | ||||
| data.standings[].losses | integer | No | ||||
| data.standings[].played | integer | No | ||||
| data.standings[].points | integer | No | ||||
| data.standings[].position | integer | No | ||||
| data.standings[].qualification | string | No | ||||
| data.standings[].team | string | No | ||||
| data.standings[].team_code | string | No | ||||
| data.standings[].team_slug | string | No | ||||
| data.standings[].wins | integer | No | ||||
| data.status | string | No | ok, no_matches |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/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/sportskeeda/football-data?event=epl" \
-H "x-api-key: $CRAWLORA_API_KEY"