ehorses.com 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.
curl -X GET 'https://api.parse.bot/scraper/7c34dc91-e6dc-4111-9bd0-eb95278684f7/search_horses?page=1&query=dressage' \ -H 'X-API-Key: $PARSE_API_KEY'
Search for horses with various filters. Returns paginated results from ehorses.com marketplace. Results include horse title, price, breed, URL, and listing details.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination. |
| sort | string | Sort order. Values use format 'datum+desc' (newest first), 'preis+asc' (price ascending), 'preis+desc' (price descending). |
| breed | string | Breed ID from get_search_filters_metadata breed list (param name on site: 'rasse'). |
| color | string | Color ID from get_search_filters_metadata color list (param name on site: 'farbe'). |
| query | string | Keyword search term. |
| age_to | string | Maximum age in years. |
| gender | string | Gender ID: '3' for Mare, '2' for Stallion, '1' for Unknown, '4' for Gelding. |
| country | string | Country code as numeric ID from the site's country list (e.g., '32' for Albania, '34' for Algeria). |
| age_from | string | Minimum age in years. |
| height_to | string | Maximum height in cm. |
| price_max | string | Maximum price. |
| price_min | string | Minimum price. |
| height_from | string | Minimum height in cm. |
{
"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": "4184175",
"url": "https://www.ehorses.com/holstein-mare-18years-16-hh-black-showjumpers-showhunter-leisurehorses-dressagehorses-suederluegum/4184175.html",
"breed": "Holstein, Mare, 18 years, 16 hh, Black",
"price": "€10,000 to €15,000 ~$10,650 to $15,975",
"title": "Holstein, Mare, 18 years, 16 hh, Black",
"details": [
"Holstein, Mare, 18 years, 16 hh, Black",
"Holstein, Mare, 18 years, 16 hh, Black",
"F: CONTENDER | MF: ACOBAT II"
],
"location": null
}
],
"total": 17045
},
"status": "success"
}
}About the ehorses.com 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.
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.
- Build a horse price tracker by querying
search_horseswith breed and country filters and recordingpriceover time. - Aggregate pedigree data across listings using
get_horse_detail'spedigreearray to map bloodline relationships. - Monitor a specific breeder's inventory by polling
get_seller_horseswith theirusernameand tracking new listings. - Populate a breed-selector UI using the
breedarray fromget_search_filters_metadatato map display names to filter IDs. - Track daily market activity by logging
new_todayandsold_todayfromget_homepage_statsat regular intervals. - Compare asking prices across genders and disciplines by combining
gender,breed, andsortparameters insearch_horses. - Display seller contact details and listing counts on a directory page using
get_seller_profiledata.
| 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 ehorses.com have an official developer API?+
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`?+
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?+
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?+
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.