raceevent is a synthetic feed generated by RaceHooks from live race data. Instead of receiving raw position arrays and computing events yourself, you subscribe once and receive pre-detected, structured events — overtakes, pit stops, safety cars, fastest laps, retirements, and more. This feed is currently available for F1. Equivalent synthetic event feeds for other supported sports will be documented here as they launch.
Feed ID
raceevent
STARTERGENERATED
Cadence: event-driven · available on Starter and above · path: _generated (synthesized — not a direct feed subscription)
A driver abandons their flying lap (slows, pits, yellow flag).
json
// data field
{
"driver": "1",
"tla": "VER",
"team": "Red Bull Racing",
"lap": 5
}
Handle deliveries
race-events-handler.ts
// Express endpoint
app.post("/race-events", express.raw({ type: "application/json" }), (req, res) => {
const payload = JSON.parse(req.body.toString());
switch (payload.event) {
case "overtake":
console.log(`${payload.data.tla} overtook ${payload.data.displaced.tla} for P${payload.data.toPosition}`);
break;
case "pit.entry":
console.log(`${payload.data.tla} into the pits on lap ${payload.data.lap}`);
break;
case "fastest.lap":
console.log(`Fastest lap: ${payload.data.tla} ${payload.data.lapTime}`);
break;
case "safety.car.deployed":
console.log(`${payload.data.type} deployed on lap ${payload.data.lap}`);
break;
case "retirement":
console.log(`${payload.data.tla} has retired on lap ${payload.data.lap}`);
break;
}
res.sendStatus(200);
});
Filtering race events
Use filters.drivers to scope race events to specific drivers. This is especially useful for fantasy scoring engines or fan apps that only care about a specific team or driver combination.
ℹ
Position filters (positions.min / positions.max) are not applied to raceevent deliveries, since events like safety.car.deployed are session-wide and have no single position to filter on.