Discover/ehorses API
live

ehorses APIehorses.com

Access ehorses.com horse listings, seller profiles, breed filters, and market stats via 6 structured API endpoints. Search, filter, and retrieve full listing details.

Endpoint health
verified 5d ago
search_horses
get_seller_profile
get_horse_detail
get_seller_horses
get_homepage_stats
6/6 passing latest checkself-healing
Endpoints
6
Updated
24d ago

What is the ehorses API?

The ehorses.com API exposes 6 endpoints covering the full breadth of the world's largest horse marketplace — from paginated search results with breed, gender, color, and country filters to full listing details via get_horse_detail, including pedigree entries, images, and attributes. You can also pull seller profiles, a seller's active listings, available filter metadata, and live homepage statistics like total listings and horses sold today.

Try it
Page number for pagination.
Sort order. Values: 'datum+desc' (newest first), 'preis+asc' (price ascending), 'preis+desc' (price descending).
Breed ID from get_search_filters_metadata breed list.
Color ID from get_search_filters_metadata color list.
Keyword search term.
Maximum age in years.
Gender ID: '3' for Mare, '2' for Stallion, '1' for Unknown, '4' for Gelding.
Country code as numeric ID from the site's country list. Use '0' for all countries.
Minimum age in years.
Maximum height in cm.
Maximum price.
Minimum price.
Minimum height in cm.
api.parse.bot/scraper/7c34dc91-e6dc-4111-9bd0-eb95278684f7/<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/7c34dc91-e6dc-4111-9bd0-eb95278684f7/search_horses?page=1&sort=datum%2Bdesc&breed=94&color=15&query=dressage&age_to=30&gender=3&country=0&age_from=0&height_to=250&price_max=9999999&price_min=0&height_from=50' \
  -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 ehorses-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.

"""ehorses.com SDK — horse market search, detail, and seller profiles."""
from parse_apis.ehorses_api import Ehorses, Sort, Gender, NotFound

client = Ehorses()

# Search for mares sorted by newest, capped at 5 results
for horse in client.horses.search(gender=Gender.MARE, sort=Sort.NEWEST, limit=5):
    print(horse.title, horse.price, horse.url)

# Drill into the first result for full details
horse = client.horses.search(sort=Sort.NEWEST, limit=1).first()
if horse:
    detail = client.horsedetails.get(ad_id=horse.id)
    print(detail.title, detail.price, detail.attributes)

# Fetch a seller profile and list their horses
try:
    seller = client.sellers.get(username="gestuethillebrecht")
    print(seller.name, seller.listing_count, seller.contact)
    for h in seller.horses.list(limit=3):
        print(h.title, h.price)
except NotFound as exc:
    print(f"Seller not found: {exc}")

# Get available filter options (breeds, colors, genders)
filters = client.filteroptionses.get()
print(filters.breed[0].text, filters.breed[0].value)

# Get homepage statistics
stats = client.homepagestatses.get()
print(stats.total_listings, stats.new_today, stats.sold_today)

print("exercised: horses.search / horsedetails.get / sellers.get / seller.horses.list / filteroptionses.get / homepagestatses.get")
All endpoints · 6 totalmissing one? ·

Search for horses on the ehorses.com marketplace. Returns paginated results with horse title, price, breed, URL, and listing details. Supports filtering by breed, gender, color, age, height, price, and country. Without filters returns the newest listings. Paginates via page number.

Input
ParamTypeDescription
pageintegerPage number for pagination.
sortstringSort order. Values: 'datum+desc' (newest first), 'preis+asc' (price ascending), 'preis+desc' (price descending).
breedstringBreed ID from get_search_filters_metadata breed list.
colorstringColor ID from get_search_filters_metadata color list.
querystringKeyword search term.
age_tostringMaximum age in years.
genderstringGender ID: '3' for Mare, '2' for Stallion, '1' for Unknown, '4' for Gelding.
countrystringCountry code as numeric ID from the site's country list. Use '0' for all countries.
age_fromstringMinimum age in years.
height_tostringMaximum height in cm.
price_maxstringMaximum price.
price_minstringMinimum price.
height_fromstringMinimum height in cm.
Response
{
  "type": "object",
  "fields": {
    "page": "current page number (integer)",
    "items": "array of horse listing summaries with id, title, url, price, location, breed, details",
    "total": "total number of matching results (integer)"
  },
  "sample": {
    "data": {
      "page": 1,
      "items": [
        {
          "id": "4853955",
          "url": "https://www.ehorses.com/friesian-horses-stallion-5years-16-hh-carriagehorses-baroquehorses-leisurehorses-oosterzee/4853955.html",
          "breed": "Friesian horses, Stallion, 5 years, 16 hh",
          "price": "€10,000 to €15,000",
          "title": "Friesian horses, Stallion, 5 years, 16 hh",
          "details": [
            "Friesian horses, Stallion, 5 years, 16 hh"
          ],
          "location": null
        }
      ],
      "total": 17485
    },
    "status": "success"
  }
}

