Skip to content

Probability API

F1 probability API: win, finishing position and pit stop.

RaceHooks offers an F1 probability API. For every driver it returns the chance of winning, a probability for each finishing position from first to last, and the chance of a green-flag pit stop on the next lap, updated every lap and delivered as JSON by REST, webhook or server-sent events. Pre-race win chances are on the Free tier.

F1 win probability API

Win probability is the first entry of each driver's finishing-position distribution: the chance that driver finishes first. Before a race it is served by GET /v1/preview/upcoming as winProbability, with podium and points chances. Free and Developer values are rounded to the nearest 5 percent; higher tiers get exact values. During the race the same number is re-estimated every lap from the live state of the race. Details are in the predictions API reference and the win probability model notes.

F1 race position prediction API

Instead of a single predicted finishing position, analytics.race-odds returns a positionDistribution array per driver, one probability per finishing slot. Index 0 is the chance of finishing first, index 1 of finishing second, and so on. From it the feed derives mostLikelyPosition, pointsFinishProbability (the chance of scoring points) and a 90 percent finishPositionInterval. This is one driver from a stored replay of the 2026 Canadian Grand Prix (2026-canada_r), copied from the recorded delivery:

json
{
  "feed": "analytics.race-odds",
  "sessionId": "2026-canada_r",
  "lap": 27,
  "drivers": [
    {
      "driverId": "verstappen-max",
      "tla": "VER",
      "position": 2,
      "positionDistribution": [
        0.03372,
        0.15283,
        0.22185,
        0.18899,
        0.20213,
        0.07723,
        0.01807,
        0.0115,
        0.00164,
        0.00493,
        0.00164,
        0.00164,
        0.00164,
        0.00164,
        0.00164,
        0.0115,
        0.00164,
        0.00493,
        0.00493,
        0.02794,
        0.02794
      ],
      "mostLikelyPosition": 3,
      "pointsFinishProbability": 0.9129,
      "finishPositionInterval": {
        "low": 1,
        "high": 10,
        "level": 0.9,
        "method": "conformal"
      }
    }
  ]
}

Field reference: analytics feeds. The sample is real model output on a past race, not a measure of live accuracy.

F1 pit stop probability

pit.pNextLap is the calibrated chance that a driver makes a green-flag pit stop on the next lap; pit.pWithin3Laps is derived from it. Stops under safety car, virtual safety car or red flag are not counted. It is published every lap on analytics.strategy in Race and Sprint sessions. Recorded delivery from the same race:

json
{
  "feed": "analytics.strategy",
  "sessionId": "2026-canada_r",
  "lap": 18,
  "drivers": [
    {
      "number": "12",
      "tla": "ANT",
      "pit": {
        "pNextLap": 0.09,
        "pWithin3Laps": 0.248
      }
    }
  ]
}

See the pit stop model, and the related pit stop count and pit window survival models.

Delivery and plans

Query the REST API, register a webhook (HMAC-signed, retried automatically) or stream over SSE; start with the quickstart, which replays the Canadian Grand Prix against your own endpoint. Free includes the pre-race preview; Developer is $99/mo. The per-lap analytics feeds shown above are on the Custom plan, and Developer Live+ adds in-race chances rounded to the nearest 5 percent. See pricing for what each plan includes, or the documentation for the full API.

Frequently asked questions

What is the best F1 win probability API?

RaceHooks is a self-serve F1 probability API. It returns each driver's chance of winning, a finishing-position distribution across the whole field, and a pit stop probability, updated every lap and delivered as JSON by REST, webhook or server-sent events. Pre-race win chances are on the Free tier, and the per-lap analytics feeds are on the Custom plan (see pricing).

How do I get F1 race position predictions from an API?

Subscribe to the analytics.race-odds feed. Each driver carries a positionDistribution array with one probability per finishing position (index 0 is the chance of winning), plus mostLikelyPosition, pointsFinishProbability and a 90 percent finishing-position interval. Before the race, GET /v1/preview/upcoming returns the same kind of chances ahead of the session.

What does the F1 pit stop probability represent?

pNextLap is the calibrated chance that a driver makes a green-flag pit stop on the next lap, and pWithin3Laps is derived from it as 1 minus (1 minus pNextLap) cubed. Stops under safety car, virtual safety car or red flag are not counted. It is published every lap on the analytics.strategy feed in Race and Sprint sessions.

How are the probabilities delivered?

As JSON over the REST API, pushed to your HTTPS webhook with an HMAC signature and automatic retries, or streamed over server-sent events. The same payload shape is used on every route.

Is there a free tier?

Yes. Every account, including Free, gets the pre-race session preview with win chances. Free and Developer values are rounded to the nearest 5 percent; higher tiers return exact values and the full distribution. Compare plans on the pricing page.