Endpoints

30

F1 Drivers
2

F1 Events
7

F1 Circuits
2

F1 Seasons
4

F1 Teams
2

Bulk Export
2

F1 Standings
2

F1 Race Control
1

F1 State
1

F1 Timing
3

F1 Weather
2

F1 Telemetry
2

What is the Formula 1 API?

Every Formula 1 season since 1950. Drivers, teams, circuits, results, lap-by-lap timing and standings, plus live race-weekend timing.

Formula 1 API is available on the JoJ API marketplace. Subscribe with a single JoJ API key, call it through one gateway, and pay from one wallet — no separate account or contract with the provider.

Formula 1 API endpoints

  • GET/v1/formula1/drivers

    List all Formula 1 drivers

    Retrieve a paginated list of all Formula 1 drivers. Returns basic driver information including name, number, TLA, birth date, and country. Supports pagination with a maximum limit of 50 drivers per page. ### Usage ```bash curl -X GET "https://formula-1.jojapi.net/v1/formula1/drivers?page=1&limit=20" \ -H "X-JoJAPI-Key: YOUR_API_KEY" ```

  • GET/v1/formula1/drivers/{id}

    Get driver details by ID

    Retrieve detailed information about a specific Formula 1 driver by their unique ID. Returns comprehensive driver data including personal information, career statistics, team history, and championship results. ### Usage ```bash curl -X GET "https://formula-1.jojapi.net/v1/formula1/drivers/7c9a4314-8d6f-4f6a-9bfe-2f1d56a30b6a" \ -H "X-JoJAPI-Key: YOUR_API_KEY" ```

  • GET/v1/formula1/events

    List all Formula 1 events

    Retrieve a paginated list of all Formula 1 race events (Grand Prix). Returns event details including name, dates, status, location information, and session schedule. Supports pagination with a maximum limit of 50 events per page. ### Usage ```bash curl -X GET "https://formula-1.jojapi.net/v1/formula1/events?page=1&limit=20" \ -H "X-JoJAPI-Key: YOUR_API_KEY" ```

  • GET/v1/formula1/events/{id}

    Get event details by ID

    Retrieve detailed information about a specific Formula 1 event (Grand Prix) by its unique ID. Returns comprehensive event data including location details, dates, status, full session schedule, and navigation to previous/next events in the calendar. ### Usage ```bash curl -X GET "https://formula-1.jojapi.net/v1/formula1/events/7c9a4314-8d6f-4f6a-9bfe-2f1d56a30b6a" \ -H "X-JoJAPI-Key: YOUR_API_KEY" ```

  • GET/v1/formula1/events/{eventId}/sessions

    List all sessions for an event

    Retrieve a list of all sessions (Practice, Qualifying, Sprint, Race) for a specific Formula 1 event. Returns session details including name, type, start/end times, and status for each session in the event weekend. ### Usage ```bash curl -X GET "https://formula-1.jojapi.net/v1/formula1/events/7c9a4314-8d6f-4f6a-9bfe-2f1d56a30b6a/sessions" \ -H "X-JoJAPI-Key: YOUR_API_KEY" ```

  • GET/v1/formula1/events/{eventId}/sessions/{sessionId}

    Get session details by ID

    Retrieve detailed information about a specific session within a Formula 1 event. Returns comprehensive session data including timing information, status, and complete results with driver positions, times, gaps, and session-specific statistics. ### Usage ```bash curl -X GET "https://formula-1.jojapi.net/v1/formula1/events/7c9a4314-8d6f-4f6a-9bfe-2f1d56a30b6a/sessions/7c9a4314-8d6f-4f6a-9bfe-2f1d56a30b6a" \ -H "X-JoJAPI-Key: YOUR_API_KEY" ```

  • GET/v1/formula1/events/{eventId}/sessions/{sessionId}/lap-chart

    Get the lap chart for a session

    Position-by-lap running order (car number per cell). Defaults to JSON; use ?format=csv for a pivoted grid or ?format=txt for a printed lap chart.

  • GET/v1/formula1/events/{eventId}/sessions/{sessionId}/lap-times

    Get individual lap times for a session

    Per-driver lap times as a car×lap grid. Defaults to JSON; use ?format=csv or ?format=txt for a downloadable file.

  • GET/v1/formula1/events/{eventId}/sessions/{sessionId}/results

    Get session results

    Retrieve just the results for a specific session within a Formula 1 event. Returns an array of driver results including positions, times, gaps, fastest laps, pit stops, and session-specific data (qualifying times for qualifying sessions, race classification for races, etc.). ### Usage ```bash curl -X GET "https://formula-1.jojapi.net/v1/formula1/events/7c9a4314-8d6f-4f6a-9bfe-2f1d56a30b6a/sessions/7c9a4314-8d6f-4f6a-9bfe-2f1d56a30b6a/results" \ -H "X-JoJAPI-Key: YOUR_API_KEY" ```

  • GET/v1/formula1/locations

    List all Formula 1 circuit locations

    Retrieve a paginated list of all Formula 1 racing circuit locations (tracks/venues). Returns location information including circuit name, city, country, geographic coordinates, and track specifications. Includes both current and historic Formula 1 venues. Supports pagination with a maximum limit of 50 locations per page. ### Usage ```bash curl -X GET "https://formula-1.jojapi.net/v1/formula1/locations?page=1&limit=20" \ -H "X-JoJAPI-Key: YOUR_API_KEY" ```

  • GET/v1/formula1/locations/{id}

    Get circuit/location details by ID

    Retrieve detailed information about a specific Formula 1 circuit location by its unique ID. Returns comprehensive location data including full circuit specifications (track length, number of corners, DRS zones), facility information, historical significance, lap records, complete event history at the venue, and geographic details. ### Usage ```bash curl -X GET "https://formula-1.jojapi.net/v1/formula1/locations/7c9a4314-8d6f-4f6a-9bfe-2f1d56a30b6a" \ -H "X-JoJAPI-Key: YOUR_API_KEY" ```

  • GET/v1/formula1/seasons

    List all Formula 1 seasons

    Retrieve a paginated list of all Formula 1 championship seasons. Returns season information including year, number of races, champions (driver and constructor), and season status. Covers seasons from 1950 to present. Supports pagination with a maximum limit of 50 seasons per page. ### Usage ```bash curl -X GET "https://formula-1.jojapi.net/v1/formula1/seasons?page=1&limit=20" \ -H "X-JoJAPI-Key: YOUR_API_KEY" ```

  • GET/v1/formula1/seasons/{id}

    Get season details by ID

    Retrieve detailed information about a specific Formula 1 season by its unique ID. Season IDs come from the season list endpoint. Returns comprehensive season data including complete race calendar, championship standings (both drivers and constructors), regulations, key statistics, and notable events from that season. ### Usage ```bash curl -X GET "https://formula-1.jojapi.net/v1/formula1/seasons/7c9a4314-8d6f-4f6a-9bfe-2f1d56a30b6a" \ -H "X-JoJAPI-Key: YOUR_API_KEY" ```

  • GET/v1/formula1/seasons/{id}/drivers

    Get season driver statistics

    Retrieve comprehensive driver statistics for a specific Formula 1 season. Returns detailed performance data for all drivers who competed in the season, including championship points, race wins, podiums, pole positions, fastest laps, DNFs, and final championship position. Data is sorted by championship standings. ### Usage ```bash curl -X GET "https://formula-1.jojapi.net/v1/formula1/seasons/7c9a4314-8d6f-4f6a-9bfe-2f1d56a30b6a/drivers" \ -H "X-JoJAPI-Key: YOUR_API_KEY" ```

  • GET/v1/formula1/seasons/{id}/teams

    Get season constructor/team statistics

    Retrieve comprehensive constructor (team) statistics for a specific Formula 1 season. Returns detailed performance data for all constructor teams that competed in the season, including championship points, race wins, podiums, pole positions, fastest laps, 1-2 finishes, and final constructors championship position. Data is sorted by constructors championship standings. ### Usage ```bash curl -X GET "https://formula-1.jojapi.net/v1/formula1/seasons/7c9a4314-8d6f-4f6a-9bfe-2f1d56a30b6a/teams" \ -H "X-JoJAPI-Key: YOUR_API_KEY" ```

  • GET/v1/formula1/teams

    List all Formula 1 teams

    Retrieve a paginated list of all Formula 1 constructor teams. Returns basic team information including name, country, debut year, and branding colors. Supports pagination with a maximum limit of 50 teams per page. ### Usage ```bash curl -X GET "https://formula-1.jojapi.net/v1/formula1/teams?page=1&limit=20" \ -H "X-JoJAPI-Key: YOUR_API_KEY" ```

  • GET/v1/formula1/teams/{id}

    Get team details by ID

    Retrieve detailed information about a specific Formula 1 constructor team by its unique ID. Returns comprehensive team data including full history, championship wins, notable drivers, technical partnerships, and historical performance statistics. ### Usage ```bash curl -X GET "https://formula-1.jojapi.net/v1/formula1/teams/7c9a4314-8d6f-4f6a-9bfe-2f1d56a30b6a" \ -H "X-JoJAPI-Key: YOUR_API_KEY" ```

  • GET/v1/formula1/export/laps

    Download a full Formula 1 season of lap-by-lap data

    Per-driver timing rows for every lap of every session: position, gaps, sectors, tyre compound and pit flags. last_lap_time on a row is the time of the previous completed lap, as broadcast.

  • GET/v1/formula1/export/results

    Download a full Formula 1 season of session results

    Every result for every session of the season as one download (CSV or NDJSON) instead of thousands of paginated calls.

  • GET/v1/formula1/standings/constructors

    Get Formula 1 constructor standings

    Retrieve the current Formula 1 World Constructors' Championship standings. Optionally pass a year to retrieve historical standings. If no year is provided, returns the current season's standings. ### Usage ```bash curl -X GET "https://formula-1.jojapi.net/v1/formula1/standings/constructors?year=2024" \ -H "X-JoJAPI-Key: YOUR_API_KEY" ```

  • GET/v1/formula1/standings/drivers

    Get Formula 1 driver standings

    Retrieve the current Formula 1 World Drivers' Championship standings. Optionally pass a year to retrieve historical standings. If no year is provided, returns the current season's standings. ### Usage ```bash curl -X GET "https://formula-1.jojapi.net/v1/formula1/standings/drivers?year=2024" \ -H "X-JoJAPI-Key: YOUR_API_KEY" ```

  • GET/v1/formula1/live/sessions/{sessionId}/race-control

    Get race control messages for a session

    Retrieve all race control messages (flags, penalties, safety car, etc.) for a session in chronological order.

  • GET/v1/formula1/live/sessions/{sessionId}/state

    Get latest session state checkpoint

    Retrieve the most recent full state checkpoint for a session. Contains the complete serialised timing state as JSON.

  • GET/v1/formula1/live/sessions/{sessionId}/timing

    Get latest timing data for a session

    Retrieve the most recent timing snapshot for every driver in a session, ordered by position.

  • GET/v1/formula1/live/sessions/{sessionId}/timing/drivers/{driverNumber}

    Get timing history for a specific driver

    Retrieve the full timing history for a specific driver in a session, ordered chronologically.

  • GET/v1/formula1/live/sessions/{sessionId}/timing/laps/{lap}

    Get timing data for a specific lap

    Retrieve the timing snapshot for every driver at a specific lap in a session, ordered by position.

  • GET/v1/formula1/live/sessions/{sessionId}/weather

    Get latest weather for a session

    Retrieve the most recent weather snapshot for a session (air/track temperature, humidity, wind, rainfall, pressure).

  • GET/v1/formula1/live/sessions/{sessionId}/weather/history

    Get weather history for a session

    Retrieve all weather snapshots recorded during a session in chronological order.

  • GET/v1/formula1/events/{eventId}/sessions/{sessionId}/telemetry/positions

    Where every car was on track, through a session

    Ordered position samples for every driver in a session: `[secondsIntoSession, trackFraction]`, where trackFraction runs from 0 at the start/finish line to just under 1 on the approach back to it. `lapEnds` marks each line crossing so samples can be cut into laps. This is the feed behind a moving-map replay. Most sessions are served at `resolution: "fine"` - map-matched from the 0.25s position feed and bounded by `accuracyM` metres, roughly 90 samples per lap placed where the motion actually bends. Sessions without matched curves fall back to `resolution: "coarse"`, about 12 samples per lap, which locates a car within a corner rather than through it. Coverage is every race and qualifying session from 2019, plus 2026 practice and sprints. Pass `?driver=VER` to fetch a single car; a full race is several megabytes. Sessions whose recorded POSITIONS are untrustworthy are withheld and return 404 with the reason. A session with faulty pedal channels still serves here in full, because that fault does not touch position. ### Usage ```bash curl -X GET "https://formula-1.jojapi.net/v1/formula1/events/{eventId}/sessions/{sessionId}/telemetry/positions?driver=VER" \ -H "X-JoJAPI-Key: YOUR_API_KEY" ```

  • GET/v1/formula1/events/{eventId}/sessions/{sessionId}/telemetry/drivers/{code}

    Sub-lap telemetry for one driver in a session

    Every lap the driver completed, each cut into equal slices of track with mean and minimum speed, throttle, brake, DRS and distance to the car ahead. Because the slices are fixed pieces of tarmac rather than fixed intervals of time, the same index compares directly across laps and across drivers. Coverage runs from 2019 and includes practice, qualifying, sprint and race sessions. Data is written after a session ends and does not change afterwards. Sessions missing some laps are served with `quality: "partial"` and a `qualityNote` saying so. When specific recorded channels are known to be wrong (a faulty source feed), the session is served with `quality: "degraded"`: the faulty channels are listed in `withheldChannels` and their values are null, and everything else is real. A session wrong in a way that cannot be isolated to channels is refused, and the 404 message carries the recorded reason. ### Usage ```bash curl -X GET "https://formula-1.jojapi.net/v1/formula1/events/{eventId}/sessions/{sessionId}/telemetry/drivers/VER" \ -H "X-JoJAPI-Key: YOUR_API_KEY" ```

Frequently asked questions about Formula 1 API

How do I get started with the API?

Sign up for a free account to receive your API key instantly. Check our documentation for authentication details and endpoint references.

Do you provide lap-by-lap data?

Yes. For Formula 1 sessions, the lap-chart endpoint returns the running order lap by lap (a position-by-lap grid with the car number in each cell), and the lap-times endpoint returns each driver's individual lap times (a car-by-lap grid). Both are available as JSON, CSV, or text, and are included on all paid plans.

Can I call the API directly from the browser?

Yes, on any paid plan. CORS is enabled on the data endpoints, so browser JavaScript can fetch them with your key in the X-API-Key header, and the rate-limit headers are readable from page scripts. Keep in mind that a key shipped in a page is visible to your visitors: use a dedicated key you can rotate from your profile, or proxy through your own backend for production traffic. The free tier is server-side only.