racingpost.com APIracingpost.com ↗
Access Racing Post data via API: daily racecards, race results by date, horse form history, stats, pedigree, and meeting schedules across 5 endpoints.
No input parameters required.
curl -X GET 'https://api.parse.bot/scraper/8d53554b-4c94-45db-bf28-df52c83ad1d0/get_todays_racecards' \ -H 'X-API-Key: $PARSE_API_KEY'
Retrieve today's racecards and meeting schedules. Returns all meetings scheduled for the current UTC date, including race details, going, weather, and betting returns for completed races.
No input parameters required.
{
"type": "object",
"fields": {
"meetings": "array of meeting objects, each containing venueName, venueUid, courseKey, races array, going, weather, meetingType, and other meeting metadata"
},
"sample": {
"data": {
"meetings": [
{
"going": "GOOD (Good to firm in places)",
"races": [
{
"raceId": "917470",
"raceType": "Hurdle",
"raceTitle": "Virgin Bet Daily Price Boosts Maiden Hurdle",
"numberOfRunners": 2,
"currentRaceStatus": "result",
"startScheduledDatetime": {
"utc": "2026-05-07T13:15:00+01:00",
"local": "2026-05-07T13:15:00+01:00"
}
}
],
"weather": "Partly cloudy",
"venueUid": 26,
"courseKey": "huntingdon",
"meetingId": null,
"venueName": "Huntingdon",
"meetingType": "jumps",
"numberOfRaces": 6,
"rpMeetingOrder": 2,
"venueCountryCode": "GB"
}
]
},
"status": "success"
}
}About the racingpost.com API
The Racing Post API exposes 5 endpoints covering daily race meetings, historical results, and detailed horse profiles sourced from Racing Post. get_todays_racecards returns every scheduled meeting for the current date, including going, weather, and race-level details, while get_horse_profile delivers form history, flat and jumps stats, and pedigree data keyed by a horse's numeric ID and URL slug.
Race Meetings and Schedules
get_todays_racecards and get_racecards_by_date both return an array of meeting objects. Each meeting includes venueName, venueUid, courseKey, going, weather, and meetingType, along with a nested races array. get_racecards_by_date accepts a single date parameter in YYYY-MM-DD format, making it straightforward to pull historical card data or plan ahead. For completed races, both endpoints include betting return fields alongside the race details.
Race Results
get_race_results_by_date filters to only races where currentRaceStatus is 'result', so the response will always be empty for future dates or dates with no settled races. Each result object contains race_id, venue_id, venue_name, course_key, time, title, and betting_returns fields such as toteWin and place values. The race_id values from this endpoint can be passed directly to get_race_detail for deeper race-level content.
Horse Profiles
get_horse_profile requires a horse_id (numeric, sourced from racecard data) and a horse_slug (lowercase, hyphen-separated name). The optional tab parameter controls what the response contains: 'form' returns a form array of past race entries plus a raceRecords summary object; 'stats' returns a stats object with separate statsFlat and statsJumps arrays; 'pedigree' returns lineage data. Omitting the tab parameter defaults to form data.
Race Detail Fragment
get_race_detail accepts a race_id and returns an html string containing accordion sections with verdict, form guide, and other racecard content for that specific race. This is an HTML fragment rather than structured JSON, so consumers need to parse or render the markup directly.
- Build a daily racing digest app using
get_todays_racecardsto list all meetings, going conditions, and weather. - Backfill a historical results database using
get_race_results_by_datewithbetting_returnsfields for settling bets. - Compare a horse's flat vs. jumps career statistics using the
statsFlatandstatsJumpsarrays fromget_horse_profilewithtab=stats. - Construct pedigree trees for bloodstock analysis using the pedigree tab in
get_horse_profile. - Display pre-race form guides by fetching the HTML accordion from
get_race_detailfor a specificrace_id. - Monitor course-specific trends by filtering meeting objects by
courseKeyacross multiple dates. - Automate ante-post research by pulling
raceRecordssummaries for horses listed in upcoming racecards.
| 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 Racing Post have an official developer API?+
How does `get_horse_profile` differ by tab, and which tab should I use for career win rates?+
tab parameter changes the response structure entirely. tab=form returns a chronological form array of past race entries and a raceRecords summary. tab=stats returns a stats object with statsFlat and statsJumps arrays, which is where per-discipline win/place breakdowns live. tab=pedigree returns lineage data. For career win rates, use tab=stats.Does `get_race_results_by_date` include non-UK and non-Irish races?+
Is there an endpoint for trainer or jockey profiles?+
What is the format of the data returned by `get_race_detail`, and can I filter specific sections?+
html string containing the full accordion fragment for the race, including verdict and form guide sections. The response is not structured JSON, so there is no built-in filtering by section. Consumers need to parse the HTML markup client-side to isolate specific accordion sections.