Building motorsport analytics since 2022

The motorsport
analytics platform.

Live race intelligence: win probability, pit calls, tyre cliff, and safety car — predicted every lap and pushed to your endpoint, not left for you to model.

14ML models
50+live feeds
<1sdelivery latency
POST your-app.com/racing-hookLIVE
14:22:31.102timing.data● 200
14:22:31.371pit.lane-times● 200
14:22:31.644tire.history● 200
14:22:32.008race-control.messages● 200
14:22:45.009weather.data● 200
14:24:02.314timing.data● 200
14:24:03.120session.info● 200
timing.dataAnalytics-enriched timing
{
  "feed": "timing.data",
  "sessionId": "9560",
  "utc": "2026-06-08T14:32:18.441Z",
  "drivers": [
    {
      "driverId": "norris-lando",
      "constructorId": "mclaren",
      "number": "4",
      "tla": "NOR",
      "name": "Lando Norris",
      "team": "McLaren F1 Team",
      "position": 1,
      "gapToLeader": null,
      "interval": null,
      "lastLapTime": {
        "display": "1:27.412",
        "ms": 87412
      },
      "bestLapTime": {
        "display": "1:27.412",
        "ms": 87412
      },
      "sectors": [
        {
          "display": "28.441",
          "ms": 28441
        },
        {
          "display": "31.204",
          "ms": 31204
        },
        {
          "display": "27.767",
          "ms": 27767
        }
      ],
      "speeds": {
        "i1": 276,
        "i2": 298,
        "fl": 293,
        "st": 344
      },
      "pitStops": 1,
      "inPit": false,
      "retired": false
    },
    {
      "driverId": "verstappen-max",
      "constructorId": "red-bull-racing",
      "number": "1",
      "tla": "VER",
      "name": "Max Verstappen",
      "team": "Red Bull Racing",
      "position": 2,
      "gapToLeader": {
        "display": "+4.218",
        "seconds": 4.218
      },
      "interval": {
        "display": "+4.218",
        "seconds": 4.218
      },
      "lastLapTime": {
        "display": "1:28.103",
        "ms": 88103
      },
      "bestLapTime": {
        "display": "1:27.831",
        "ms": 87831
      },
      "sectors": [
        {
          "display": "28.612",
          "ms": 28612
        },
        {
          "display": "31.411",
          "ms": 31411
        },
        {
          "display": "27.808",
          "ms": 27808
        }
      ],
      "speeds": {
        "i1": 274,
        "i2": 296,
        "fl": 291,
        "st": 341
      },
      "pitStops": 1,
      "inPit": false,
      "retired": false
    },
    {
      "driverId": "leclerc-charles",
      "constructorId": "ferrari",
      "number": "16",
      "tla": "LEC",
      "name": "Charles Leclerc",
      "team": "Scuderia Ferrari",
      "position": 3,
      "gapToLeader": {
        "display": "+8.211",
        "seconds": 8.211
      },
      "interval": {
        "display": "+3.993",
        "seconds": 3.993
      },
      "lastLapTime": {
        "display": "1:28.209",
        "ms": 88209
      },
      "bestLapTime": {
        "display": "1:28.001",
        "ms": 88001
      },
      "sectors": [
        {
          "display": "28.700",
          "ms": 28700
        },
        {
          "display": "31.502",
          "ms": 31502
        },
        {
          "display": "28.007",
          "ms": 28007
        }
      ],
      "speeds": {
        "i1": 272,
        "i2": 295,
        "fl": 289,
        "st": 339
      },
      "pitStops": 2,
      "inPit": false,
      "retired": false
    }
  ]
}
14
production ML models
80K+
feed events per race
340K+
laps analyzed
77
seasons since 1950
Validated against live prediction markets

Our models beat prediction markets.

We grade our models each race against live prediction markets: Polymarket and Kalshi. In 2026, our win probabilities scored closer to the result than theirs, before lights-out and live during race events.

Every prediction was made with the outcome unknown, then graded against what happened and how we stack up against other competitors and prediction markets.

Pre-race winner · vs Polymarket
6 of 9 races
Our lights-out line priced the winner more accurately than the market in six of the season's nine races.
Leadp = 0.005
Live win probability · vs Kalshi
44% better
As the race runs, our win probabilities are 44% closer to the real outcome.
Leadmid p=0.001 · late p=0.011
Champion called · 2018–2025 vs baseline
75% vs 38%
We name the eventual champion 75% of the time. Aggregate prediction markets across the same period is right 38% of the time.
Lead8 seasons
Title race · round by round

We compute championship probabilities continuously as the season unfolds.

