HKJC APIracing.hkjc.com ↗
Access Hong Kong Jockey Club race results, declared runners, sectional times, horse profiles, jockey/trainer rankings, and fixtures via a single API.
What is the HKJC API?
This API provides 8 endpoints covering Hong Kong Jockey Club racing data, from live race cards to historical results. Use get_race_results to retrieve finishers, dividends, and going conditions for any past meeting, or get_race_card to pull declared runners with weights, draws, and jockey assignments for an upcoming race. Horse profiles, sectional times with running positions, jockey and trainer season standings, and fixture schedules are all accessible.
curl -X GET 'https://api.parse.bot/scraper/df13f774-1140-45fb-af1f-1861fa428708/get_race_results?date=20250608&race_no=1' \ -H 'X-API-Key: $PARSE_API_KEY'
Retrieve full race results for a specific race meeting date and race number. Returns finishers with placings, times, odds, and dividends. Metadata fields (venue, class, distance, going, course) are extracted when available from the page structure.
| Param | Type | Description |
|---|---|---|
| daterequired | string | Race date in YYYYMMDD format (e.g., 20250608). |
| race_no | integer | Race number within the meeting (1-11 typical). |
{
"type": "object",
"fields": {
"date": "string, the requested date in YYYYMMDD format",
"class": "string, race class (may be empty)",
"going": "string, track condition (may be empty)",
"venue": "string, race venue (may be empty)",
"course": "string, course type (may be empty)",
"race_no": "integer, the race number",
"distance": "string, race distance in meters (may be empty)",
"dividends": "array of dividend objects with pool, winning_combination, dividend",
"finishers": "array of finisher objects with placing, horse_no, horse_name, horse_id, jockey, trainer, actual_wt, declar_wt, draw, lbw, running_pos, finish_time, win_odds"
},
"sample": {
"data": {
"date": "20250608",
"class": "",
"going": "",
"venue": "",
"course": "",
"race_no": 1,
"distance": "",
"dividends": [],
"finishers": [
{
"lbw": "---",
"draw": "8",
"jockey": "P N Wong",
"placing": "1",
"trainer": "K L Man",
"horse_id": "HK_2022_H347",
"horse_no": "8",
"win_odds": "5.2",
"actual_wt": "119",
"declar_wt": "1164",
"horse_name": "RUBY SAILING",
"finish_time": "1:09.19",
"running_pos": "1 1 1"
}
],
"race_name": ""
},
"status": "success"
}
}About the HKJC API
Race Cards and Results
The get_race_card endpoint accepts a date (YYYYMMDD) and optional race_no and returns the full declared runners list for that race. Each runner object includes horse_no, horse_name, horse_id, weight, draw, jockey, jockey_allowance, and last_6_runs. Race-level fields include venue (Sha Tin or Happy Valley), surface (Turf or All Weather Track), course, distance, going, start_time, race_name, and class. Omitting the date returns the currently published card. The get_race_results endpoint covers completed meetings: it returns finishers with placing, lbw, actual_wt, draw, and pari-mutuel dividends broken down by pool and winning combination.
Sectional Times and Horse Profiles
get_sectional_times returns the official timing breakdown for each runner in a completed race. Each entry in the runners array includes finish_time, a sections array with per-section positions and cumulative times, and standard identifiers like horse_id and horse_no. This makes lap-by-lap pace analysis possible. The get_horse_profile endpoint takes a horse_id (format: HK_2020_E436, obtainable from search results or race result finishers) and returns pedigree fields — sire, dam, dam_sire, colour, sex, age — plus owner and trainer. Field availability varies; retired horses may return fewer fields.
Rankings, Fixtures, and Search
get_jockey_ranking and get_trainer_ranking require no inputs and return current-season standings. Each entry includes Name, Id, First (win count), and StakesWon. get_race_meeting_fixtures returns upcoming meetings for the current month as an array of events with eventTitle, eventVenue, startDate (Unix millisecond timestamp), and category. To find a horse ID before calling the profile endpoint, use search_horses with a partial or full horse name — it supports partial matching and returns results for both active and retired horses.
The HKJC API is a managed, monitored endpoint for racing.hkjc.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when racing.hkjc.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 racing.hkjc.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.
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?+
- Build a results tracker that logs finishers, dividends, and going conditions for every HKJC meeting using get_race_results
- Display pre-race form guides by combining get_race_card runner data (draw, weight, last_6_runs) with get_horse_profile pedigree fields
- Analyse pace patterns by pulling sectional times and per-section running positions from get_sectional_times across multiple races
- Construct a jockey performance dashboard using Name, First (wins), and StakesWon from get_jockey_ranking
- Power a trainer comparison tool with current-season win counts and stakes from get_trainer_ranking
- Show a monthly racing calendar to end users by parsing startDate timestamps from get_race_meeting_fixtures
- Resolve horse IDs from names for downstream profile lookups using the partial-match search_horses endpoint
| 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.