Discover/HKJC API
live

HKJC APIbet.hkjc.com

Get Hong Kong Jockey Club Mark Six draw results, prize breakdowns, jackpot amounts, and frequency statistics for all 49 numbers via a simple REST API.

Endpoint health
verified 6h ago
get_number_statistics
get_latest_results
2/2 passing latest checkself-healing
Endpoints
2
Updated
26d ago

What is the HKJC API?

The HKJC Mark Six API provides two endpoints covering draw results and number frequency statistics for Hong Kong's official lottery. get_latest_results returns the most recent completed draw with drawn numbers, extra number, snowball details, and prize dividends, plus metadata on the next scheduled draw. get_number_statistics delivers historical frequency data across all 49 possible numbers, including draw count and recency for each.

Try it

No input parameters required.

api.parse.bot/scraper/2fc81dc0-16a8-4b7d-8674-ab10815189b7/<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/2fc81dc0-16a8-4b7d-8674-ab10815189b7/get_latest_results' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace bet-hkjc-com-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

"""HKJC Mark Six Results — lottery draws and number frequency analysis."""
from parse_apis.hkjc_mark_six_results_api import MarkSix, UpstreamError

client = MarkSix()

# List latest draws — includes completed results and upcoming scheduled draws.
for draw in client.draws.list(limit=5):
    print(draw.id, draw.draw_date, draw.status, draw.drawn_numbers)

# Drill into the first draw's prize breakdown.
latest = client.draws.list(limit=1).first()
if latest:
    for prize in latest.prizes:
        print(f"  Prize type {prize.type}: {prize.winning_units} winners @ {prize.dividend}")

# Number frequency statistics — all 49 numbers in one page.
for stat in client.numberstats.list(limit=5):
    print(f"  #{stat.number}: drawn {stat.total_drawn} times, last {stat.last_drawn_in_draw} draws ago")

# Typed error handling around a call.
try:
    for draw in client.draws.list(limit=2):
        print(draw.id, draw.year, draw.draw_number)
except UpstreamError as exc:
    print(f"upstream issue: {exc}")

print("exercised: draws.list / numberstats.list / prize attribute access / error handling")
All endpoints · 2 totalmissing one? ·

Get the latest Mark Six draw results including drawn numbers, extra number, prize dividends, jackpot amount, snowball info, and next scheduled draw details. Returns the most recent completed draw and the next upcoming draw. No parameters required.

Input

No input parameters required.

Response
{
  "type": "object",
  "fields": {
    "draws": "array of Draw objects containing draw details, numbers, and prizes",
    "total": "integer - number of draws returned"
  },
  "sample": {
    "data": {
      "draws": [
        {
          "id": "202662N",
          "year": "2026",
          "prizes": [
            {
              "type": 1,
              "dividend": "13244910",
              "winning_units": 10
            },
            {
              "type": 2,
              "dividend": "1748300",
              "winning_units": 10
            },
            {
              "type": 3,
              "dividend": "45700",
              "winning_units": 1020
            },
            {
              "type": 4,
              "dividend": "9600",
              "winning_units": 2150
            },
            {
              "type": 5,
              "dividend": "640",
              "winning_units": 47255
            },
            {
              "type": 6,
              "dividend": "320",
              "winning_units": 65723
            },
            {
              "type": 7,
              "dividend": "40",
              "winning_units": 856207
            }
          ],
          "status": "Result",
          "jackpot": "8000000",
          "unit_bet": 10,
          "draw_date": "2026-06-09+08:00",
          "open_date": "2026-06-06+08:00",
          "close_date": "2026-06-09T21:15:00+08:00",
          "draw_number": 62,
          "extra_number": 30,
          "drawn_numbers": [
            8,
            11,
            14,
            26,
            33,
            40
          ],
          "snowball_code": "",
          "estimated_prize": "",
          "snowball_name_ch": "",
          "snowball_name_en": "",
          "total_investment": "48605382",
          "derived_first_prize_div": "13000000"
        }
      ],
      "total": 2
    },
    "status": "success"
  }
}

About the HKJC API

Draw Results

The get_latest_results endpoint returns an array of draw objects under the draws key. Each object includes fields such as id, year, draw_number, draw_date, status, drawn_numbers (the six main balls), extra_number, snowball information, and investment and prize dividend breakdowns. A total integer confirms how many draw records were returned. The endpoint requires no input parameters and always reflects the most recently completed draw alongside metadata for the next upcoming draw.

Number Frequency Statistics