Each line is the model's live championship probability after every round of 2025. If we just followed the points leader, one line would sit on top all year. Instead the lead changes hands — Piastri our favorite from late August into October — before Norris's late surge to the title.

Norris · championPiastriVerstappen
PIASTRI AHEAD0255075100%AprMayJunJulAugSepOctNovNOR 81%VER 10%PIA 9%

Norris took the title, but it never seems set in stone. Our model had him as low as 24% in early September, with Piastri at 76%. Calling a season isn't backing the leader; it's being right about when the lead is real.

The full scorecard

Our goal is to beat the market everywhere, but we aren't there yet.

MarketSeasonUs vs the marketSignificanceCalibration (ours vs market)Verdict
Pre-race winner2026Sharper in 6 of 9 racesp = 0.0050.020 vs 0.022Lead
Live winner, mid + late202644% better calibratedp ≤ 0.010.014 vs 0.025Lead
Drivers' champion2025Right 71% vs 24%p < 0.010.015 vs 0.044Lead
Live winner, opening laps2026Leveln.s.on parParity
Podium (top 3)2026Leveln.s.market tighterParity
Constructors' champion2024Leveln.s.0.088 vs 0.109Parity

“Parity” means we do not beat the market yet. We continuously invest in our ML algorithms to eventually beat the market on every category.

Under the hood

The models feeding those lines

±0.3s
Race pace
We predict each driver's true pace to within a third of a second a lap.
±2 laps
Tyre life
We see the performance cliff about two laps before major degradation affects the laptimes.
73%
Wet-tyre calls
We catch the switch to wet compounds 73% of the time.

See the predictions live.

What our models said, live, checked against what happened. Race by race.

F1 — 50+ live feeds

50+ real-time feeds,
pushed the moment they fire.

50+ real-time feeds across timing, race control, strategy, and more — pushed directly to your endpoint the moment they happen. The Developer tier unlocks every live data feed; Custom adds the ML feed suite on top. The Free tier lets you build and test on historical and simulated sessions.

50+
Real-time feeds
Developer tier: every data feed · Custom: full catalog
Timing6 feeds

Lap times, sector splits, gaps, and mini-sector detail — every lap.

timing.datatiming.statstiming.lap-history
Race Control5 feeds

Flags, race control messages, and team communications.

session.track-statusrace-control.messagesradio.transcript
Session5 feeds

Session status, clock, lap count, track status, and the driver list.

session.statussession.lap-countdriver.list
Tires & Pit6 feeds

Tire stints and history, pit stops, and pit-lane timing.

tire.currenttire.historytire.stints
Weather8 feeds

Track conditions, rainfall events, forecasts, and weather intelligence.

weather.dataweather.data-seriesweather.rain-onset
Race Events4 feeds

Synthesized event streams — overtakes, milestones, qualifying events.

events.racesession.timingevents.qualifying

Feed id values (e.g. timing.data, race-control.messages) are in the Feed Catalog.

ML Analytics — Available on Custom

Research Grade Analytics
in real time.

Position distributions, pit and safety-car probabilities, tyre health metrics — inside the timing data you already consume.

Custom tier

Your payload, enriched.

On the Custom tier, every timing payload gets an analytics key at the root — all fourteen models, for every driver.

Tire health score + predicted laps remaining
Win probability + delta from last lap
Pit stop probability + expected window
Safety car probability per lap
Per-pair overtake probability
LTOE normalized pace delta
POST your-app.com/racing-hook
{
  "feed": "timing.data",
  "sessionId": "9560",
  "drivers": [{
    "driverId": "verstappen-max",
    "constructorId": "red-bull-racing",
    "number": "1", "tla": "VER",
    "Position": 1, "GapToLeader": "—",
    // ↓ RaceHooks Analytics enriched fields
    "analytics": {
      "tireHealth": { "tireHealth": 0.62 },
      "pitStopProbability": 0.74,
      "winProbability": { "probability": 0.58 },
      "ltoe": { "degradationSec": -0.182 }
    }
  }]
}
pit stop probabilitysafety carovertakeLTOE lap-time outlier estimationtyre cliffundercut threatundercut timing callovercut threatqualifying pacefastest lapDNF risktyre compoundpit-stop countpit-window survival

How each model works, and how it's calibrated: the models reference →

Built for

Who builds on RaceHooks

Each card shows what ships on Developer at $99/mo, and what Custom adds on top.

Fantasy & DFS Projections

Every scoring category, live from lights out.

Included on Developer
Fantasy scoring API — race & live
Pit-stop time leaderboard
Race events: overtakes, DNFs, fastest lap
Open-source scorer + roster optimizer
Custom adds
Finishing-position distributions
Expected place differential
Friday pre-race preview

