Discover/Equineline API
live

Equineline APIequineline.com

Retrieve 5-generation Thoroughbred pedigrees, inbreeding crosses, dosage figures, auction results, and nicking stats from Equineline as structured JSON.

Endpoint health
verified 2h ago
get_pedigree
search_horses
2/2 passing latest checkself-healing
Endpoints
2
Updated
3h ago

What is the Equineline API?

The Equineline API provides two endpoints that expose the full data set behind Equineline.com's free 5-cross pedigree tool. The get_pedigree endpoint returns over 30 response fields per horse — including all 62 ancestors across five generations, dosage profile, inbreeding crosses, TrueNicks rating, most recent auction result, and breeder — while search_horses resolves horse names to stable reference numbers for precise lookups.

This call costs3 credits / call— charged only on success
Try it
Name of the dam, used to narrow the match. Combined with foaling_year it may replace horse_name.
Registered name of the horse, or a prefix of it (the site returns all names beginning with it). Required unless both foaling_year and dam_name are given.
4-digit year of birth (YYYY) used to narrow the match.
api.parse.bot/scraper/92118320-9835-49ba-8a6e-b4a3dcb669d6/<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/92118320-9835-49ba-8a6e-b4a3dcb669d6/search_horses?horse_name=Secretariat' \
  -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 equineline-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.

"""Walkthrough: Equineline SDK — search for a Thoroughbred, then fetch its full pedigree."""
from parse_apis.equineline_com_api import Equineline, HorseNotFound

client = Equineline()

# Search for horses matching a name; limit= caps total items returned.
match = client.horses.search(horse_name="Secretariat", limit=5).first()
if match is None:
    print("No horses found for that name.")
else:
    print(match.name, match.foaling_year, match.sex)

    # Use the reference_number from the search hit to fetch the full pedigree.
    try:
        pedigree = client.pedigrees.get(reference_number=match.reference_number)
    except HorseNotFound:
        print("Pedigree not available for this horse.")
    else:
        # Header facts
        profile = pedigree.horse
        print(f"{profile.name} ({profile.color} {profile.sex}), foaled {profile.foaled} in {profile.foaled_in}")
        print(f"Starts: {profile.starts}  Highlight: {profile.highlight}")
        print(f"Breeder: {pedigree.breeder}")

        # Dosage figures (may be absent for some horses)
        if pedigree.dosage_profile is not None:
            print(f"Dosage profile: {pedigree.dosage_profile}  DI: {pedigree.dosage_index}")

        # First-generation ancestors (sire and dam)
        for anc in pedigree.ancestors[:2]:
            print(f"  Gen {anc.generation} {anc.path}: {anc.display_name} ({anc.foaling_year})")

        # Nicking statistics when available
        if pedigree.nicking is not None:
            for stat in pedigree.nicking.stats:
                print(f"  {stat.title}: {stat.winners} winners from {stat.foals} foals, AEI {stat.ael}")

        # Most recent auction result when available
        if pedigree.most_recent_auction is not None:
            auction = pedigree.most_recent_auction
            print(f"Last sale: {auction.sale_price} at {auction.sale}")

print("exercised: horses.search / pedigrees.get")
All endpoints · 2 totalmissing one? ·

Finds Thoroughbreds matching a horse name, optionally narrowed by year of birth and/or dam name (the site also accepts year of birth plus dam name with no horse name). Returns one row per registry match with its reference_number, which get_pedigree accepts to pin down an exact horse when several share a name. When the name plus year (or year plus dam) identifies exactly one horse the site skips its candidate list, and that single match then has null sex and sire. A name with no registry match returns count 0 and an empty matches array. One round trip; no pagination (the site returns its full candidate list).

Input
ParamTypeDescription
dam_namestringName of the dam, used to narrow the match. Combined with foaling_year it may replace horse_name.
horse_namestringRegistered name of the horse, or a prefix of it (the site returns all names beginning with it). Required unless both foaling_year and dam_name are given.
foaling_yearstring4-digit year of birth (YYYY) used to narrow the match.
Response
{
  "type": "object",
  "fields": {
    "count": "integer number of matches",
    "query": "object echoing the inputs used (horse_name, foaling_year, dam_name; null when omitted)",
    "matches": "array of matches: reference_number (string registry id, input to get_pedigree), name, foaling_year (integer), sex (e.g. Horse, Mare, Colt, Gelding; null on a direct single hit), sire (null on a direct single hit), dam"
  },
  "sample": {
    "data": {
      "count": 1,
      "query": {
        "dam_name": null,
        "horse_name": "Secretariat",
        "foaling_year": null
      },
      "matches": [
        {
          "dam": "Somethingroyal",
          "sex": "Horse",
          "name": "Secretariat",
          "sire": "Bold Ruler",
          "foaling_year": 1970,
          "reference_number": "444670"
        }
      ]
    },
    "status": "success"
  }
}

About the Equineline API

What the API covers

