Documentation / Results

Yesterday's results

GET/v1/results/yesterday

Available on Free Live Live Plus

Every greyhound race completed yesterday across GB, AU and IE, most recent first, with finishing order, prices, times and dividends.

Authenticate with your key in the X-API-Key header, or ?key= if your tool cannot set one — see Authentication. Works with sandbox keys inside the sandbox data window.

Parameters

NameInTypeRequiredDescription
region query string no Filter by region code: GB, AU or IE.
track_id query integer no Filter to a single track. Track IDs come from List tracks.
cursor query string no Opaque pagination cursor from the previous response's meta.next_cursor.
limit query integer no Page size, 1–200. Defaults to 50.
page query integer no Page number (1-based) — a simpler alternative to cursor. When set, the response also returns meta.page, meta.per_page, meta.total, meta.total_pages, meta.next_page and meta.prev_page. The first page carries these even without page. Prefer cursor for large bulk exports; use page for browsing or bounded (date-filtered) queries.

Request

curl "https://api.greyhoundapi.com/v1/results/yesterday?region=GB" \
  -H "X-API-Key: $GAPI_KEY"
<?php
$ch = curl_init('https://api.greyhoundapi.com/v1/results/yesterday?region=GB');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER     => ['X-API-Key: ' . getenv('GAPI_KEY')],
]);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);

print_r($response['data']);
const res = await fetch('https://api.greyhoundapi.com/v1/results/yesterday?region=GB', {
  headers: { 'X-API-Key': process.env.GAPI_KEY }
});
if (!res.ok) throw new Error(`GreyhoundAPI ${res.status}`);
const { meta, data } = await res.json();
console.log(meta.data_as_of, data);
import { useEffect, useState } from 'react';

export default function Example() {
  const [data, setData] = useState(null);

  useEffect(() => {
    fetch('https://api.greyhoundapi.com/v1/results/yesterday?region=GB', {
      headers: { 'X-API-Key': import.meta.env.VITE_GAPI_KEY }
    })
      .then((r) => r.json())
      .then((body) => setData(body.data));
  }, []);

  if (!data) return <p>Loading…</p>;
  return <pre>{JSON.stringify(data, null, 2)}</pre>;
}

Browser code exposes whatever key it ships with — use a sandbox key for prototypes and proxy live keys through your own server in production.

import os
import requests

r = requests.get(
    "https://api.greyhoundapi.com/v1/results/yesterday?region=GB",
    headers={"X-API-Key": os.environ["GAPI_KEY"]},
    timeout=10,
)
r.raise_for_status()
body = r.json()
print(body["meta"]["data_as_of"], body["data"])

Response

200 OKapplication/json
{
    "meta": {
        "request_id": "req_8f2ac1",
        "data_as_of": "2026-07-08T13:05:12Z",
        "count": 1,
        "next_cursor": "eyJzIjoiMjAyNi0wNy0wOFQyMDo0NjowMFoifQ",
        "page": 1,
        "per_page": 50,
        "total": 1287,
        "total_pages": 26,
        "next_page": 2,
        "prev_page": null
    },
    "data": [
        {
            "race_id": 1229082445,
            "meeting_id": 1449422077,
            "region": "GB",
            "track": {
                "track_id": 1400000014,
                "name": "Romford",
                "region": "GB",
                "timezone": "Europe/London"
            },
            "race_number": 12,
            "grade": "S1",
            "class_letter": "S",
            "class_number": 1,
            "distance_m": 575,
            "race_type": "Flat",
            "is_handicap": false,
            "going": null,
            "field_size": 6,
            "scheduled_start": {
                "utc": "2026-07-08T20:46:00Z",
                "local": "2026-07-08T21:46:00+01:00"
            },
            "status": "complete",
            "off": {
                "utc": "2026-07-08T20:47:12Z",
                "delay_s": 72
            },
            "freshness": {
                "first_seen": "2026-07-07T05:12:10Z",
                "results_received": "2026-07-08T21:03:40Z",
                "results_delay_s": 1060
            },
            "result": {
                "positions": [
                    {
                        "position": 1,
                        "trap": 3,
                        "dog_id": 1654595188,
                        "dog_name": "Miami Yeats",
                        "trainer": {
                            "trainer_id": 1210000121,
                            "name": "M E Wiley"
                        },
                        "sp": {
                            "fraction": "5/2",
                            "decimal": 3.5
                        },
                        "sectional_s": 4.31,
                        "run_time_s": 35.42,
                        "adjusted_time_s": 35.42,
                        "weight_kg": 34.4,
                        "betfair": {
                            "selection_id": 84512233,
                            "back_price": 3.55,
                            "lay_price": 3.6,
                            "last_update": "2026-07-08T20:41:02Z"
                        }
                    }
                ],
                "forecast_dividend": "12.40",
                "tricast_dividend": "48.12",
                "off": {
                    "utc": "2026-07-08T20:47:12Z",
                    "delay_s": 72
                },
                "received": {
                    "utc": "2026-07-08T21:03:40Z",
                    "delay_s": 1060
                },
                "weather": {
                    "hour_utc": "2026-07-08T20:00:00Z",
                    "temp_c": 15.2,
                    "humidity_pct": 81,
                    "wind_kph": 19.5,
                    "gust_kph": 42.8,
                    "wind_from": "W",
                    "wind_deg": 271,
                    "precip_mm": 0.3,
                    "conditions": "light drizzle",
                    "before_race": {
                        "rain_6h_mm": 1.6,
                        "rain_24h_mm": 2,
                        "wind_avg_6h_kph": 21.4
                    },
                    "source": "archive"
                }
            }
        }
    ]
}

Run it live

A real request from your browser straight to api.greyhoundapi.com with your own key — nothing is proxied or logged by this page.

GET/v1/results/yesterday

Held in this tab only, sent only to the API host. No key yet? Create a free sandbox key — it runs every endpoint against the sandbox data window.

Notes

Yesterday is the racing day just gone AT EACH TRACK, counted in that track's own timezone rather than as a UTC date — so an Australian card is returned whole rather than split across two calls. The same race therefore appears here and in /v1/results/today at no point; the two never overlap.