FEI APIdata.fei.org ↗
Access FEI horse records, athlete profiles, competition results, world rankings, show calendars, and national federation data via 14 structured endpoints.
What is the FEI API?
The FEI Database API exposes 14 endpoints covering international equestrian sport data from data.fei.org, including horse registrations, athlete profiles, competition results, world rankings, and show calendars. search_horses lets you find horses by name or FEI ID and retrieve an encrypted identifier used to pull full profiles and competition histories. The same pattern applies to athletes, shows, and individual competitions, giving you a consistent lookup chain across the entire dataset.
curl -X GET 'https://api.parse.bot/scraper/4ec7d4d3-bcf8-4a28-84b4-bdc3bd38455f/search_horses?name=Donatello' \ -H 'X-API-Key: $PARSE_API_KEY'
Search for horses by name or FEI ID. At least one of name or fei_id should be provided. Returns an array of matching horses with basic registration info including an encrypted ID (Name_id) used for detail/results lookups.
| Param | Type | Description |
|---|---|---|
| name | string | Horse name to search for (partial match supported) |
| fei_id | string | FEI ID of the horse (e.g. 102YQ59) |
{
"type": "object",
"fields": {
"horses": "array of horse objects with FEI ID, Name, Name_id, Sex, Date of birth, Admin NF, and registration details"
}
}About the FEI API
Horse and Athlete Lookups
Start with search_horses (params: name, fei_id) or search_persons (params: last_name, fei_id) to find records and obtain a Name_id encrypted ID. Pass that ID as p_id to get_horse_detail or get_person_detail to retrieve full profiles. Horse detail includes Gender, Date of Birth, Status, ID Type, Current Name, and Administering NF. Person detail adds Groups (e.g. Athlete, Owner), Nationality, Competing for, and Status. Note that first_name filtering in search_persons may not behave reliably when combined with last_name.
Competition Results and Show Data
get_horse_results and get_athlete_results both accept a p_id and return arrays of competition entries. Athlete results include Competition_id and Horse_id fields that chain to get_competition_results and get_horse_detail respectively. search_calendar filters shows by date_from, date_to, and venue, returning Show_id values used in get_show_detail. A show's events array nests a competitions sub-array with rule, date, prize money, and obstacle height. get_competition_results returns per-rider rows with Pos., FEI ID, Athlete_id, Horse, and Horse_id.
Rankings and National Federations
get_rankings takes a ranking_code (e.g. S_WR for the Jumping Longines Rankings) and returns ranked athletes with Rank, Previous, Points, and Number of Results. list_national_federations returns every FEI member federation with event, official, athlete, and horse counts. get_national_federation_detail (params: nf_id, optional slug) adds address, president, affiliated year, website URL, and a members array with each person's Department and Function.
ID Chaining Pattern
Most detail and results endpoints require an encrypted ID (p_id) rather than a plain FEI ID. Horses and persons use Name_id from search results; shows use Show_id from search_calendar or search_shows_by_venue; competitions use Competition_id from athlete or horse result rows. Keep these IDs from one response to use as inputs in the next — the API is designed as a linked lookup chain.
The FEI API is a managed, monitored endpoint for data.fei.org — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when data.fei.org 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 data.fei.org 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.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Track a specific horse's full competition history across FEI shows using
get_horse_results - Build an athlete profile page with career results, nationality, and discipline groups from
get_person_detailandget_athlete_results - Aggregate upcoming show schedules by venue or date range with
search_calendarfor event planning tools - Pull FEI world rankings by discipline code via
get_rankingsfor leaderboard displays - Compile national federation directories with contact info, president names, and member rosters using
get_national_federation_detail - Retrieve competition-level results including prize money and obstacle height for jumping events via
get_competition_results - Map horse registrations to administering national federations using
Administering NFfromget_horse_detail
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 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.
Does FEI provide an official public developer API for data.fei.org?+
What does `get_show_detail` return beyond basic show info?+
get_show_detail returns an events array where each entry includes Discipline, Event Code, and Discipline_id. Each event nests a competitions sub-array containing competition name, rule, date, prize money, obstacle height, and result status. Use Competition_id values from that sub-array as input to get_competition_results to fetch the actual result rows.Are historical results always available for horses and athletes?+
get_horse_results and get_athlete_results may return empty arrays for inactive horses, retired athletes, or those with no recorded FEI international history. Coverage reflects what the FEI database has indexed; older or lower-level national results are generally not present.Does the API cover breeding or studbook data for horses?+
get_horse_detail returns registration fields like Gender, Date of Birth, ID Type, and Administering NF, but does not include sire, dam, breed, or studbook data. You can fork this API on Parse and revise it to add an endpoint targeting those fields if the source exposes them.Can I filter `get_rankings` by country or age category?+
get_rankings endpoint accepts only a ranking_code parameter and returns a full ranked list without country or age filtering. The response includes NF (national federation) per athlete, so country filtering can be applied client-side. You can fork this API on Parse and revise it to add server-side filtering if needed.