WRG API

A REST API providing access to racing data -- events, tracks, drivers, and series.

Base path: /v1 Auth: Bearer API key Rate limit: 100 req / 15 min

Authentication

Endpoints under /v1 require an API key, passed as a bearer token:

Authorization: Bearer <key>

Keys are issued per person/company and checked against a stored hash on each request. A key stops working once its expiration date passes.

Health check

GET/health

Returns { "status": "ok" }. Not rate-limited, no auth required.

Events

GET/v1/events

Upcoming events (event_date >= today), ordered ascending.

Query params: trackId, season

GET/v1/events/past

Past events, ordered descending.

Query params: trackId, season

GET/v1/events/:id

Get an event by ID.

GET/v1/events/:id/entries

Entrants for an event, grouped by series.

Query params: seriesId

GET/v1/events/:id/result

Results for an event, grouped by series then race (heat, B main, feature, etc.), ordered by each race's race_type_order.

Query params: seriesId, raceId

Tracks

GET/v1/tracks

List tracks.

Query params: city, state (name or abbreviation), country, postalCode

GET/v1/tracks/:id

Get a track by ID.

Drivers

GET/v1/drivers

List drivers.

Query params: city, state (name or abbreviation), country, status

GET/v1/drivers/:id

Get a driver by ID.

Series

GET/v1/series

List all racing entities (series and non-series entities).

Query params: name (partial match), vehicleClass

GET/v1/series/wrg

List only WRG series (inner join on wrg_series).

GET/v1/series/:id

Get a racing entity by ID.

Errors

Every error response has the shape:

{ "error": { "code": "...", "message": "..." } }