horseracingapi.co.uk

Search trainers

Live, Archive and Complete

Trainers by name.

GEThttps://api.horseracingapi.co.uk/v1/trainers/search
Try itruns against the real API with your key
Get a free key
GET /v1/trainers/search
Examplea real answer from 2026-10-29, trimmed to a few rows
{
    "data": [
        {
            "trainer_id": "tr_zjh5aqvh",
            "name": "King Leatherbury"
        },
        {
            "trainer_id": "tr_5mrcnmbb",
            "name": "Kingston"
        }
    ],
    "meta": {
        "request_id": "ead33a190e731b4d",
        "plan": "complete",
        "window": "January 2017 to the next 3 days",
        "data_as_of": "2026-10-30T04:25:05+00:00",
        "count": 5
    }
}
  

Parameters

NameInTypeRequiredWhat it does
qquerystringnoPart of a name, two letters or more.
limitqueryintegernoHow many rows in one answer, 1 to 100. Default 25.
cursorquerystringnonext_cursor from the previous answer, to read the next rows. Never build one.

Returns

One record in data. Every answer carries meta: request_id, plan, window and data_as_of.

FieldTypeHolds
trainer_idstringOur id for the trainer.
namestringThe name, as raced: the race title on a race.

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.
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.
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.