The Equineline API surfaces the data behind Equineline.com's free 5-generation pedigree report for registered Thoroughbreds. Two endpoints cover the full workflow: search_horses finds registry matches by name (or by foaling_year plus dam_name when no horse name is known) and returns a reference_number per match. That reference_number is passed to get_pedigree to pull the exact horse's record without ambiguity.

get_pedigree response fields

The horse object includes name, color, sex, foaled date text, foaled_in, starts count, and a racing highlight string. Beyond the header, the response contains an ancestors array of 62 entries — each with generation, position, path, display name, foaling year, color, and its own reference_number. The inbreeding array lists each cross with per-generation side notation (S or D) and a human-readable crosses_text such as "5S X 5D". Dosage data appears as a 5-integer dosage_profile and a dosage_index number. The nicking object carries sire and broodmare-sire statistics including mares, foals, starters percentage, winners percentage, and black-type winners. most_recent_auction returns sale price, sale name, consignor, and buyer as printed on the source page, or null when no auction data is on file.

Searching and filtering

search_horses accepts a partial horse_name prefix and returns all registry matches beginning with that string, each with reference_number, name, integer foaling_year, and sex. Passing foaling_year and/or dam_name alongside the name narrows results; passing foaling_year plus dam_name with no horse_name is also valid. The count field in the response tells you how many matches came back before iterating the matches array. Both endpoints share the same four input parameters, so a single well-formed call to get_pedigree with a unique name can skip the search step entirely.

Reliability & maintenanceVerified

The Equineline API is a managed, monitored endpoint for equineline.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when equineline.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 equineline.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
2h ago
Latest check
2/2 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
  • Build a pedigree viewer that renders all 62 ancestors in a tree layout using the ancestors array with generation and position fields.
  • Screen breeding candidates by querying nicking.stats for sire/broodmare-sire combinations with high winners-to-starters ratios.
  • Track auction price history for yearlings by extracting most_recent_auction.sale_price across a list of horses.
  • Calculate inbreeding coefficients by parsing the inbreeding array's generation and side data for a cohort of horses.
  • Automate dosage profiling for race entry analysis using dosage_profile and dosage_index fields from get_pedigree.
  • Resolve ambiguous horse names programmatically with search_horses using foaling_year and dam_name before fetching full pedigrees.
  • Compile breeder statistics by aggregating the breeder field across pedigree records for a set of sire-line descendants.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo2005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min
Team$300/mo20,000300 req/min
Company$1,000/mo100,000500 req/min

Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does Equineline.com have an official developer API?+
Equineline.com does not publish a public developer API. The site offers an interactive pedigree lookup tool for end users at equineline.com/Free-5X-Pedigree.cfm, but there is no documented REST or GraphQL API available to developers.
How do I look up a horse when I only know part of its name?+
search_horses treats horse_name as a prefix match — it returns all registered names beginning with the string you supply. The response count field and matches array let you iterate results and pick the right reference_number. If there are multiple horses with similar names, adding foaling_year or dam_name parameters to the call will narrow the result set.
What happens when a horse has no inbreeding or no auction data?+
When Equineline's pedigree report lists no inbreeding crosses, get_pedigree returns an empty array for inbreeding and an empty string for inbreeding_text. When no auction result is on file, most_recent_auction is null. Similarly, truenick_rating, dosage_profile, and dosage_index are null when the source page prints none for that horse.
Does the API cover non-Thoroughbred breeds or horses registered outside North America?+
The API covers Thoroughbreds in the Equineline registry, which is oriented toward North American registrations but includes internationally bred horses on file with the Jockey Club. Non-Thoroughbred breeds (Standardbreds, Quarter Horses, etc.) are not covered. You can fork this API on Parse and revise it to point at breed-specific registry sources to add that coverage.
Does the API return full racing records or earnings beyond the single racing highlight string?+
Not currently. get_pedigree returns a starts count and a single racing_highlight string (e.g. a notable race win) as displayed on the free pedigree page — it does not return a full race-by-race record, earnings figures, or speed figures. You can fork this API on Parse and revise it to target a more detailed racing-record source if your application needs granular performance data.
Page content last updated . Spec covers 2 endpoints from equineline.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.
bloodhorse.com API
Get comprehensive horse racing information including race results, stakes entries, horse profiles, and the latest news from BloodHorse.com. Search racing data, view detailed race information, and discover current racing leaders all in one place.
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.
france-galop.com API
Search for detailed information about French racehorses and retrieve comprehensive results from France Galop races to track performance and racing history. Get instant access to horse profiles and race outcomes to stay updated on French horse racing events.
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.
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.
arion.co.nz API
Access comprehensive information about New Zealand stallions from Arion Pedigrees, including roster listings and detailed stud records analyzed by crop year and age. Look up individual stallion performance statistics and breeding data to research pedigrees and breeding outcomes.
deutscher-galopp.de API
Access German horse racing results, search detailed horse profiles, and view performance rankings from Deutscher Galopp to make informed decisions about races and horses. Track race outcomes and compare horse statistics all in one place.