Discover/Racenet API
live

Racenet APIracenet.com.au

Get today's Australian and NZ thoroughbred meetings, race times, full runner fields, barrier draws, jockey/trainer data, and bookmaker win odds via the Racenet API.

Endpoint health
verified 56m ago
list_meetings
get_race_fields
2/2 passing latest checkself-healing
Endpoints
2
Verified account required
Updated
1h ago

What is the Racenet API?

The Racenet API covers today's Australian and New Zealand thoroughbred racing across 2 endpoints, returning meeting schedules with local race times and full per-race runner fields. The list_meetings endpoint enumerates every venue active on the current racing day, while get_race_fields delivers barrier draws, jockey and trainer assignments, form data, and public bookmaker win odds for a specific race.

This call costs10 credits / call— charged only on success
Try it
Restrict the listing to one country. Omitted = both Australian and New Zealand meetings.
api.parse.bot/scraper/4b2b3142-7e53-42b8-b484-afe6c4bd967f/<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/4b2b3142-7e53-42b8-b484-afe6c4bd967f/list_meetings?country=NZ' \
  -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 racenet-com-au-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.

"""Walkthrough: browse today's AU meetings, drill into a race card, inspect runners."""
from parse_apis.racenet_com_au_api import Racenet, Country, RaceNotFound

client = Racenet()

# List today's Australian meetings (capped to 5 total items).
for meeting in client.meetings.list(country=Country.AU, limit=5):
    print(meeting.venue, meeting.meeting_date_local, f"({meeting.state})")

# Pick the first meeting and open its first race card.
meeting = client.meetings.list(country=Country.AU, limit=1).first()
if meeting is not None and meeting.races:
    race_slug = meeting.races[0].race_slug

    try:
        card = meeting.get_race_card(race_slug=race_slug)
    except RaceNotFound:
        print("Race not found — may have been abandoned")
    else:
        print(card.race.race_name, f"{card.race.distance_metres}m", card.race.track_condition)
        print(f"{card.runner_count} runners")

        # Show each runner's form and best odds.
        for runner in card.runners:
            best = runner.odds.best_win
            form_str = runner.form.last_ten
            print(
                f"  #{runner.saddlecloth_number} {runner.horse_name}"
                f"  barrier {runner.barrier}  {runner.weight_kg}kg"
                f"  jockey={runner.jockey}  form={form_str}  best_win=${best}"
            )

        # List sibling races at the same meeting for navigation.
        for other in card.other_races:
            print(f"  Race {other.race_number}: {other.race_name}")

print("exercised: meetings.list / get_race_card / runners / form / odds / other_races")
All endpoints · 2 totalmissing one? ·

Lists the thoroughbred meetings on Racenet's form guide for the current racing day (the site's own 'Today' view, reported in `date`), restricted to Australian and New Zealand venues; barrier-trial meetings are included with `group` = 'Barrier Trials'. Each meeting carries its venue, state, country, IANA timezone, local meeting date and every race with race number, name, distance, class, track condition, status and start time both as UTC and converted to the venue's local date/time. `starters` on a race is null in this listing (runner counts come from get_race_fields). Only the current day is available; other days are not served by this endpoint. One round trip; `meeting_slug` and `races[*].race_slug` are the keys accepted by get_race_fields.

Input
ParamTypeDescription
countrystringRestrict the listing to one country. Omitted = both Australian and New Zealand meetings.
Response
{
  "type": "object",
  "fields": {
    "date": "racing day the listing covers (YYYY-MM-DD, the site's current day)",
    "country": "the country filter applied, or null when both countries are returned",
    "meetings": "array of meeting objects, each with venue/state/country/timezone, meeting_date_local, group ('Australia', 'International' for NZ, 'Barrier Trials') and a races array",
    "meeting_count": "integer count of meetings returned",
    "meetings[*].races": "array of races: race_id, race_slug, race_number, race_name, race_date_local and race_time_local (HH:MM, venue timezone), start_time_utc, distance_metres, race_class, status, result_state, is_abandoned, track_condition, starters (null here)"
  },
  "sample": {
    "data": {
      "date": "2026-09-05",
      "country": "NZ",
      "meetings": [
        {
          "group": "International",
          "races": [
            {
              "status": "closed",
              "race_id": "3420397",
              "starters": 4,
              "race_name": "Rich Hill Stud 3yo",
              "race_slug": "rich-hill-stud-3yo-race-1",
              "race_class": "3yo, open, SW+P",
              "race_number": 1,
              "is_abandoned": false,
              "result_state": "resulted",
              "start_time_utc": "2026-09-04T23:55:00.000Z",
              "distance_metres": 1400,
              "race_date_local": "2026-09-05",
              "race_time_local": "11:55",
              "track_condition": "Soft 5"
            },
            {
              "status": "open",
              "race_id": "3420399",
              "starters": null,
              "race_name": "Dunstan Horsefeeds Hcp",
              "race_slug": "dunstan-horsefeeds-hcp-race-2",
              "race_class": "open, Handicap",
              "race_number": 2,
              "is_abandoned": false,
              "result_state": "unresulted",
              "start_time_utc": "2026-09-05T00:32:00.000Z",
              "distance_metres": 2200,
              "race_date_local": "2026-09-05",
              "race_time_local": "12:32",
              "track_condition": "Soft 5"
            }
          ],
          "state": "NZ",
          "venue": "Ellerslie",
          "is_tab": true,
          "country": "NZ",
          "timezone": "Pacific/Auckland",
          "meeting_id": "449566",
          "meeting_slug": "ellerslie-nz-20260905",
          "meeting_type": "Metro",
          "venue_abbrev": "ELNZ",
          "meeting_stage": "FinalFields",
          "rail_position": "True",
          "track_comments": "N/A",
          "meeting_category": "Professional",
          "total_prize_money": 940240,
          "meeting_date_local": "2026-09-05"
        }
      ],
      "meeting_count": 1
    },
    "status": "success"
  }
}

