Discover/BloodHorse API
live

BloodHorse APIbloodhorse.com

Access race results, stakes entries, horse profiles, racing leaders, and news from BloodHorse.com via a structured JSON API with 8 endpoints.

Endpoint health
verified 4d ago
search_site
get_race_results_list
get_stakes_entries
get_racing_leaders
get_horse_profile
8/8 passing latest checkself-healing
Endpoints
8
Updated
25d ago

What is the BloodHorse API?

The BloodHorse API provides structured access to horse racing data across 8 endpoints, covering everything from dated race results and runner details to stakes entries and annual racing leaders. The get_race_results_list endpoint returns paginated race summaries with top-3 finishers, race type, distance, and purse for both North American and international races, making it a direct line into the data BloodHorse.com publishes for thoroughbred racing.

Try it
Page number for pagination.
Region filter. Accepted values: 'region-america', 'region-intl'.
End date in MM/DD/YYYY format. Defaults to today's date.
Start date in MM/DD/YYYY format. Defaults to today's date.
api.parse.bot/scraper/a86c6f40-0178-4067-bea8-c80c3648ea82/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/a86c6f40-0178-4067-bea8-c80c3648ea82/get_race_results_list?page=1&region=region-america&end_date=07%2F11%2F2026&start_date=07%2F08%2F2026' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace bloodhorse-com-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

from parse_apis.bloodhorse_api import BloodHorse, Region, LeaderCategory

client = BloodHorse()

# List today's race results for North America
for race in client.races.list(region=Region.AMERICA):
    print(race.title, race.subtitle)
    # Get full race detail with all runners
    detail = race.detail()
    for runner in detail.runners:
        print(runner.Pos, runner.Horse, runner.Earnings, runner.Jockey)
    break

# Get racing leaders for horses
for leader in client.leaders.list(category=LeaderCategory.HORSES, year="2026"):
    print(leader.rank, leader.name, leader.Earnings, leader.win_pct)

# Search for articles
for result in client.searchresults.search(query="Belmont Stakes"):
    print(result.title, result.link)

# Get latest news and read full article text
for article in client.newsarticles.list():
    print(article.title, article.summary)
    full = article.full_text()
    print(full.title, full.subtitle)
    break

# List upcoming stakes entries
for entry in client.stakesentries.list():
    print(entry.Race, entry.Track, entry.Distance, entry.Purse)
All endpoints · 8 totalmissing one? ·

Retrieve a paginated list of race results for a given date range and region. Returns races with titles, links, properties (race type, distance, purse), and top 3 finishers. Defaults to today's date if no dates are provided.

Input
ParamTypeDescription
pageintegerPage number for pagination.
regionstringRegion filter. Accepted values: 'region-america', 'region-intl'.
end_datestringEnd date in MM/DD/YYYY format. Defaults to today's date.
start_datestringStart date in MM/DD/YYYY format. Defaults to today's date.
Response
{
  "type": "object",
  "fields": {
    "page": "string indicating current page number",
    "races": "array of race summary objects with title, link, subtitle, properties, and top_3 fields"
  },
  "sample": {
    "data": {
      "page": "1",
      "races": [
        {
          "link": "https://www.bloodhorse.com/horse-racing/race/usa/cd/2026/6/10/8",
          "title": "Churchill Downs, Race 8, AOC",
          "top_3": [
            "Touchy",
            "Rothko",
            "Bullard"
          ],
          "subtitle": "Churchill Downs, Wednesday, June 10, 2026, Race 8",
          "properties": [
            "AOC",
            "1 mile",
            "$134,000",
            "3 yo's & up",
            "Dirt",
            "FT"
          ]
        }
      ]
    },
    "status": "success"
  }
}

About the BloodHorse API

Race Results and Runner Details

The get_race_results_list endpoint accepts start_date and end_date parameters in MM/DD/YYYY format and an optional region filter (region-america or region-intl). It returns a paginated array of race summaries, each with a title, subtitle, properties (race type, distance, purse), and a top_3 field listing the leading finishers. To drill into a specific race, pass the race's link field to get_race_detail, which returns all runners with their finishing Pos, Earnings, Jockey, Trainer, Owner, and Breeder.

Stakes Entries and Racing Leaders

The get_stakes_entries endpoint returns upcoming North American stakes races with Date, Race, Track, Grade, Distance, Surface, and Purse fields — useful for tracking graded stakes schedules without filtering parameters. The get_racing_leaders endpoint accepts a year and a category (horses, owners, trainers, or jockeys) and returns a ranked table with stats like Starts, Wins, Places, Shows, Earnings, and Win%. Horse entries in those rankings include a Horse_link field that can be fed directly into get_horse_profile.

