Skip to content
datasportsAPI

No. 20 · Racing · Race sport

MotorsportLap by lap, stint by stint.

Formula 1, MotoGP, NASCAR and more: sessions, grid, pit stops, tyre stints, lap-by-lap positions and championships.

20Racing
Motorsport8 endpoints · races

Scouting report

What you get for Motorsport

Motorsport covers Formula 1, MotoGP, NASCAR and more as series, race weekends and sessions: practice, qualifying, sprint and race. A classification gives grid position, pit stops, the tyre stints run and the compound on the car right now.

On Pro, the lap chart traces every driver's position at the end of every lap, with pit stops and retirements. Series standings rank drivers and teams by points, wins, podiums, poles and fastest laps.

First request

Today's motorsport in one call.

The day's motorsport races, each with all its sessions, in UTC. Change the date to read any day your plan's history reaches.

  1. 1Create a key in the dashboard. Free gives you 1,000 requests a day during the beta.
  2. 2Put it in DATASPORTSAPI_API_KEY so the SDKs and the dsa command find it.
  3. 3Call /v2/races?sport=motorsport&date=YYYY-MM-DD.
curl -H "Authorization: Bearer dsa_live_…" \
  "https://api.datasportsapi.com/v2/races?sport=motorsport&date=$(date -u +%F)"

The catalog

Motorsport, endpoint by endpoint

Its own detail first, then the shared spine every race sport answers on. Each row opens the endpoint’s reference page.

All 116 endpoints

Where motorsport goes deeper

7 endpoints with detail specific to the sport.

The shared spine

1 endpoints that behave the same for every race sport.

What comes back

Race results, as served

One row of a race classification: grid, laps, gap, pit stops, the tyre stints run and the fastest lap.

GET/v2/races/{id}/resultsAll plans

Sample from the docs, trimmed with …

GET /v2/races/{id}/results
{ "data": [ …,
    { "position": 2, "competitor": { "id": 700002, "name": "Charles Leclerc", … }, "team": { "id": 700010, "name": "Ferrari", … },
      "state": "classified", "outReason": null, "carNumber": 16, "gridPosition": 2, "startedFromPitLane": false,
      "laps": 62, "lapsBehind": null, "lapsLed": null, "pitStops": 2, "timeMs": 6128120, "gapMs": 7335, "intervalMs": 7335,
      "bestLapMs": 95202, "bestLapNumber": 41, "fastestLap": true, "points": 18,
      "tyreStints": [ { "compound": "soft", "laps": 24 }, { "compound": "medium", "laps": 15 }, { "compound": "soft", "laps": 23 } ],
      "currentTyre": { "compound": "soft", "isNew": false }, "inPit": null,
      "cycling": null }, … ],
  "meta": { "race": 812345, "session": null, "count": 20 } }

Motorsport is one query string away.

Swap ?sport=motorsport for the other race sport and the same code keeps working. Free key, no card.