The get_number_statistics endpoint covers all 49 Mark Six numbers. Each entry in the numbers array contains the number (1–49), total_drawn (how many times that number has appeared historically), and last_drawn_in_draw (how many draws ago the number was last selected). Three reference fields — reference_year, reference_draw_date, and reference_draw_number — anchor the statistics to a specific draw so you know exactly what period the frequency data covers. total_numbers is always 49.

Coverage and Freshness

Both endpoints reflect the live state of the HKJC Mark Six results page at bet.hkjc.com. The results endpoint distinguishes current draw status (e.g. completed vs. upcoming) via the status field on each draw object, which is useful for polling workflows that need to detect when a new result has been published. Snowball draw details are surfaced when applicable, allowing applications to flag draws with rolled-over jackpots.

Reliability & maintenanceVerified

The HKJC API is a managed, monitored endpoint for bet.hkjc.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when bet.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 bet.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
6h ago
Latest check
2/2 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
  • Display the latest Mark Six winning numbers and prize dividends in a lottery results app
  • Alert users when a snowball jackpot draw is scheduled using the snowball fields from get_latest_results
  • Build a number frequency heatmap for all 49 balls using total_drawn from get_number_statistics
  • Identify 'cold' numbers by sorting on last_drawn_in_draw to find balls absent for the most draws
  • Track jackpot investment totals across recent draws by consuming the investment field in draw objects
  • Show the next scheduled draw date and time to lottery enthusiasts ahead of each draw night
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 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.

Frequently asked questions
Does HKJC provide an official public developer API for Mark Six results?+
HKJC does not publish a documented public API for Mark Six lottery data. The official results are available through the bet.hkjc.com website, but there is no publicly documented REST or GraphQL API for third-party developers to query directly.
What does the `get_latest_results` endpoint actually return — is it just the most recent draw or multiple draws?+
It returns an array under draws that includes the most recently completed draw and information about the next upcoming draw. The total field tells you how many draw objects are in the response. Each draw object carries drawn_numbers, extra_number, snowball details, prize dividends, and status to distinguish completed from upcoming.
Does the API expose historical draw results beyond the most recent one?+
The get_latest_results endpoint covers the most recent completed draw and the next upcoming draw. It does not return a paginated archive of past draws. The get_number_statistics endpoint provides aggregate historical frequency data per number but not individual historical draw records. You can fork this API on Parse and revise it to add a historical draws endpoint if you need per-draw records going back further.
Can I filter number statistics by a specific date range or draw period?+
The get_number_statistics endpoint does not accept date or draw-range parameters — it returns aggregate totals for all 49 numbers referenced to a single anchor draw identified by reference_draw_number and reference_draw_date. Filtering by period is not currently supported. You can fork the API on Parse and revise it to add date-scoped frequency queries.
How do I know if a draw is a snowball draw from the response?+
Each draw object in the draws array from get_latest_results includes snowball-specific fields. When a draw carries a rolled-over snowball jackpot, those fields will be populated, allowing your application to distinguish standard draws from snowball events without any additional calls.
Page content last updated . Spec covers 2 endpoints from bet.hkjc.com.
Related APIs in EntertainmentSee all →
sportstoto.com.my API
Access Sports Toto Malaysia lottery jackpots, draw results, and past results calendars. Retrieve winning numbers, prize amounts, and comprehensive 4D frequency statistics for historical analysis.
racing.hkjc.com API
Access comprehensive horse racing data from the Hong Kong Jockey Club. Retrieve race results, detailed horse profiles including pedigree and form records, jockey and trainer season rankings, upcoming race meeting fixtures, and horse search by name.
megamillions.com API
Check the latest Mega Millions winning numbers and jackpot amounts, browse historical drawings, and discover the top jackpots across participating lottery states. Stay updated on lottery results and track winning combinations whenever you need them.
usamega.com API
Check the latest Mega Millions and Powerball results, jackpot amounts, and winning odds all in one place. Analyze drawing details and tax implications to make smarter lottery decisions.
calottery.com API
Check the latest California Lottery results for Powerball and Mega Millions, including up to 120 recent draws from 2025 and historical data for all available games. Search past winning numbers and game information across California's lottery draw games.
nylottery.ny.gov API
Access New York Lottery draw results, historical winning numbers, and scratch-off game information. Retrieve number frequency statistics, search for nearby retailers, and browse recent winners across all available games.
lotteryusa.com API
Check the latest winning numbers and jackpot amounts across all US lotteries, and view detailed prize breakdowns by state and game. Stay updated on lottery results instantly without visiting multiple lottery websites.
powerball.com API
Check the latest Powerball drawing results, historical winning numbers, current jackpot amounts, and prize information all in one place. Browse past draws by date, view odds and prize breakdowns, and explore stories from winners to stay informed about your favorite lottery game.