About the ehorses API

Search and Filter Horses

The search_horses endpoint accepts filters including breed (ID from get_search_filters_metadata), color, gender (e.g. '3' for Mare, '4' for Gelding), age_to, country (numeric country ID), and a free-text query. Results are paginated via the page parameter and sortable using sort values like datum+desc (newest first) or preis+asc (price ascending). Each result in the items array includes the listing id, title, url, price, location, breed, and summary details. The total field tells you the full result count across all pages.

Full Listing and Pedigree Details

get_horse_detail accepts a full listing url (preferred, taken directly from search_horses results) or a numeric ad_id. The response includes a complete attributes object covering Breed, Gender, Age, Height, Color, and Main discipline, plus an images array, a description text block, a seller object with name and profile URL, and a pedigree array where each entry carries a name and role. The URL form is preferred — ad_id-only lookup may not resolve correctly without the full slug.

Seller Profiles and Active Listings

get_seller_profile takes a seller username slug and returns the seller's display name, contact details as key-value pairs, a description, and listing_count. To enumerate their inventory, get_seller_horses accepts the same username along with an optional page parameter and returns an items array of that seller's active listings with id, title, url, breed, and price, plus the internal owner_id.

Filter Metadata and Market Statistics

get_search_filters_metadata requires no inputs and returns the full enumerated lists for breed, color, and gender — each as an array of {value, text} pairs — so you can map human-readable names to the IDs that search_horses expects. get_homepage_stats returns three integers scraped from the ehorses.com homepage: total_listings, new_today, and sold_today, useful for monitoring market activity over time.

Reliability & maintenanceVerified

The ehorses API is a managed, monitored endpoint for ehorses.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when ehorses.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 ehorses.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
5d ago
Latest check
6/6 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 horse price tracker by querying search_horses with breed and country filters and recording price over time.
  • Aggregate pedigree data across listings using get_horse_detail's pedigree array to map bloodline relationships.
  • Monitor a specific breeder's inventory by polling get_seller_horses with their username and tracking new listings.
  • Populate a breed-selector UI using the breed array from get_search_filters_metadata to map display names to filter IDs.
  • Track daily market activity by logging new_today and sold_today from get_homepage_stats at regular intervals.
  • Compare asking prices across genders and disciplines by combining gender, breed, and sort parameters in search_horses.
  • Display seller contact details and listing counts on a directory page using get_seller_profile data.
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 ehorses.com have an official developer API?+
No. ehorses.com does not publish a public developer API or documented data access program. This Parse API provides structured access to the same data available on the site.
What does `get_horse_detail` return beyond basic listing info?+
get_horse_detail returns a full attributes object (Breed, Gender, Age, Height, Color, Main discipline), an images array of URLs, a pedigree array with each ancestor's name and role, a description text block, and a seller object containing the seller's name and profile URL. Always pass the full listing url from search_horses results rather than just ad_id, since slug-only lookups can fail to resolve.
How do I get the correct IDs for breed, color, and gender filters in `search_horses`?+
Call get_search_filters_metadata first. It returns three arrays — breed, color, and gender — each containing {value, text} objects. The value field is the ID you pass to search_horses. For gender, the fixed values are: '3' Mare, '2' Stallion, '4' Gelding, '1' Unknown.
Does the API return contact details like phone numbers or email addresses for sellers?+
The get_seller_profile endpoint returns a contact object with whatever contact details appear publicly on the seller's profile page. Private contact information (e.g. phone numbers visible only after login) is not exposed. You can fork this API on Parse and revise it to add any additional profile fields that become accessible.
Can I retrieve sold or expired horse listings?+
Not currently. The API covers active listings through search_horses and get_seller_horses, and the homepage stats include a sold_today count but no detail on individual sold listings. You can fork this API on Parse and revise it to add an endpoint targeting sold listing data if that page structure is accessible.
Page content last updated . Spec covers 6 endpoints from ehorses.com.
Related APIs in MarketplaceSee all →
mercadodecavalos.com.br API
Search and browse horse listings from Mercado de Cavalos, view detailed information about individual animals, stallions, mares, and embryos, plus access featured animals and contact details. Stay updated with the latest news articles from the horse trading community.
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.
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.
shpock.com API
Search and browse products listed on Shpock.com, view detailed listing information and seller profiles, and explore all available marketplace categories. Find what you're looking for by searching inventory, checking seller histories, and discovering related items from individual merchants.
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.
willhaben.at API
Search and browse listings across Austria's largest classifieds platform. Access marketplace goods, real estate (for sale and rent), cars, jobs, and full listing details — all from a single API.
equipmenttrader.com API
Search and browse thousands of machinery listings with detailed pricing, specifications, and seller contact information. Find the right equipment for your needs by filtering inventory across Equipment Trader's marketplace.
dogs4homes.co.uk API
Search and browse available dogs for adoption on Pets4Homes by keyword or breed, then view detailed profiles including photos, descriptions, and adoption information for each dog. Find your perfect canine companion with filtering options tailored to your preferences.