Every meeting in the archive by course and day for the last 30 days, and the days ahead as carded. This is the coverage itself, not a description of it, so you can see exactly which courses we carry and how often they race before you build anything.
8 fixtures are carded for the days ahead, already in the API with runners, draws and weights. Bars are races per day; brass is ahead.
The grid
One row per course, one column per day. A number is the races that course staged; a blank is no racing. Dates are the course's own local date, so an evening card in Korea or a night meeting at Happy Valley sits on the day it ran.
One call
The grid is one call to the calendar endpoint, not thirty to the meetings endpoint. It reads a rollup rebuilt every hour, so it answers in milliseconds. A day with no racing is absent: the gap is the answer.
{ "meta": { "count": 412, "date_from": "2026-09-26", "date_to": "2026-10-28" }, "data": [ { "date": "2026-10-18", "course_id": "cr_7Kq2mX", "course": "Ascot", "country": "GB", "code": "flat", "fixtures": 1, "races": 7, "status": "run" }, { "date": "2026-10-25", "course": "Sha Tin", "country": "HK", "races": 10, "status": "carded" } ] }
How it fits
The calendar tells you where to look. Three calls take you from a day on the grid to every runner in it.
A course's card on one day: going, and its races in order of the off.
GET /v1/meetings/{date}Conditions, distance, class and prize money, then the result, the dividends and the market.
GET /v1/races/{race_id}/resultDraw, weight, jockey, trainer, breeding and the price path, and the form behind each horse.
GET /v1/races/{race_id}/runnersGetting it
The calendar shows what exists. These are the ways to take it as it lands.
Cards before the day, results within minutes of the weigh-in, the whole archive behind them.
/v1/meetings/v1/racesA signed call to your server the moment a result arrives, so nothing has to poll.
result.receivedThirty days of fixtures in one request, to plan a backfill or check a course before you rely on it.
/v1/meetings/calendarStart on the free key with yesterday's results, then pick the window you need.