# GET /v2/fixtures

Group: Fixtures

Fixtures kicking off on one UTC calendar day — for one league, or for a whole sport ten leagues per page (in the order the leagues are ranked).

Note: Walk pages until hasNextPage is false. Every page but the last holds 10 leagues, so a page with no league means the day is over; a page can still hold fewer fixtures than leagues (a league whose matches fall just outside the UTC day contributes none). Which fixtures a day holds is cached for minutes (today and ahead) or hours (past days; for good once every fixture is finished); the status, score and clock of a fixture in play are current to the second (see Data freshness). For a live feed use /v2/livescores or the WebSocket.

## Parameters

| Name | In | Required | Description |
| --- | --- | --- | --- |
| `date` | query | yes | a UTC day, YYYY-MM-DD (1990-01-01 up to a year ahead) |
| `sport` | query | no | a sport slug — required unless league is given |
| `league` | query | no | a league id: that league’s fixtures that day (one page; page must be 0) |
| `page` | query | no | with sport only: page index 0–99 (default 0), 10 leagues per page |

## Response

- `data`: `Fixture[]`
- `meta`: date, page, count, hasNextPage; with league: league (+ sport if given), page always 0 and hasNextPage false; with sport: sport, leagueCount (leagues on this page), complete (false when some league lists could not be fetched right now — retry shortly)
- Objects: Fixture (https://sportsapi.app/markdown/en/reference.md#fixture)

## Errors

- 400 bad_request — missing/invalid date, unknown sport, neither sport nor league, page not 0–99, page other than 0 with league
- 503 upstream_unavailable — none of the page’s league lists could be fetched

Plus the common errors (https://sportsapi.app/markdown/en/docs.md#errors).

## Request

cURL:

```bash
curl -H "Authorization: Bearer sk_live_…" \
    "https://api.sportsapi.app/v2/fixtures?date=…"
```

TypeScript:

```ts
const { data, meta } = await client.fixtures.list({ date });
for await (const page of client.fixtures.listPages({ date })) { … }
```

Python:

```python
res = client.fixtures.list(date=date)
for page in client.fixtures.list_pages(date=date): ...
```

Go:

```go
res, err := client.Fixtures.List(ctx, &sportsapi.FixturesListParams{Date: date})
for page, err := range client.Fixtures.ListPages(ctx, &sportsapi.FixturesListParams{Date: date}) { … }
```

CLI:

```bash
$ sportsapi fixtures list <date>
$ sportsapi fixtures list <date> --all -o csv
```

## Example response

```json
$ curl -H "Authorization: Bearer sk_live_…" "https://api.sportsapi.app/v2/fixtures?date=2026-10-18&sport=football"

{ "data": [ { "id": 201324, "sport": "football", "status": { "type": "finished", … },
    "startTime": "2026-10-18T15:30:00.000Z", "league": { "id": 195828, "name": "Premier League", … }, … }, … ],
  "meta": { "date": "2026-10-18", "sport": "football", "page": 0, "count": 38, "leagueCount": 10,
            "hasNextPage": true, "complete": true } }
```

---

Base URL: https://api.sportsapi.app. Send your API key as `Authorization: Bearer <key>` on every /v2 request; keys are created in the dashboard (https://sportsapi.app/dashboard).
HTML: https://sportsapi.app/docs/fixtures/list · All docs: https://sportsapi.app/markdown/en/docs.md
