Why test a horse racing data API before you commit
A sales page tells you what a provider claims. A test call tells you what it delivers.
If you are choosing a horse racing data API for a model, a product or a production pipeline, you can verify most of what matters in an afternoon. This guide lists what to check and why each check matters.
We write it from our own side: these are the things HorseRaceDatabase (HRDB) expects a careful buyer to test.
What the public documentation covers
The public API documentation lists 26 UK and 30 Hong Kong data endpoints. They span:
- Races
- Racecards
- Records (results)
- Horses
- Jockeys
- Trainers
- Courses
- Hong Kong veterinary records
Read the documentation first. Check that the entities you need exist as endpoints, not as something you must reconstruct yourself.
The underlying data holds 2.2M result records, 226K races, 173K horses and 85+ racecourses. Hong Kong history starts in 1979. UK and Ireland history starts in 2011. Sectional times are available from 2008 for Hong Kong and from 2017 for the UK.
Test 1: authentication
Access works by exchanging an API key for a token. The token is valid for 24 hours.
- Call
POST /auth/tokenwith your key. - Store the token and note its expiry.
- Build your refresh logic around the 24-hour window.
This is a small test, but it shows how the integration will behave in a scheduled job. A daily pipeline should request a fresh token at the start of each run.
Test 2: quota visibility
Every plan has a usage quota. Add-on packs exist for extra calls.
You should never have to guess how much of your quota is left. GET /user/usage reports quota used and remaining. It does not consume a call.
That last point matters for production. You can poll it from a monitoring job, alert on a threshold and keep your own budget under control without spending the budget you are measuring.
Test 3: UK and Hong Kong isolation
UK and Hong Kong data live in separate, isolated schemas.
For an analytics team, this is a schema stability question. Check that:
- Your UK queries return only UK records.
- Your Hong Kong queries return only Hong Kong records.
- Identifiers behave consistently within each schema.
Isolation means a change or a fix in one market does not leak into the other. It also keeps your joins predictable.
Test 4: the integrity gates
This is the test most buyers skip, and the one that costs the most when it fails later.
Every nightly update passes automated integrity gates before it is published:
- No horse is assigned to two races on the same day.
- No duplicate runner rows.
- No missing horse, jockey or trainer IDs.
- Different horses that share a name are kept separate.
You can check these yourself on any sample you pull. Group runners by horse and date. Count rows per race and horse. Look for null IDs. Pick a common horse name and confirm that distinct horses carry distinct identifiers.
A model trained on duplicated rows or merged horses learns from errors. Clean identifiers are the foundation for backtesting and feature work.
Test 5: update timing
Be clear about what the data is. It is updated daily, after racing. It is not a live or real-time feed, and there are no webhooks.
Racecards and results are updated daily. If your product needs data in the minutes around a race, this is not the right fit. If your workflow runs on a daily cycle, it is.
That clarity should be part of your evaluation. Test the timing against the cadence your system actually needs.
A worked example from a recent card
On one recent day, UK and Ireland racing ran to 38 races and 415 runners across five courses: Bath, Ffos-Las, Punchestown, Southwell and Stratford. The race types were Flat Turf, Hurdle, Chase and Flat AW. Hong Kong had no racing that day.
The feature race was the Irish Stallion Farms EBF Fillies Maiden at Punchestown at 13:05, over 1m, with nine runners and going of yielding to soft-yielding in places.
This gives you a ready-made check. Pull the data for a day like this one and compare it with these figures:
- Does the race count match 38?
- Does the runner count match 415?
- Is each runner row unique?
- Does every runner carry a horse, jockey and trainer ID?
The racecard counts are a sanity check, not a guarantee of anything else. Use them as one more data point in your own evaluation.
Test 6: provisioning
API access is provisioned automatically after purchase. There is no waiting on a manual setup before you can run your first call.
Check that your key arrives, the token exchange works and your usage endpoint shows the quota for your plan. If your volume grows, add-on packs cover extra calls.
Dataset or API
HRDB also provides historical datasets in CSV, SQL and JSON, plus bespoke exports and enterprise support.
A simple rule of thumb:
- Training and backtesting on deep history: a dataset may be the quicker route.
- Daily refreshes in a pipeline: the API fits.
- Unusual formats or support needs: ask about a bespoke export.
Many teams use both. The dataset seeds the history, and the API keeps it current.
A short evaluation checklist
Before you decide, confirm:
- The endpoints you need are in the documentation.
- Token exchange and the 24-hour expiry fit your scheduler.
GET /user/usageworks in your monitoring.- UK and Hong Kong schemas behave separately.
- Your sample passes your own duplicate and null-ID checks.
- Daily, after-racing updates match your cadence.
- The plan quota fits your expected call volume.
If each item passes, you have evidence rather than a promise. Compare the plans to match your volume.
No provider can tell you what your model will do. We can show you that the data underneath it is consistent, documented and checkable.
What is on the roadmap
USA, Canada, Pacific and global racing are on the roadmap. They are not currently available. Current coverage is the United Kingdom, Ireland and Hong Kong.
Summary
Test authentication, quota visibility, schema isolation, integrity and update timing. Each takes minutes. Together they tell you whether the data will hold up in production.
Check the claims against your own sample, then choose the plan that fits your call volume.
Next step: Explore the datasets

Comments are closed