Docs› Coverage› Pricing› Status› Support›
  1. Home
  2. Documentation
  3. Results by date

Greyhound racing API: Results by date

Results by date

Results on any date from 2020 on. UK, Ireland and Australia.

Documentation / Results

Results by date

Results on any date from 2020 on. Covers the UK, Ireland and Australia.

GEThttps://api.greyhoundracingapi.com/v1/results

Try it

No key yet? The free key is made in a moment and filled in here for you. Get a free key
GET https://api.greyhoundracingapi.com/v1/results
Run works once the API is live; the code below works now with the login.

Parameters

NameTypeWhat it does
datedaterequiredThe day you want, YYYY-MM-DD, from 2020-01-01 on.
countrystringLeave out for all three countries.
GBIEAU
trackstringA track id from Tracks, such as romford.
pageintegerPage number, from 1. 50 races a page.
cursorstringThe meta.next_cursor from your last call, for the next page.
formatstringThe answer format. Adding .csv to the path does the same as csv.
jsoncsv

Returns

A list of races in data and paging in meta: count, page, per_page, total, total_pages and next_cursor. A field we do not have for a race is null, never left out. See Pagination.

FieldTypeWhat it holds
race_idstringOur id for the race. Stable, safe to store.
trackstringTrack id, as in Tracks.
track_namestringTrack name for display.
countrystringGB, IE or AU.
nointegerRace number at the meeting.
offtimeScheduled start, local to the track, HH:MM.
off_utcdatetimeScheduled start in UTC.
distance_mintegerDistance in metres.
gradestringRace grade, where one is given.
settled_atdatetimeWhen the result arrived, UTC. Use it with since.
result_statusstringprovisional until confirmed, then final.
result[].posintegerFinishing position.
result[].trapintegerTrap, 1 to 6 (1 to 8 in Australia).
result[].runnerstringGreyhound name.
result[].runner_idstringOur id for the greyhound. Stable, safe to store.
result[].trainerstringTrainer name.
result[].timenumberRun time in seconds.
result[].spstringStarting price as given: fractional where there is one.
result[].sp_decimalnumberStarting price in decimal odds.

Example answer

A real answer from 6 October 2026, 13:10 UTC, trimmed to one race and three runners.

{
    "data": [
        {
            "race_id": "rc_93w8ebbh",
            "track": "nottingham",
            "track_name": "Nottingham",
            "country": "GB",
            "no": 12,
            "off": "21:46",
            "off_utc": "2026-10-05T20:46:00Z",
            "distance_m": 500,
            "grade": "A3",
            "settled_at": "2026-10-05T20:50:01Z",
            "result_status": "final",
            "result": [
                {
                    "pos": 1,
                    "trap": 4,
                    "runner": "Bluejig Polly",
                    "runner_id": "rn_rz5pvd9h",
                    "trainer": "J Gray",
                    "time": 29.97,
                    "sp": "5/2",
                    "sp_decimal": 3.5
                },
                {
                    "pos": 2,
                    "trap": 1,
                    "runner": "Twilight Brook",
                    "runner_id": "rn_e4a6b61k",
                    "trainer": "P M Holland",
                    "time": 30.07,
                    "sp": "11/4",
                    "sp_decimal": 3.75
                },
                {
                    "pos": 3,
                    "trap": 3,
                    "runner": "Skeard Noah",
                    "runner_id": "rn_9syqf0e4",
                    "trainer": "B Denby",
                    "time": 30.31,
                    "sp": "5/2",
                    "sp_decimal": 3.5
                }
            ]
        }
    ],
    "meta": {
        "count": 50,
        "page": 1,
        "per_page": 50,
        "total": 354798,
        "total_pages": 7096,
        "next_cursor": "cDI",
        "took_ms": 57
    }
}

Errors

StatusCodeWhat to do
400bad_requestA value is not valid, a date is before 2020, or the key was put in the address. The message says which.
401unauthorizedNo key, or the key is wrong, revoked or expired. Check the header.
403upgrade_requiredYour plan does not include this endpoint. plan names the one that does.
422unknown_parameterA parameter this endpoint does not take. The message lists the ones it does.
429rate_limitedToo many calls this minute. Wait for Retry-After.
429quota_exceededToday's allowance is used. It resets at 00:00 UTC.
503server_errorOur side. Not counted against you. Try again shortly, and see status.