Free: the quantitative greyhound betting e-book and audiobook.Free e-book and audiobook. Get it free
Version 3.0

API documentation

Technical reference for version 3.0 endpoints.

Global configuration

Base URL
https://api.racinggreyhounds.org/v3/
Format
JSON
Timestamps
Unix Epoch Seconds (UTC)
Region
GB (UK Racing Only)
GET/v3/

1. API index

Returns a live directory of all publicly available API endpoints. This allows consumers to dynamically discover services without hard-coding routes.

Response example · GET /v3/
{
  "data": {
    "timestamp": 1700000000,
    "endpoints": [
      { "name": "latest-races", "path": "/api/v3/latest-races" },
      { "name": "upcoming-races", "path": "/api/v3/upcoming-races" },
      { "name": "picks", "path": "/api/v3/picks" }
    ]
  }
}
GET/v3/upcoming-races

2. Upcoming races

Returns all scheduled races for today or tomorrow, including full runner cards. Runners are always ordered by trap number.

ParameterTypeDefaultDescription
whenstringtoday'today' (00:00-23:59) or 'tomorrow'
limitinteger10Number of races per page
pageinteger1Pagination offset
Response example · GET /v3/upcoming-races
{
  "data": {
    "when": "today",
    "time_from": 1700006400,
    "races": [
      {
        "race_id": 123456,
        "track_name": "Hove",
        "race_class": "A3",
        "race_time": "18:42",
        "runners": [
          { "trap_number": 1, "dog_name": "Swift Rocket", "dog_sex": "M", "position": null }
        ]
      }
    ]
  }
}

Note: 'position' is null for upcoming races.

GET/v3/latest-races

3. Latest races (completed)

Returns historical races already run, newest first, with full result cards.

ParameterTypeDefaultDescription
limitinteger10Number of races per page
pageinteger1Pagination offset
Response fragment · GET /v3/latest-races
"runners": [
  {
    "trap_number": 1,
    "dog_name": "Swift Rocket",
    "position": 1   // Populated for completed races
  }
]
GET/v3/picks

4. Picks (model selections)

Returns model-generated selections for today only. This endpoint is forward-looking and designed for automated decision-making. Ranking values are relative to the specific race (1 = Best).

Response example · GET /v3/picks
{
  "race_id": 123456,
  "pick_1": 3,   // Trap Number
  "pick_2": 1,
  "strongest_trap": 3,
  "runners": [
    { "trap_number": 3, "dog_name": "Rapid Jet", "score_rank": 1, "form_rank": 2, "sectional_rank": 1 }
  ]
}
GET/v3/dogs

5. Dogs

Provides dog profiles with pedigree and their last 3 race runs.

ParameterTypeDescription
namestringExact lookup. If omitted, returns recent dogs list.
limitintegerDefault 10.
Response example · GET /v3/dogs
{
  "dog_id": 12345,
  "dog_name": "Flying Hawk",
  "dog_sire": "Droopys Jet",
  "last_3_races": [
    { "track_name": "Romford", "trap_number": 4, "position": 2, "run_time": 24.89 }
  ]
}
GET/v3/owners

6. Owners

Lists owners ordered by most recent activity, including all dogs currently or historically owned.

Response example · GET /v3/owners
{
  "owner_name": "P Green",
  "last_race_id": 456789,
  "dogs": [ { "dog_id": 1122, "dog_name": "Fast Echo" } ]
}
GET/v3/trainers

7. Trainers

Returns trainers ordered by latest race involvement.

Response example · GET /v3/trainers
{
  "trainer_name": "M Hennessy",
  "last_race_id": 654321,
  "dogs": [ { "dog_id": 9988, "dog_name": "Track Star" } ]
}
GET/v3/tracks

8. Tracks

Returns all active UK tracks that have held races in the last 90 days.

Response example · GET /v3/tracks
{
  "data": {
    "tracks": [ "Hove", "Romford", "Monmore", "Towcester" ]
  }
}

Keys for every endpoint

£150 a month: 600,000 calls, 180 requests a minute and all 62 endpoints. Cancel any time.