Trading & Quant Research

Price the race before the market reprices.

Included on Developer
Grid penalties & steward decisions
Race control: safety car, VSC, red flag
Current-season replay backtesting
Sub-second webhook + SSE delivery
Custom adds
Position distributions & race odds
Championship & standings projection
Winning-margin and gap bands
Full-archive replay

Race Strategy

Every stint, every stop, structured while it happens.

Included on Developer
Compound, stint age & new-set state
Pit-lane and stationary times in ms
Lap-by-lap pace and sector times
Circuit-side weather on the same clock
Custom adds
Pit window: OPEN / URGENT
Tyre cliff & next-compound probability
Stop-quality scoring
True pace and mini-sector timing

Media & Broadcast

Surface the story as it happens.

Included on Developer
Race-events feed — 40+ event types
Race control, penalties & steward decisions
Lap times, sector times, gaps, order
Sub-second delivery, HMAC-signed
Custom adds
Overtake probability
LTOE normalized pace
Mini-sector timing & classified results

Dashboards & Fan Apps

Your dashboard, wired to the live session.

Included on Developer
Running order, gaps, lap & sector times
Live track position for the circuit map
Track status & race control as typed events
One SSE connection — no backend needed
Custom adds
Win & podium probability
Battle state and closing rate
True pace and mini-sector timing

Sim Racing & Esports

Real F1 data for the sim on your desk.

Included on Developer
Stint & compound histories
Qualifying pace and sector benchmarks
Per-lap telemetry summaries
Replay a real session into your endpoint
Custom adds
Full historical archive replay
True pace & mini-sector timing
Tyre cliff & compound probability

Research & Teaching

Seven decades of racing, one consistent schema.

Included on Developer
Results, laps, stints, pit stops from 1950
Canonical driver & constructor identity
Session weather on the same clock
Free tier, permanently
Custom adds
Mini-sector timing
Model outputs as a baseline
Full-archive replay

Developer Tools

Build without waiting for race day.

Included on Developer
Current-season replay
0.1×–120× playback
HMAC-signed payloads
Full delivery logs
Developer experience

First webhook in five minutes.

Register an endpoint. Subscribe to a feed. Your first delivery arrives in under 5 minutes. Building fantasy? The Fantasy scoring API and open-source scorer turn that feed into a live leaderboard.

01
Simulate any race

Replay this season's sessions at up to 10× — build before race day.

02
HMAC-signed delivery

Every payload signed. One line to verify.

03
Full delivery logs

Headers, status, latency, retries — every attempt, exportable.

Run your first replay →
# Register your webhook (after signup)
curl -X POST https://api.racehooks.io/v1/webhooks \
  -H "Authorization: Bearer ${TOKEN}" \
  -d '{
    "webhookUrl": "https://your-app.com/racing",
    "feedId": "timing.data"
  }'

# Done. Live race data comes to you.
Pricing

Simple pricing model.

Replay and API available free. Go paid to get data live.

Free
$0

Build and test your integration before going live.

Start building
Included
Historical session data
5 current-season simulate sessions
HMAC-SHA256 signing
Community support
Live feeds
Analytics payload
Most popular
Developer
$99/mo
or $79/mo billed annually

Every live feed, metered by delivery — build and ship commercial products.

Start Developer
Included
All 30 live data feeds
Race-events feed — overtakes, pit stops, safety cars
Fantasy scoring API + open-source scorer
50,000 deliveries/mo, then $3 per 1,000
10 current-season simulate sessions
Build & sell commercially
HMAC-SHA256 signing
99.5% delivery SLA
ML analytics payload
Custom
Custom

Production-scale delivery, an SLA, the full 14-model analytics stack, dedicated infrastructure — whatever your product needs.

Talk to sales
What we build

Unlimited live delivery, contractual SLA, the full 14-model ML analytics stack (win/podium probability, tyre health, pit predictions, 22 derived feeds), dedicated infrastructure, custom limits and throughput, a named CSM — priced around what you actually use, not a fixed tier. Talk to sales@racehooks.io.

Cancel anytime. Annual billing saves 20%

Platform Roadmap

F1 live. IndyCar data live. More coming.

One integration across every series. Your code keeps working as sports launch.

F1
Formula 1
LIVE
IRL
IndyCar
API LIVE
NASCAR
NASCAR
ROADMAP
FE
Formula E
ROADMAP
IndyCar data API is live now

Query results (1996–2026), standings, schedule, and roster today. Real-time IndyCar streaming delivery is in development. Get notified when it ships.

FAQ

Common questions

Something else? Email us.