Discover/HKJC API
live

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.

Endpoint health
verified 5d ago
search_horses
get_race_results
get_horse_profile
get_jockey_ranking
get_trainer_ranking
8/8 passing latest checkself-healing
Endpoints
8
Verified account required
Updated
26d ago

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.

This call costs1 credit / call— charged only on success
Try it
Race date in YYYYMMDD format (e.g., 20250608).
Race number within the meeting (1-11 typical).
→ api.parse.bot/scraper/df13f774-1140-45fb-af1f-1861fa428708/<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/df13f774-1140-45fb-af1f-1861fa428708/get_race_results?date=20250608&race_no=1' \
  -H 'X-API-Key: $PARSE_API_KEY'
All endpoints · 8 totalmissing one? ·

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.

Input
ParamTypeDescription
daterequiredstringRace date in YYYYMMDD format (e.g., 20250608).
race_nointegerRace number within the meeting (1-11 typical).
Response
{
  "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.

Reliability & maintenanceVerified

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.

Last verified
5d ago
Latest check
8/8 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 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
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo2005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min
Team$300/mo20,000300 req/min
Company$1,000/mo100,000500 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.

Frequently asked questions
Does the Hong Kong Jockey Club offer an official developer API?+
HKJC does not publish a public developer API for racing data. The club's racing.hkjc.com site is the authoritative source for this data, but there is no documented REST or GraphQL API available to external developers.
What does get_race_results return beyond the finishing order?+
In addition to placing and horse identifiers, each finisher object includes actual and declared weights, draw, lengths behind winner (lbw), jockey, and trainer. The response also contains a dividends array broken down by pool type and winning combination, plus race metadata fields: venue, class, going, course, and distance (which may be empty if not available for that meeting).
Does get_sectional_times include fractional split times for every runner, or just the winner?+
The response includes both: a race-level race_times array with the winner's cumulative times at each timing point, and a runners array where each finisher has its own sections array containing per-section position and time data. This lets you reconstruct each horse's positional history through the race.
Does the API cover overseas races or simulcast events listed by HKJC?+
The race card, results, and sectional time endpoints cover HKJC meetings held at Sha Tin and Happy Valley. The fixtures endpoint does include overseas event entries via the events array, but detailed results or runner data for overseas races are not currently returned. You can fork the API on Parse and revise it to add an endpoint targeting overseas meeting data.
Is historical horse form or race-by-race performance history available from the horse profile endpoint?+
get_horse_profile returns pedigree, ownership, trainer, age, colour, and sex fields. A full run-by-run form history for each horse is not currently included in the response. You can fork the API on Parse and revise it to add an endpoint that retrieves the horse's individual race history from the HKJC site.
Page content last updated . Spec covers 8 endpoints from racing.hkjc.com.
Related APIs in SportsSee all →
race.netkeiba.com API
Access comprehensive Japanese horse racing data from netkeiba.com, including race schedules, detailed race cards with runner information (jockeys, weights, equipment), and complete race results with finishing orders, times, lap splits, and payouts. Use this data to research races by date, analyze runner details before competitions, and review detailed race outcomes and performance metrics.
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.
racingpost.com API
Access comprehensive horse racing data from Racing Post, including daily racecards, meeting schedules, race results, and detailed horse profiles with form history, stats, and pedigree.
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.
deutscher-galopp.de API
Access German horse racing results, search detailed horse profiles, and view performance rankings from Deutscher Galopp to make informed decisions about races and horses. Track race outcomes and compare horse statistics all in one place.
racingtv.com API
Access detailed information about UK and international horse racing meetings, including complete racecards, runner details, Timeform analysis, pace bias data, and draw commentary. Plan your racing strategy or stay informed on upcoming races with comprehensive meeting schedules and expert insights all in one place.
france-galop.com API
Search for detailed information about French racehorses and retrieve comprehensive results from France Galop races to track performance and racing history. Get instant access to horse profiles and race outcomes to stay updated on French horse racing events.
racenet.com.au API
Access data from racenet.com.au.