horseracingapi.co.uk

Today's UK racecards

Live, Archive and CompleteMCP: todays_racecards

Today's UK cards, grouped by meeting. British and Northern Irish racing only.

GEThttps://api.horseracingapi.co.uk/v1/racecards/today
Try itruns against the real API with your key
Get a free key
GET /v1/racecards/today
Examplea real answer from 2026-10-29, trimmed to a few rows
{
    "data": [
        {
            "meeting_id": "mt_e6gdvcan",
            "course_id": "cr_m5cvpetc",
            "course": "Down Royal",
            "country": "Nort",
            "region": "NIR",
            "date": "2026-10-30",
            "going": "Yielding",
            "surface": "TURF",
            "races": [
                {
                    "race_id": "rc_2drzxxqn",
                    "meeting_id": "mt_e6gdvcan",
                    "course": "Down Royal",
                    "time": "13:00",
                    "off_time": null,
                    "name": "Irish Stallion Farms EBF Maiden Hurdle",
                    "run_type": null,
                    "class": null,
                    "distance": "2m 6f 110y",
                    "going": "Yielding",
                    "surface": "TURF",
                    "handicap": false,
                    "runners": 11,
                    "result_available": false
                },
                {
                    "race_id": "rc_tq45xw2w",
                    "meeting_id": "mt_e6gdvcan",
                    "course": "Down Royal",
                    "time": "13:30",
                    "off_time": null,
                    "name": "Eventsec Handicap Hurdle (0-100)",
                    "run_type": null,
                    "class": null,
                    "distance": "3m 45y",
                    "going": "Yielding",
                    "surface": "TURF",
                    "handicap": true,
                    "runners": 23,
                    "result_available": false
                },
                {
                    "race_id": "rc_97we86jg",
                    "meeting_id": "mt_e6gdvcan",
                    "course": "Down Royal",
                    "time": "14:00",
                    "off_time": null,
                    "name": "Irish Stallion Farms EBF Feathard Lady Mares Novice Hurdle (Grade 3)",
                    "run_type": null,
                    "class": "1",
                    "distance": "2m 190y",
                    "going": "Yielding",
                    "surface": "TURF",
                    "handicap": false,
                    "runners": 9,
                    "result_available": false
                }
            ]
        },
        {
            "meeting_id": "mt_27reay5r",
            "course_id": "cr_xtryzmdd",
            "course": "Newcastle",
            "country": "ENG",
            "region": "GB",
            "date": "2026-10-30",
            "going": "Standard",
            "surface": "ALLWEATHER",
            "races": [
                {
                    "race_id": "rc_jnae42nn",
                    "meeting_id": "mt_27reay5r",
                    "course": "Newcastle",
                    "time": "16:15",
                    "off_time": null,
                    "name": "Midnite: Built For 2026 Not 2006 Handicap",
                    "run_type": null,
                    "class": "6",
                    "distance": "1m 2f 42y",
                    "going": "Standard",
                    "surface": "ALLWEATHER",
                    "handicap": true,
                    "runners": 14,
                    "result_available": false
                },
                {
                    "race_id": "rc_385jyvxh",
                    "meeting_id": "mt_27reay5r",
                    "course": "Newcastle",
                    "time": "16:45",
                    "off_time": null,
                    "name": "All-Weather Championship Is Back Novice Stakes (GBB Race)",
                    "run_type": null,
                    "class": "4",
                    "distance": "7f 14y",
                    "going": "Standard",
                    "surface": "ALLWEATHER",
                    "handicap": false,
                    "runners": 10,
                    "result_available": false
                },
                {
                    "race_id": "rc_jxnrpja3",
                    "meeting_id": "mt_27reay5r",
                    "course": "Newcastle",
                    "time": "17:15",
                    "off_time": null,
                    "name": "AWC Finals Day At Newcastle 26th March Nursery",
                    "run_type": null,
                    "class": "5",
                    "distance": "1m 5y",
                    "going": "Standard",
                    "surface": "ALLWEATHER",
                    "handicap": true,
                    "runners": 5,
                    "result_available": false
                }
            ]
        }
    ],
    "meta": {
        "request_id": "05ff65a232f7aef7",
        "plan": "complete",
        "window": "January 2017 to the next 3 days",
        "data_as_of": "2026-10-30T11:14:03+00:00",
        "count": 5
    }
}
  

Parameters

NameInTypeRequiredWhat it does
coursequerycourse idnoOnly this course's meeting. Course ids come from GET /v1/courses.

Returns

A list in data, one row each, with meta.count. Every answer carries meta: request_id, plan, window and data_as_of.

FieldTypeHolds
meeting_idstringOur id for the meeting.
course_idstringOur id for the course.
coursestringThe course name.
countrystringENG, Scot, Wale or Nort.
regionstringGB, or NORT for Northern Ireland.
datestringThe UK racing day, YYYY-MM-DD.
goingstringThe going as declared; null until it is.
surfacestringTurf or the all-weather surface.
racesarrayThe races, or how many there have been.
races[].race_idstringOur id for the race.
races[].meeting_idstringOur id for the meeting.
races[].coursestringThe course name.
races[].timestringThe advertised off time by the racecourse clock, HH:MM.
races[].off_timenull or valueWhen the race actually went off, by the racecourse clock; null until it has.
races[].namestringThe name, as raced: the race title on a race.
races[].run_typenull or valueFlat, Hurdle, Chase or NH Flat.
races[].classnull or valueThe race class.
races[].distancestringThe race distance as published, for example 2m 87y.
races[].goingstringThe going as declared; null until it is.
races[].surfacestringTurf or the all-weather surface.
races[].handicapbooleanWhether the race is a handicap.
races[].runnersintegerThe runners, or how many there were.
races[].result_availablebooleanWhether the race is settled.

Errors

CodeStatusWhen
unauthorized401No key was sent, or the key is not one of ours.
upgrade_required403Your plan does not reach this endpoint. The answer names the plans that do.
outside_plan_window403The day asked for is outside what your plan reads. The answer gives your window and the day you asked for.
bad_request400A 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_parameter422A parameter this endpoint does not take. The answer lists the ones it does.
not_found404No record has that id, or it is not British or Northern Irish racing.
rate_limited429Too many calls this minute for your plan.
quota_exceeded429Your plan's calls for the month are used. The answer says when they reset.