DataSportAPI
Docs
Your first call in one line

The free key reads yesterday for every sport, 50 calls a day. No card.

Get a free key
Every sport, one key

Complete reads all sixteen sports for $249 a month.

Take Complete
Ask in plain words

"Who won at Kempton yesterday?" Your assistant picks the tool and answers from your plan.

Connect in two minutes
Showing

Horses a race API

A race
Free key reads yesterdayMCP tool: get_matchKept 30 minutes

One race with every runner, its draw, weight, jockey and price.

Ask for it by our id, taken from any other horses answer. The ids inside the answer each open their own endpoint, so you can follow a record from here to everything it links to.

It needs id. Leave one out and the answer names it, before any data is read.

GET/v1/horses/races/{id}

Try it

Your key stays in this browser and is filled in on every docs page.

GET
200 OK1246 ms2 rows shownReal answer from 2026-11-03, trimmed
{
    "data": [
        {
            "cloth": 1,
            "draw": 5,
            "horse_id": "hr_mv1aytcng0",
            "horse": "Magnificent Malcom",
            "age": 3,
            "weight": null,
            "official_rating": 58,
            "form": "7x644x840",
            "headgear": null,
            "owner": "T Blechynden, J Krispyn, M Brown, C N Myles, A J Dingle, B A Sampey, S Trevena, S N Jones, D Fahey, A Fahey, S Eastman, D Wallinger, Mrs S Wallinger, J Offer, L Simmonds, P Rakowski, P Drysdale & B D Fletcher",
            "owner_id": "hr_b23d6qkvkx",
            "trainer_id": "hr_pgfhcbg4gh",
            "trainer": "Joshua Krispyn",
            "jockey_id": "hr_bbemvweyvw",
            "jockey": "Jarrad Noske",
            "silk": "Red, Green Strips, Black Sleeves, Green Cuffs, Black Cap",
            "sp": null,
            "sp_decimal": null,
            "price_path": {
                "opening": null,
                "opening_decimal": null,
                "touched": null,
                "sp": null,
                "sp_decimal": null,
                "drift": null
            },
            "favourite": false,
            "market_position": null,
            "position": null,
            "beaten_distance": null,
            "casualty": null,
            "run_status": "unknown",
            "last_run_days": null,
            "speed_figure": null,
            "breeding": null,
            "handicap_mark": null
        },
        {
            "cloth": 2,
            "draw": 1,
            "horse_id": "hr_6smpzmw7p3",
            "horse": "Heza Hellraiser",
            "age": 3,
            "weight": null,
            "official_rating": 57,
            "form": "868x",
            "headgear": null,
            "owner": "Ms N M Yozzi, Mrs J Kersley, Ms T Glazbrook, Ms M C Cornick, Mrs P Prouse, Mrs B Fisher, Mrs E Harper, Ms b D'Crus, Mrs D Sartorelli, Mrs E Yozzi, Ms V Sewell, Mrs V Bishop, Mrs L Pope, Ms K Jackman, Miss J Summerville, Ms C Hunter, Mrs J T Barton & Miss E G Van Den Broeke",
            "owner_id": "hr_ddy4hje79q",
            "trainer_id": "hr_k74d3rcs65",
            "trainer": "Brian Kersley",
            "jockey_id": "hr_59v53m4vje",
            "jockey": "Jessica Gray",
            "silk": "Dark Blue, Gold Collar, Cuffs And Cap",
            "sp": null,
            "sp_decimal": null,
            "price_path": {
                "opening": null,
                "opening_decimal": null,
                "touched": null,
                "sp": null,
                "sp_decimal": null,
                "drift": null
            },
            "favourite": false,
            "market_position": null,
            "position": null,
            "beaten_distance": null,
            "casualty": null,
            "run_status": "unknown",
            "last_run_days": null,
            "speed_figure": null,
            "breeding": null,
            "handicap_mark": null
        }
    ],
    "meta": {
        "sport": "horses",
        "endpoint": "/races/{id}",
        "count": 8,
        "as_of": "2026-11-03T04:23:04+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

Query values this call takes. Anything else is refused with bad_param and the list it accepts.

NameTypeWhat it does
ididrequiredThe record, by our id, in the path.

Returns

Each row of data, from a real answer. Every id is ours and opens its own endpoint.

FieldTypeWhat it holds
clothintegerCloth
drawintegerThe stall
horse_ididThe horse, by our id
horsestringThe horse
ageintegerAge
weightnullWeight carried
official_ratingintegerThe official rating
formstringRecent form figures
headgearnullHeadgear
ownerstringThe owner
owner_ididThe owner, by our id
trainer_ididThe trainer, by our id
trainerstringThe trainer
jockey_ididThe jockey, by our id
jockeystringThe jockey
silkstringSilk
spnullStarting price
sp_decimalnullStarting price as a decimal
price_pathobjectPrice path
favouritebooleanFavourite
market_positionnullMarket position
positionnullFinishing position
beaten_distancenullDistance beaten
casualtynullCasualty
run_statusstringRun status
last_run_daysnullLast run days
speed_figurenullSpeed figure
breedingnullBreeding
handicap_marknullHandicap in metresark
metaWhat it holds
sport, endpointWhat you asked
countRows in this answer
page, per_page, total, next_cursorWhere you are in a paged list, when it is paged
as_ofWhen the data was built
cached, age_secondsWhether this is a stored copy, and its age
accessOn the free key: what it reads, and the plan that opens the rest

Errors

Codes this call can give. Each is explained in Errors.

StatusCodeWhen
401no_keyNo key sent, or not in a form we read
401bad_keyA key we do not know
403planThe free key asked for a date other than yesterday
404not_foundAn id we never issued for horses
422bad_paramA value this call does not take, or a required one missing
429rateOver the calls a minute for your plan
503upstreamThe data is not answering; retry after Retry-After

The free key reads yesterday. The Horses plan opens live, fixtures and every date held, for $79 a month.

Add Horses