Horse Profiles and News

get_horse_profile takes a full profile URL and returns the horse's name, owner, jockey, trainer, breeder, and a properties array covering attributes like color and birth year. On the editorial side, get_latest_news returns an array of articles with title, link, and summary fields; get_article_detail accepts an article URL and returns the full text, title, and subtitle. A general search_site endpoint accepts a keyword query and returns matching results across articles, races, and horses.

Reliability & maintenanceVerified

The BloodHorse API is a managed, monitored endpoint for bloodhorse.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when bloodhorse.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official bloodhorse.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
4d ago
Latest check
8/8 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Track daily thoroughbred race results by date range and region using get_race_results_list with start_date/end_date filters.
  • Build a graded stakes calendar by pulling get_stakes_entries data including Grade, Surface, Distance, and Purse for upcoming North American races.
  • Compile jockey or trainer performance tables using get_racing_leaders with category set to jockeys or trainers and a specific year.
  • Enrich horse records with pedigree and ownership details by chaining get_racing_leaders results into get_horse_profile via the Horse_link field.
  • Monitor full race-day breakdowns including every runner's earnings, jockey, and breeder using get_race_detail for a given race URL.
  • Aggregate BloodHorse editorial coverage for a topic by searching with search_site and then fetching full article text via get_article_detail.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 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.

Frequently asked questions
Does BloodHorse have an official public developer API?+
BloodHorse does not publish a public developer API or documented data feed. The BloodHorse Parse API is the structured way to access race results, profiles, news, and leader tables from the site.
What does `get_race_results_list` return and how do I filter by region?+
It returns a paginated array of race summaries. Each object includes a title, subtitle, properties array (covering race type, distance, and purse), and a top_3 field. Pass region-america or region-intl to the region parameter to restrict results. Use start_date and end_date in MM/DD/YYYY format to set the date window; both default to today if omitted.
Does the API cover historical racing leaders beyond the current year?+
Yes. The get_racing_leaders endpoint accepts an optional year parameter, so you can request leader tables for prior years across all four categories: horses, owners, trainers, and jockeys.
Does the API return past performances or speed figures for individual horses?+
Not currently. get_horse_profile returns ownership, pedigree properties, and connections. get_race_detail provides per-race finishing positions and earnings. Past performance charts and speed figures are not exposed. You can fork this API on Parse and revise it to add an endpoint targeting that data if it appears on a horse's detail page.
Are international race results available, and how complete is the coverage?+
The get_race_results_list endpoint supports an region-intl filter for international races alongside the North American region-america filter. The get_stakes_entries endpoint covers North American stakes only and does not include international entries. You can fork the API on Parse and revise it to add a dedicated international stakes entries endpoint.
Page content last updated . Spec covers 8 endpoints from bloodhorse.com.
Related APIs in SportsSee all →
equibase.com API
Access comprehensive horse racing data from Equibase, including horse profiles, historical race results, track entries, post times, speed figures, and leader statistics for horses, jockeys, trainers, and owners.
brisnet.com API
Access horse racing news, track information, race results, and expert daily picks from Brisnet, plus search detailed information about specific horses. Stay informed on racing events and make data-driven betting decisions with current news articles, results indices, and curated pick recommendations.
racing.hkjc.com API
Access comprehensive horse racing data from the Hong Kong Jockey Club. Retrieve race results, detailed horse profiles including pedigree and form records, jockey and trainer season rankings, upcoming race meeting fixtures, and horse search by name.
racingpost.com API
Access comprehensive horse racing data from Racing Post, including daily racecards, meeting schedules, race results, and detailed horse profiles with form history, stats, and pedigree.
atg.se API
Access comprehensive horse racing data from ATG.se, including race calendars, detailed race information, horse profiles, starting lineups, and results. Retrieve up-to-date information on races, horses, drivers, betting pools, and outcomes.
neds.com.au API
Get up-to-date horse racing information from Neds, including upcoming races, event details, and past results. View which races are next to jump and access comprehensive race data all in one place.
ehorses.com API
Search and browse horses from the world's largest horse market with detailed filtering options, view comprehensive horse profiles and seller information, and discover active listings from specific sellers. Access real-time market data including homepage statistics and available search filter options to find your perfect horse.
data.fei.org API
Search and explore detailed information about international equestrian sports, including horses, riders, competition results, rankings, and show schedules from the FEI database. Look up specific athletes and horses, browse upcoming events by venue, and track performance across national federations.