Documentation / Breeding

Sire progeny

GET/v1/sires/{sire_id}/progeny

Available on Live Live Plus

Every recorded offspring of a sire with each dog's career aggregates — the pedigree view for greyhound breeding research.

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
sire_id path integer yes The sire identifier, the sire_id on every row of Sires. Every spelling on record of that sire counts as one.
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.

Request

curl "https://api.greyhoundapi.com/v1/sires/2503556926/progeny" \
  -H "X-API-Key: $GAPI_KEY"
<?php
$ch = curl_init('https://api.greyhoundapi.com/v1/sires/2503556926/progeny');
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/sires/2503556926/progeny', {
  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/sires/2503556926/progeny', {
      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/sires/2503556926/progeny",
    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"
    },
    "data": [
        {
            "dog_id": 1655044329,
            "name": "Full Monty",
            "dam": "Ballymac Notoyou",
            "career": {
                "total_races": 12,
                "total_wins": 5,
                "win_pct": 41.67
            }
        }
    ]
}

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/sires/{sire_id}/progeny

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

Australian dogs carry no sire or dam on record, so no Australian runner appears here. Irish dogs appear only where their breeding has been recorded: every dog racing in 2026, and a smaller share each year before that. For how the offspring perform, see Sire statistics.