Horses today's racecards API
Today's racecardsToday's racecards with every runner.
This lists what is coming, with start times in UTC and the ids that carry on into results once played. It comes with the Horses plan.
Try it
Your key stays in this browser and is filled in on every docs page.
200 OK1904 ms2 rows shownReal answer from 2026-11-03, trimmed
{
"data": [
{
"meeting_id": "hr_47vd1aaq34",
"course_id": "hr_09p43gn5kp",
"course": "Bunbury",
"country": "AUS",
"region": "AUS",
"date": "2026-11-03",
"going": null,
"surface": "Turf",
"races": [
{
"race_id": "hr_hjk8a516c1",
"meeting_id": "hr_47vd1aaq34",
"course": "Bunbury",
"time": "05:31",
"off_time": null,
"name": "BUNBURY RSL DIGGERS MAIDEN",
"run_type": "Flat",
"class": "Maiden",
"distance": "1200m",
"going": null,
"surface": "Turf",
"handicap": false,
"runners": 8,
"result_available": false
},
{
"race_id": "hr_109skpt39s",
"meeting_id": "hr_47vd1aaq34",
"course": "Bunbury",
"time": "06:18",
"off_time": null,
"name": "TREVOR ROCHE MEMORIAL MAIDEN",
"run_type": "Flat",
"class": "Maiden",
"distance": "1400m",
"going": null,
"surface": "Turf",
"handicap": false,
"runners": 8,
"result_available": false
},
{
"race_id": "hr_h7kev6pt1s",
"meeting_id": "hr_47vd1aaq34",
"course": "Bunbury",
"time": "06:48",
"off_time": null,
"name": "CUPRUM DISTILLERY - VODKA, PASSIONFRUIT & SODA MAIDEN",
"run_type": "Flat",
"class": "Maiden",
"distance": "1100m",
"going": null,
"surface": "Turf",
"handicap": false,
"runners": 10,
"result_available": false
}
]
},
{
"meeting_id": "hr_mfk8w69vk0",
"course_id": "hr_f6tkmwg2r5",
"course": "Bundaberg",
"country": "AUS",
"region": "AUS",
"date": "2026-11-03",
"going": "Soft",
"surface": "Dirt",
"races": [
{
"race_id": "hr_kvks62takb",
"meeting_id": "hr_mfk8w69vk0",
"course": "Bundaberg",
"time": "03:10",
"off_time": null,
"name": "CRAFT RENTAL & HARDWARE BENCHMARK 50 Handicap",
"run_type": "Flat",
"class": null,
"distance": "1212m",
"going": "Soft",
"surface": "Dirt",
"handicap": true,
"runners": 7,
"result_available": true
},
{
"race_id": "hr_41fgms4r33",
"meeting_id": "hr_mfk8w69vk0",
"course": "Bundaberg",
"time": "03:45",
"off_time": null,
"name": "BUNDY STAR Maiden Plate",
"run_type": "Flat",
"class": null,
"distance": "850m",
"going": null,
"surface": "Dirt",
"handicap": false,
"runners": 9,
"result_available": false
},
{
"race_id": "hr_yhr3znzz2v",
"meeting_id": "hr_mfk8w69vk0",
"course": "Bundaberg",
"time": "04:20",
"off_time": null,
"name": "THABEBAN CELLARS BENCHMARK 55 Handicap",
"run_type": "Flat",
"class": null,
"distance": "850m",
"going": null,
"surface": "Dirt",
"handicap": true,
"runners": 10,
"result_available": false
}
]
}
],
"meta": {
"sport": "horses",
"endpoint": "/cards/today",
"count": 47,
"as_of": "2026-11-03T04:22:33+00:00",
"cached": false,
"age_seconds": 0
}
}No key yet? Get a free key: it reads yesterday for every sport and is filled in here once made.
Parameters
This call takes no query values.
Returns
Each row of data, from a real answer. Every id is ours and opens its own endpoint.
| Field | Type | What it holds |
|---|---|---|
| meeting_id | id | The meeting, by our id |
| course_id | id | The course, by our id |
| course | string | The course |
| country | string | The country |
| region | string | The region |
| date | date | The day, YYYY-MM-DD |
| going | null | The going |
| surface | string | Turf, all-weather or similar |
| races | list | The races in it |
| meta | What it holds |
|---|---|
| sport, endpoint | What you asked |
| count | Rows in this answer |
| page, per_page, total, next_cursor | Where you are in a paged list, when it is paged |
| as_of | When the data was built |
| cached, age_seconds | Whether this is a stored copy, and its age |
| access | On the free key: what it reads, and the plan that opens the rest |
Errors
Codes this call can give. Each is explained in Errors.
| Status | Code | When |
|---|---|---|
| 401 | no_key | No key sent, or not in a form we read |
| 401 | bad_key | A key we do not know |
| 403 | plan | The free key, or a sport you do not hold |
| 422 | bad_param | A value this call does not take |
| 429 | rate | Over the calls a minute for your plan |
| 503 | upstream | The data is not answering; retry after Retry-After |
Today's racecards comes with the Horses plan, $79 a month, with every date held and 250,000 calls a month.
Add Horses