gbgb.org.uk APIgbgb.org.uk ↗
Access greyhound race results, meeting details, greyhound profiles, form history, and open races from the GBGB portal via a structured JSON API.
curl -X GET 'https://api.parse.bot/scraper/04f3b8ab-38c4-4573-ad99-c54a8f337830/search_race_results?date=%3CYYYY-MM-DD%3E&page=1&limit=3' \ -H 'X-API-Key: $PARSE_API_KEY'
Search and filter race results by track, class, date, and race type. Returns paginated results ordered by most recent.
| Param | Type | Description |
|---|---|---|
| date | string | Race date in YYYY-MM-DD format. |
| page | integer | Page number for pagination. |
| limit | integer | Items per page. |
| track | string | Track name to filter by (e.g. 'Central Park', 'Hove'). Use get_tracks_list to see all available track names. |
| race_type | string | Race type filter (e.g. 'race', 'trial'). |
| race_class | string | Race class filter (e.g. 'A1', 'D3'). Use get_race_classes_list to see all available classes. |
{
"type": "object",
"fields": {
"meta": "object with count (total results), page (current page), pageCount (total pages)",
"items": "array of race result objects containing dogName, trackName, raceDate, raceClass, meetingId, raceId, etc."
},
"sample": {
"data": {
"meta": {
"page": 1,
"count": 6439,
"pageCount": 2147
},
"items": [
{
"dogId": 662565,
"dogDam": "Swift Angel",
"raceId": 1216812,
"dogName": "Swift Youth",
"dogSire": "Serene Ace",
"raceDate": "15/05/2026",
"raceTime": "13:42:00",
"meetingId": 447062,
"ownerName": "Blues Crew",
"raceClass": "A1",
"trackName": "Central Park",
"raceNumber": "10",
"trapNumber": "1",
"trainerName": "D P Brabon",
"raceDistance": 491,
"resultPosition": 1
}
]
},
"status": "success"
}
}About the gbgb.org.uk API
This API exposes 9 endpoints covering greyhound racing data from the GBGB portal, including race results, meeting details, individual race data, and greyhound profiles. Use search_race_results to filter historical races by track, class, date, and race type, or get_greyhound_form to retrieve a dog's full race history with date-range filtering. Response fields cover trap positions, race classes, breeding lineage, trainer and owner names, and upcoming open race prize values.
Race Results and Meeting Data
The search_race_results endpoint returns paginated race result records filterable by track, race_class, date, and race_type. Each item in the items array carries fields like dogName, trackName, raceDate, raceClass, meetingId, and raceId. The meetingId and raceId values are the keys for drilling deeper: pass a meeting_id to get_meeting_details to get every race run at that meeting with full trap and result data, or pass both race_id and meeting_id to get_single_race to isolate a single race. Both endpoints return trackName and meetingDate alongside the structured race payload.
Greyhound Profiles and Form History
search_greyhound accepts a partial or full greyhound name and returns matching dogName and dogId pairs. Pass a dogId to get_greyhound_profile to retrieve breeding data — dogSire, dogDam, dogBorn, dogColour, dogSex — plus current trainerName and ownerName. get_greyhound_form uses the same dog_id and adds pagination (page, limit) and optional date_from/date_to filters, returning form entries with position, time, and track information across races and trials.
Reference Lists and Open Races
get_tracks_list and get_race_classes_list return the canonical sets of trackName and class values accepted as filters by search_race_results. This prevents trial-and-error when constructing filter queries. get_open_races returns upcoming open race listings with fields including RaceName, TrackName, RaceStageDate, and RaceStagePrize1st, paginated via page and limit. The total, last_page, and current_page fields in the response handle navigation across large listings.
- Build a greyhound form guide by combining
get_greyhound_profilebreeding data withget_greyhound_formrace history entries. - Track class progression for a specific dog by filtering
get_greyhound_formresults byrace_classover a date range. - Aggregate track-level performance statistics using
search_race_resultsfiltered bytrackandrace_typeover a defined period. - Display full meeting cards on a racing dashboard by fetching all trap and result data via
get_meeting_details. - Surface upcoming open race prize values and dates from
get_open_racesfor a competition calendar or notification service. - Validate user-supplied filter inputs against canonical values from
get_tracks_listandget_race_classes_listbefore querying results. - Identify trainer or owner portfolios by aggregating
trainerNameandownerNamefields from multipleget_greyhound_profilelookups.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 250 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does GBGB provide an official developer API?+
What does `get_greyhound_form` return, and how can I scope it to a date range?+
date_from and date_to parameters (both in YYYY-MM-DD format) and further filter by race_type to separate competitive races from trials. The meta object in the response gives you count, page, and pageCount for pagination.Is live or in-running race data available?+
Does the API return odds or betting market data?+
How do I get the right value to pass as a `track` or `race_class` filter in `search_race_results`?+
get_tracks_list returns the full array of valid trackName strings (e.g. 'Central Park', 'Hove'), and get_race_classes_list returns valid class values (e.g. 'A1', 'D3'). Use these endpoints to populate filter options and avoid rejected or zero-result queries caused by spelling mismatches.