About the Racenet API

Meeting Listings

The list_meetings endpoint returns the full schedule of thoroughbred meetings for the current racing day as defined by Racenet's own 'Today' view. Each meeting object includes venue, state, country, timezone, and meeting_date_local. The group field separates regular cards ('Australia'), New Zealand venues ('International'), and 'Barrier Trials'. Embedded within each meeting is a races array carrying race_id, race_slug, race_number, race_name, race_date_local, and race_time_local in the venue's local timezone. The optional country parameter narrows results to Australian or New Zealand meetings; omitting it returns both.

Race Fields

get_race_fields takes a meeting_slug (e.g. belmont-20260905) and a race_slug from the meeting's races array. The response includes a race object with distance, class, track_condition, status, race_time_local, and start_time_utc. The meeting object repeats venue metadata including venue_abbrev, meeting_type, and timezone. The runners array is the core payload: each runner carries saddlecloth_number, barrier, horse_name, horse_slug, age, sex, is_emergency, is_scratched, jockey, trainer, form string, and public bookmaker win odds. A runner_count integer and an other_races array listing sibling races at the same meeting are also returned.

Coverage and Scope

Data is restricted to the current racing day; there is no historical date parameter on either endpoint. Coverage is Australian and New Zealand thoroughbred meetings only — harness and greyhound codes are not included. Both slugs required by get_race_fields are stable keys sourced directly from list_meetings, making a two-step call pattern the standard integration flow.

Reliability & maintenanceVerified

The Racenet API is a managed, monitored endpoint for racenet.com.au — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when racenet.com.au 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 racenet.com.au 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
56m 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 a live race-day schedule sorted by race_time_local for each Australian state.
  • Build a runner comparison tool using barrier, saddlecloth_number, and bookmaker win odds from get_race_fields.
  • Alert bettors when is_scratched flips to true for a runner they have bookmarked.
  • Aggregate jockey and trainer workloads across all meetings returned by list_meetings on a given day.
  • Filter today's barrier trials by checking for group = 'Barrier Trials' in the meetings listing.
  • Show track condition and race class alongside odds for in-play or pre-race betting dashboards.
  • Cross-reference horse_slug across races to identify runners contesting multiple events on the same day.
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 Racenet have an official developer API?+
Racenet does not publish a documented public developer API. There is no official API portal or documented REST/GraphQL interface available to third-party developers.
What does `list_meetings` return for New Zealand venues?+
New Zealand venues appear in the same response as Australian meetings when no country filter is applied. Their group field is set to 'International' rather than 'Australia', and their country and timezone fields reflect the NZ venue. Passing country with the appropriate value restricts the listing to one country only.
Does the API cover historical racing dates or future race cards?+
The API covers the current racing day only. Both list_meetings and get_race_fields reflect Racenet's 'Today' view; there is no date parameter to query past results or advance cards. You can fork this API on Parse and revise it to add a date-parameterised endpoint if historical or upcoming data is needed.
Are harness racing or greyhound meetings included?+
The API covers thoroughbred meetings only, including barrier trials. Harness and greyhound meetings are not returned by either endpoint. You can fork this API on Parse and revise it to target those race codes if your use case requires them.
How granular is the odds data returned by `get_race_fields`?+
Each runner in the runners array includes public bookmaker win odds as a single figure per runner. Place odds, exotic market prices (quinella, exacta, trifecta), and fluctuation history are not part of the current response shape. You can fork this API on Parse and revise it to add additional market data if a wider odds set is required.
Page content last updated . Spec covers 2 endpoints from racenet.com.au.
Related APIs in SportsSee all →
form.tab.com.au API
Access data from form.tab.com.au.
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.
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.
tab.com.au API
Access live horse racing meetings, race cards, fixed odds, and results from TAB Australia. Retrieve real-time sports betting information and racing data, including upcoming races, current odds, and historical race outcomes.
neds.com.au API
Get up-to-date horse racing information from Neds, including upcoming races, event details, and past results. View which races are next to jump and access comprehensive race data all in one place.
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.
sportinglife API
Access comprehensive UK and Irish horse racing racecards from Sporting Life to view meeting schedules, race details, and detailed runner information with form analysis. Plan your betting strategy with up-to-date racecard data including horse forms and race conditions all in one place.
attheraces.com API
Access comprehensive horse racing intelligence from At The Races, including detailed racecards, draw statistics, pace analysis, and form scan data to inform your betting decisions. Get all the performance metrics and positional data you need to analyze races and horses in one place.