Read API · v1 · JSON + iCal
Public API
Everything on the site, as data. Free, no key, CORS open. Please cache. Responses are CDN-cached for about 15 minutes anyway.
Licence
The data is CC BY 4.0. Credit openpaddock.app wherever you show it. Rows that come from MotorsportReg.com (organisers whose feed kind is msr) also need their attribution: Powered by MotorsportReg.com.
Endpoints
- GET
/api/v1/eventsUpcoming days, sorted by date. Takes the filters below. Returns{count, events[]}. - GET
/api/v1/events.icsThe same filters as a subscribable iCal feed. Usewebcal://to subscribe. - GET
/api/v1/organisersAll listed organisers, with feed kind, last successful check and upcoming count. - GET
/api/v1/organisers/:idOne organiser. - GET
/api/v1/circuitsAll circuits, with location, region and coordinates where known. - GET
/api/v1/circuits/:idOne circuit. - GET
/api/v1/snapshotCircuits, organisers and events (cancelled included) in one response. This is what builds the site. - GET
/api/v1/healthLast ingest time and feed counts. Not cached.
Filters
For events and events.ics. Combine freely.
| Param | Meaning |
|---|---|
| circuit | Circuit id, e.g. pat-s-acres-racing-complex. Comma-separate for several. |
| organiser | Organiser id, e.g. pats-acres-moto. Comma-separated. |
| country | US, CA or MX. Comma-separated. |
| region | Riding region: canada, central, east, west. |
| type | Organiser type: commercial, school, club, track-owned, private-premium, kart-minitrack. |
| priceTier | budget, standard, premium (or unknown). |
| from | YYYY-MM-DD. Days ending on or after this date. Defaults to today. |
| to | YYYY-MM-DD. Days starting on or before this date. |
| cancelled | Set to include to keep cancelled days in the results (they're left out by default). |
| limit | Max rows, up to 5000 (events only). |
Examples
Every day in one region
curl "https://openpaddock.app/api/v1/events?region=canada"One organiser at one circuit, this winter
curl "https://openpaddock.app/api/v1/events?organiser=pats-acres-moto&circuit=pat-s-acres-racing-complex&from=2026-11-01&to=2027-02-28"Subscribe in a calendar app
webcal://openpaddock.app/api/v1/events.ics?country=CACanadian organisers with jq
curl -s https://openpaddock.app/api/v1/organisers | jq '.organisers[] | select(.country=="CA") | .name'Event shape
{
"id": "ae103f77c7766506e7cd",
"organiserId": "pats-acres-moto",
"title": "…",
"start": "YYYY-MM-DD",
"end": "YYYY-MM-DD", // inclusive; track days are all-day
"circuitId": "pat-s-acres-racing-complex", // null when the venue isn't matched yet
"venueName": "…", // as the feed wrote it
"url": "https://…", // the organiser's page for the day
"cancelled": false,
"regOpens": null, "regCloses": null,
"source": "msr | ics | tribe",
"fetchedAt": "ISO-8601", "firstSeenAt": "ISO-8601"
}Organisers with feed kind none are listed with a link to their schedule and never have events.
Organisers
Want your days in the API? Add your calendar. The form posts JSON to POST /api/v1/submissions, but please use the form.