---
title: "Lap Times"
method: GET
path: "/v1/historical/{season}/{round}/laps"
tags: ["Historical"]
---

# Lap Times

`GET /v1/historical/{season}/{round}/laps`

## Request

- Base URL: `https://api.racehooks.io`
- URL: `https://api.racehooks.io/v1/historical/{season}/{round}/laps`
- Auth: none declared

Per-lap timing data grouped by lap number with sector times, compound, and tyre data. Optional ?driver= filter (driver slug). Available for sessions from 2019+. Public, no authentication required.

## Path parameters

- `season` string, required
- `round` string, required

## Query parameters

- `driver` string
- `limit` integer
- `offset` integer

## Response `200`

Successful response

- object: Successful response
  - `RHData` object
    - `series` string
    - `url` string
    - `limit` string: Requested page size, serialised as a string
    - `offset` string: Requested page offset, serialised as a string
    - `total` string: Total matching records, serialised as a string
    - `RaceTable` object
      - `season` string
      - `round` string
      - `Races` object[]
        - `season` string
        - `round` string
        - `raceName` string
        - `date` string: Race date, YYYY-MM-DD
        - `officialName` string
        - `dataQualityTier` string: 1=1950–94 · 2=1995–2017 · 3=2018–22 · 4=2023+
        - `eventId` string
        - `laps` string: Actual laps completed — omitted if unknown
        - `distanceKm` string: Actual race distance in km — omitted if unknown
        - `qualifyingFormat` string: knockout | one_session | aggregate | sprint_race | … — omitted if unknown
        - `sprintQualifyingFormat` string: sprint_shootout — omitted when no sprint weekend
        - `driversChampionshipDecider` string: "true" only when this race decided the drivers' title
        - `constructorsChampionshipDecider` string: "true" only when this race decided the constructors' title
        - `Circuit` object
          - `circuitId` string
          - `url` string
          - `circuitName` string
          - `circuitFullName` string: Full official name — omitted if same as circuitName
          - `type` string: race | road | street — omitted if unknown
          - `direction` string: clockwise | anti_clockwise — omitted if unknown
          - `lengthKm` string: Circuit length in km — omitted if unknown
          - `turns` string: Number of corners — omitted if unknown
          - `totalRacesHeld` string: Total F1 races held at this circuit — omitted if unknown
          - `Location` object
            - `lat` string: Decimal degrees latitude
            - `long` string: Decimal degrees longitude
            - `locality` string
            - `country` string
        - `Laps` object[]: One entry per lap number. Empty array for pre-2019 sessions.
          - `number` string: Lap number
          - `Timings` object[]: One timing entry per driver on this lap.
            - `driverId` string
            - `position` string
            - `time` string: M:SS.mmm or SS.mmm
            - `sector1` string: Sector 1 time — omitted if unavailable
            - `sector2` string: Sector 2 time — omitted if unavailable
            - `sector3` string: Sector 3 time — omitted if unavailable
            - `compound` string: Tyre compound — omitted if unavailable
            - `tyreLife` string: Laps on this set of tyres — omitted if unavailable
            - `isPitOutLap` string: Present and 'true' only on pit-out laps
            - `trackStatus` string: F1 track status code — omitted if unavailable
            - `gapToLeader` string: +S.mmm gap to race leader — omitted if unavailable
            - `gapToCarAhead` string: +S.mmm gap to the car ahead — omitted if unavailable

---

[API](https://skmtc.dev/racehooks/apis/racehooks-api.md) · [All operations](https://skmtc.dev/racehooks/apis/racehooks-api/llms.txt) · [OpenAPI document](https://skmtc.dev/racehooks/apis/racehooks-api/revisions/2335b73f46e4?raw)
