Upcoming racecards
Live, Archive and Complete
Declarations for the next few days. British and Northern Irish racing only.
Examplea real answer from 2026-10-29, trimmed to a few rows
{
"data": [
{
"race_id": "rc_p0n4gn9t",
"meeting_id": "mt_8fbc2mcy",
"course": "Charles Town",
"time": "00:02",
"off_time": null,
"name": "Race 3 - Maiden Claiming",
"run_type": null,
"class": null,
"distance": "4f 110y",
"going": null,
"surface": "DIRT",
"handicap": false,
"runners": 8,
"result_available": false,
"date": "2026-10-30"
},
{
"race_id": "rc_2pxrgadc",
"meeting_id": "mt_dfs6rek9",
"course": "Penn National",
"time": "00:10",
"off_time": null,
"name": "Race 6 - Claiming",
"run_type": null,
"class": null,
"distance": "1m 70y",
"going": null,
"surface": "DIRT",
"handicap": false,
"runners": 6,
"result_available": false,
"date": "2026-10-30"
}
],
"meta": {
"request_id": "4c4926d9c4c93fd5",
"plan": "complete",
"window": "January 2017 to the next 3 days",
"data_as_of": "2026-10-30T11:33:04+00:00",
"count": 327
}
}Parameters
| Name | In | Type | Required | What it does |
|---|---|---|---|---|
days | query | integer | no | How many days ahead, 1 to 7. Today and tomorrow when left out. Default 2. |
Returns
A list in data, one row each, with meta.count. Every answer carries meta: request_id, plan, window and data_as_of.
| Field | Type | Holds |
|---|---|---|
race_id | string | Our id for the race. |
meeting_id | string | Our id for the meeting. |
course | string | The course name. |
time | string | The advertised off time by the racecourse clock, HH:MM. |
off_time | null or value | When the race actually went off, by the racecourse clock; null until it has. |
name | string | The name, as raced: the race title on a race. |
run_type | null or value | Flat, Hurdle, Chase or NH Flat. |
class | null or value | The race class. |
distance | string | The race distance as published, for example 2m 87y. |
going | null or value | The going as declared; null until it is. |
surface | string | Turf or the all-weather surface. |
handicap | boolean | Whether the race is a handicap. |
runners | integer | The runners, or how many there were. |
result_available | boolean | Whether the race is settled. |
date | string | The UK racing day, YYYY-MM-DD. |
Errors
| Code | Status | When |
|---|---|---|
unauthorized | 401 | No key was sent, or the key is not one of ours. |
upgrade_required | 403 | Your plan does not reach this endpoint. The answer names the plans that do. |
outside_plan_window | 403 | The day asked for is outside what your plan reads. The answer gives your window and the day you asked for. |
bad_request | 400 | A value is the wrong shape: a date that is not YYYY-MM-DD, a cursor that is not ours, or a key sent in the address. |
unknown_parameter | 422 | A parameter this endpoint does not take. The answer lists the ones it does. |
rate_limited | 429 | Too many calls this minute for your plan. |
quota_exceeded | 429 | Your plan's calls for the month are used. The answer says when they reset. |