# GET /v2/races

Group: Race sports

Races with a session starting on one UTC day, each with all its sessions.

Note: At most 40 races a day. A race weekend appears on every day one of its sessions starts. The source files some weekends twice under two series of one name (NASCAR Cup Series); the copy whose series has no seasons is left out of the day (its id still answers on /v2/races/{id}).

## Parameters

| Name | In | Required | Description |
| --- | --- | --- | --- |
| `sport` | query | yes | motorsport \| cycling |
| `date` | query | yes | a UTC day, YYYY-MM-DD |

## Response

- `data`: `Race[]`
- `meta`: date, sport, count, complete (false when some races could not be fetched right now — retry shortly)
- Objects: Race (https://sportsapi.app/markdown/en/reference.md#race)

## Errors

- 400 bad_request — missing or invalid date, sport not a race sport
- 403 history_not_in_plan — a day before your plan’s history
- 503 upstream_unavailable — none of the day’s races 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/races?sport=…&date=…"
```

TypeScript:

```ts
const { data, meta } = await client.races.list({ date, sport });
```

Python:

```python
res = client.races.list(date=date, sport=sport)
```

Go:

```go
res, err := client.Races.List(ctx, &sportsapi.RacesListParams{Date: date, Sport: sport})
```

CLI:

```bash
$ sportsapi races list --date <date> --sport <sport>
```

## Example response

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

{ "data": [ { "id": 812345, "name": "Singapore GP", "sport": "motorsport", "series": { "id": 812300, "name": "Formula 1", … },
    "status": "finished", "startDate": "2026-10-09", "endDate": "2026-10-11", "sessions": [ … ], … }, … ],
  "meta": { "date": "2026-10-11", "sport": "motorsport", "count": 3, "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/races/list · All docs: https://sportsapi.app/markdown/en/docs.md
