Growing Discord community — direct access to the developer, live coverage & picks. Join the Discord Join now →
Leagues Matches Predictions Stats Coverage
Docs / More Sports APIs pro

Horse Racing API#

The Horse Racing API covers UK and Ireland racing: tracks, daily meetings, races with runners, multi-bookmaker decimal odds per runner, plus horse, jockey and trainer profiles.

Base URL: https://sports.bzzoiro.com/horseracing/api/v2/

Access#

Requires the Sports Addon ($5/month) — it unlocks the tennis, CS2, darts, hockey, basketball and horse racing APIs plus their MCP servers. Get it at /addons/. You also need a free account token from /register/.

Authorization: Token YOUR_API_KEY

Without a token you get 401:

{"error": "authentication required", "code": "authentication_required",
 "detail": "Send Authorization: Token <YOUR_TOKEN> on every request.",
 "register": "https://sports.bzzoiro.com/register/"}

With a token but no addon you get 402:

{"error": "Sports Addon required", "code": "addon_required",
 "detail": "Tennis, CS:GO, darts, hockey, basketball and horse racing APIs require the Sports Addon ($5/mo).",
 "pricing_url": "https://sports.bzzoiro.com/pricing/"}

List endpoints paginate with limit (default 50, max 200) and offset, and return {count, next, previous, results}.

Endpoints#

Endpoint Description
GET /horseracing/api/v2/tracks/ List race tracks
GET /horseracing/api/v2/tracks/{id}/ Track detail
GET /horseracing/api/v2/meetings/ List meetings (a day of racing at a track)
GET /horseracing/api/v2/meetings/{id}/ Meeting detail with its races
GET /horseracing/api/v2/races/ List races
GET /horseracing/api/v2/races/live/ Races currently in progress
GET /horseracing/api/v2/races/next-to-jump/ Races starting in the next 30 minutes
GET /horseracing/api/v2/races/{id}/ Race detail with runners
GET /horseracing/api/v2/runners/ List runners
GET /horseracing/api/v2/runners/{id}/ Runner detail
GET /horseracing/api/v2/runners/{id}/odds/ All bookmaker odds for a runner
GET /horseracing/api/v2/horses/ Search horses
GET /horseracing/api/v2/horses/{id}/ Horse profile
GET /horseracing/api/v2/jockeys/ Search jockeys
GET /horseracing/api/v2/jockeys/{id}/ Jockey profile
GET /horseracing/api/v2/trainers/ Search trainers
GET /horseracing/api/v2/trainers/{id}/ Trainer profile

Tracks and meetings#

Tracks query parameters: search, country, limit, offset.

Meetings query parameters

Param Type Description
date date One day (YYYY-MM-DD)
date_from / date_to date Date range
country string ISO country code (GB, IE)
track int Filter by track id
limit / offset int Pagination
curl -H "Authorization: Token YOUR_API_KEY" \
  "https://sports.bzzoiro.com/horseracing/api/v2/meetings/?date=2026-08-02&country=GB"
{"count": 5, "results": [
  {"id": 1207, "track": {"id": 31, "name": "Goodwood", "country": "GB"},
   "date": "2026-08-02", "races_count": 7, "going": "Good"}
]}

Races#

Query parameters

Param Type Description
meeting int Filter by meeting id
track int Filter by track id
status string upcoming, live, finished
surface string e.g. turf, all-weather
date_from / date_to date YYYY-MM-DD
limit / offset int Pagination

GET /races/next-to-jump/ is the quickest way to build a "next races" widget — it returns races going off within 30 minutes, soonest first. GET /races/live/ is cached 30 seconds.

GET /races/{id}/ includes the runner list:

{"id": 88412, "meeting_id": 1207, "name": "Sussex Stakes",
 "off_time": "2026-08-02T14:35:00+00:00", "status": "upcoming",
 "distance": "1m", "surface": "turf", "runners_count": 9,
 "runners": [
   {"id": 774201, "number": 1, "horse": {"id": 55310, "name": "Field Of Gold"},
    "jockey": {"id": 2210, "name": "K. Stott"},
    "trainer": {"id": 981, "name": "J. & T. Gosden"},
    "best_odds": 2.10}
 ]}

Runners and odds#

Runners query parameters: race, horse, jockey, trainer, limit, offset.

GET /runners/{id}/odds/ returns every bookmaker's current decimal price for that runner:

{"runner_id": 774201, "odds": [
  {"bookmaker": "bet365", "decimal_odds": 2.10, "updated_at": "2026-08-02T13:58:12+00:00"},
  {"bookmaker": "williamhill", "decimal_odds": 2.05, "updated_at": "2026-08-02T13:57:40+00:00"}
]}

Horses, jockeys and trainers#

All three follow the same pattern: a search list (query, limit, offset) plus a detail endpoint with career form.

curl -H "Authorization: Token YOUR_API_KEY" \
  "https://sports.bzzoiro.com/horseracing/api/v2/jockeys/?query=stott"
{"count": 1, "results": [
  {"id": 2210, "name": "K. Stott", "wins_this_season": 61, "win_rate": 0.19}
]}
View this page as Markdown · Found a mistake? Tell us