# GET /v2/races/{id}

Group: Race sports

One race: series, season, round, status, days, host country, circuit (motorsport), laps and distance, category (cycling), winner — and its sessions in start order, each with type, status, start time, laps, distance, stage towns and profile (cycling), weather, track condition, temperatures, safety car and winner.

Note: startDate / endDate are UTC days; sessions carry exact times. winner is the winner of the main race (a cycling stage race: of the general classification), set once finished. circuit.lengthMeters and distanceMeters: Formula 1 and NASCAR (converted from miles); MotoGP has laps only — the source keeps neither its circuit length nor its race distance. A race without laps / distance of its own takes the main race session’s.

## Parameters

| Name | In | Required | Description |
| --- | --- | --- | --- |
| `id` | path | yes | our numeric id (positive integer) |

## Response

- `data`: `Race`
- Objects: Race (https://sportsapi.app/markdown/en/reference.md#race)

## Errors

- 403 history_not_in_plan — the race started before your plan’s history
- 404 not_found — not a race id (a season or session id included)
- 404 no_data — a duplicate copy the source files under a second series and never runs (NASCAR Cup); error.series and, when it can be matched, error.race name the real ones

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

TypeScript:

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

Python:

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

Go:

```go
res, err := client.Races.Get(ctx, id)
```

CLI:

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

## Example response

```json
{ "data": {
    "id": 812345, "name": "Singapore GP", "slug": "singapore-gp", "sport": "motorsport",
    "series": { "id": 812300, "name": "Formula 1", "slug": "formula-1", "sport": "motorsport" },
    "season": { "id": 812301, "name": "Formula 1 2026", "year": "2026", "startYear": 2026, "endYear": 2026 },
    "round": 17, "status": "finished", "startDate": "2026-10-09", "endDate": "2026-10-11",
    "country": { "code": "SG", "name": "Singapore" },
    "circuit": { "name": "Marina Bay", "city": "Singapore", "country": { "code": "SG", "name": "Singapore" }, "lengthMeters": 4927 },
    "laps": 62, "distanceMeters": 305337, "category": null,
    "winner": { "id": 700001, "name": "Max Verstappen", "slug": "verstappen-max", "shortName": "M. Verstappen", "code": "VER", "image": "https://cdn.sportsapi.app/v2/teams/700001/logo" },
    "sessions": [ …,
      { "id": 812350, "name": "Grand Prix", "type": "race", "status": "finished", "startTime": "2026-10-11T12:00:00.000Z",
        "laps": 62, "lapsCompleted": 62, "distanceMeters": 305337, "departureCity": null, "arrivalCity": null, "profile": null,
        "weather": "night", "trackCondition": "dry", "airTemperatureC": 30.2, "trackTemperatureC": 41.5, "humidityPercent": 77.4,
        "safetyCar": null, "winner": { "id": 700001, "name": "Max Verstappen", … } } ] } }
```

---

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