Latest results
Every plan, free key included
The latest settled UK races your plan can read. British and Northern Irish racing only.
Examplea real answer from 2026-10-29, trimmed to a few rows
{
"data": [
{
"race_id": "rc_s5e9rgr6",
"meeting_id": "mt_24p8en3d",
"course": "Newmarket",
"time": "12:05",
"off_time": "12:05:57",
"name": "German G1 Racecourses Thank World Pool British EBF Novice Stakes (C & G) (Div 1)",
"run_type": null,
"class": "3",
"distance": "7f",
"going": "Good to Soft",
"surface": "TURF",
"handicap": false,
"runners": 12,
"result_available": true,
"date": "2026-10-30",
"winning_time": "1m 26.21s",
"book_percentage": 122.14
},
{
"race_id": "rc_syd1hjrz",
"meeting_id": "mt_b05v6sym",
"course": "Lyon-Parilly",
"time": "11:50",
"off_time": "11:53:48",
"name": "Prix De Lacroix-laval Handicap",
"run_type": null,
"class": "3",
"distance": "1m 3f 204y",
"going": "Very Soft",
"surface": "TURF",
"handicap": true,
"runners": 9,
"result_available": true,
"date": "2026-10-30",
"winning_time": null,
"book_percentage": 126.96
}
],
"meta": {
"request_id": "3e33473236a03abd",
"plan": "complete",
"window": "January 2017 to the next 3 days",
"data_as_of": "2026-10-30T12:41:32+00:00",
"count": 5
}
}Parameters
| Name | In | Type | Required | What it does |
|---|---|---|---|---|
limit | query | integer | no | How many rows in one answer, 1 to 100. Default 25. |
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 | string | 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 | string | The race class. |
distance | string | The race distance as published, for example 2m 87y. |
going | string | 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. |
winning_time | string | The winner's time. |
book_percentage | number | The total of the market's implied chances. Null on the free key. |
Errors
| Code | Status | When |
|---|---|---|
unauthorized | 401 | No key was sent, or the key is not one of ours. |
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. |