# GET /v2/series/{id}/races

Group: Race sports

The races of one season of the series (without sessions — /v2/races/{id} has them).

## Parameters

| Name | In | Required | Description |
| --- | --- | --- | --- |
| `id` | path | yes | our numeric id (positive integer) |
| `season` | query | no | a season id from /v2/series/{id}/seasons (default: the newest) |

## Response

- `data`: `RaceSummary[]`
- `meta`: season (the one used), count, plus historyFrom when older races were left out for your plan
- Objects: RaceSummary (https://sportsapi.app/markdown/en/reference.md#racesummary)

## Errors

- 400 bad_request — invalid season
- 403 history_not_in_plan — the season ended before your plan’s history
- 404 not_found — a season not in this series; 404 no_data — the series has no seasons

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/series/{id}/races"
```

TypeScript:

```ts
const { data, meta } = await client.series.races(id);
```

Python:

```python
res = client.series.races(id)
```

Go:

```go
res, err := client.Series.Races(ctx, id, &sportsapi.SeriesRacesParams{})
```

CLI:

```bash
$ sportsapi series races <id>
```

## Example response

```json
{ "data": [ { "id": 812210, "name": "Australian GP", "round": 1, "status": "finished", "startDate": "2026-03-06", "endDate": "2026-03-08",
    "circuit": { "name": "Albert Park", … }, "winner": { … }, … }, … ],
  "meta": { "season": 812301, "count": 24 } }
```

---

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/series-races · All docs: https://sportsapi.app/markdown/en/docs.md
