Discover/At The Races API
live

At The Races APIattheraces.com

Access At The Races racecards, draw bias stats, pace analysis, FormScan collateral form, and expert tips via 5 structured endpoints.

This API takes change requests — .
Endpoint health
verified 8h ago
get_formscan
get_tips
get_racecard
get_draw_data
get_pace_data
5/5 passing latest checkself-healing
Endpoints
5
Updated
5d ago

What is the At The Races API?

This API exposes 5 endpoints covering At The Races racecard intelligence, including full runner details, draw bias statistics, pace analysis, FormScan collateral form data, and daily expert tips. The get_racecard endpoint alone returns over a dozen fields per runner — draw, form string, official rating, star rating, jockey, trainer, age/weight, betting forecast, and expert commentary — for any UK or Irish race identified by course, date, and time.

This call costs3 credits / call— charged only on success
Try it
Race date in D-Month-YYYY format (e.g. 3-August-2026).
Race time in HHMM format without colon (e.g. 1440 for 2:40 PM).
Course name as it appears in the URL path, hyphenated for multi-word names (e.g. Ffos-Las, Newton-Abbot, Nottingham).
api.parse.bot/scraper/8d6569fa-c1a6-4496-b31e-5a7c6abc854b/<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/8d6569fa-c1a6-4496-b31e-5a7c6abc854b/get_racecard?date=7-August-2026&time=1440&course=Nottingham' \
  -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 attheraces-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.

"""Walkthrough: At The Races SDK — fetch tips, racecards, and race analysis."""
from parse_apis.At_The_Races_Racecard_API import AtTheRaces, RaceNotFound

client = AtTheRaces()

# Get today's expert tips for a course
tips = client.tip_collections.get(course="Nottingham")
print(f"Tips for {tips.course} on {tips.date}:")
for tip in tips.tips[:3]:
    print(f"  {tip.race_time} {tip.race_name}: {tip.top_tip_horse} (rating {tip.top_tip_rating})")

# Fetch the full racecard for a specific race
racecard = client.racecards.get(course="Nottingham", date="3-August-2026", time="1440")
print(f"\nRace: {racecard.race_name} — {racecard.going}, {racecard.distance}")
for runner in racecard.runners[:3]:
    print(f"  #{runner.number} {runner.horse_name} (Draw {runner.draw}) - Jockey: {runner.jockey}")

# Get draw bias analysis
draw = client.draw_analyses.get(course="Nottingham", date="3-August-2026", time="1440")
for entry in draw.draw_data[:3]:
    print(f"  Draw {entry.draw} ({entry.horse_name}): bias {entry.draw_bias_result}")

# Handle a non-existent race gracefully
try:
    missing = client.racecards.get(course="NonExistent", date="01-January-2020", time="0000")
except RaceNotFound as e:
    print(f"\nRace not found: {e}")

print("\nExercised: tip_collections.get / racecards.get / draw_analyses.get / RaceNotFound")
All endpoints · 5 totalmissing one? ·

Retrieve the full racecard for a specific race including runner details, form, jockey/trainer, age/weight, official rating, expert view commentary, star ratings, and betting forecast.

Input
ParamTypeDescription
daterequiredstringRace date in D-Month-YYYY format (e.g. 3-August-2026).
timerequiredstringRace time in HHMM format without colon (e.g. 1440 for 2:40 PM).
courserequiredstringCourse name as it appears in the URL path, hyphenated for multi-word names (e.g. Ffos-Las, Newton-Abbot, Nottingham).
Response
{
  "type": "object",
  "fields": {
    "url": "string",
    "date": "string",
    "time": "string",
    "going": "string",
    "prize": "string",
    "course": "string",
    "race_id": "string",
    "runners": "array of runner objects with draw, number, rating, star_rating, form, horse_name, horse_id, age_weight, official_rating, jockey, trainer, expert_view, headgear, silk_url, silk_description",
    "distance": "string",
    "forecast": "string",
    "race_name": "string",
    "race_class": "string",
    "venue_name": "string",
    "description": "string",
    "draw_advantage": "string",
    "number_of_runners": "integer"
  },
  "sample": {
    "data": {
      "url": "https://www.attheraces.com/racecard/Nottingham/3-August-2026/1440",
      "date": "3-August-2026",
      "time": "1440",
      "going": "Good to Firm (Good in places)",
      "prize": "Winner £5,400",
      "course": "Nottingham",
      "race_id": "1603165",
      "runners": [
        {
          "draw": "6",
          "form": "3-3",
          "jockey": "S M Levey",
          "number": "1",
          "rating": "101",
          "trainer": "R Hannon",
          "horse_id": "3807019",
          "age_weight": "3 9-2",
          "horse_name": "Aura Champagne (IRE)",
          "expert_view": "Improved for debut experience...",
          "star_rating": "4",
          "official_rating": "-"
        }
      ],
      "distance": "1m 75y",
      "forecast": "Forecast: 9/4 Yimmna...",
      "race_name": "Nottingham - 03/08/26 - 14:40 - Class 4 horse race, 1m 0f 75y",
      "race_class": "GBB Race | Class 4 | 3YO plus",
      "venue_name": "Nottingham Racecourse",
      "description": "At The Races Presents - Nottingham",
      "draw_advantage": "High",
      "number_of_runners": 5
    },
    "status": "success"
  }
}

About the At The Races API

Racecard and Runner Data

The get_racecard endpoint takes three required inputs — course (hyphenated, e.g. Ffos-Las), date (e.g. 23-June-2026), and time (HHMM, e.g. 1430) — and returns a full runner list with fields including horse_name, horse_id, draw, form, age_weight, official_rating, star_rating, jockey, trainer, forecast, and expert_view commentary. Race-level fields include going, prize, distance, and a race_id you can reuse across the other endpoints.

Draw Bias and Pace Analysis

get_draw_data returns per-draw-position statistics (expected_wins, actual_wins, draw_bias_result) for each runner in the race, useful for flat racing where stall position materially affects outcome. get_pace_data returns a pace_rating, pace_position_pct, and pace_description for each runner, indicating whether a horse is likely to race prominently or from behind — data that helps model front-runner vs. hold-up scenarios.

FormScan and Expert Tips

get_formscan returns ATR's collateral form data: a ranked list of runners with an index_rating and an array of comparisons — text strings describing where two horses have met before and what the form line implies. This is distinct from raw form figures; it links horses that have run against common rivals. get_tips operates differently from the other four endpoints: it takes only course as input and returns one tip object per race for that day, including top_tip_horse, watch_out_horse, top_tip_rating, watch_out_rating, and a commentary string from ATR's daily expert guide.

Reliability & maintenanceVerified

The At The Races API is a managed, monitored endpoint for attheraces.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when attheraces.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 attheraces.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
8h ago
Latest check
5/5 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 draw bias filter that flags races where draw_bias_result strongly favours low or high stalls.
  • Aggregate pace_description fields across a field to identify races likely to have an early pace collapse.
  • Compare official_rating against star_rating to surface runners ATR experts rate above their handicap mark.
  • Pull get_formscan index_rating data to rank runners by collateral form strength without manual cross-referencing.
  • Automate a daily tips digest by calling get_tips for each day's active courses and collating top_tip_horse selections.
  • Cross-reference forecast odds with official_rating to find runners trading shorter or longer than their rating suggests.
  • Feed pace_position_pct values into a race modeller to predict likely race shape and pace scenarios.
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 At The Races have an official developer API?+
At The Races does not publish an official public developer API. There is no documented REST or GraphQL interface available to third-party developers on their site.
What does `get_formscan` return and how is it different from the form string in `get_racecard`?+
The form field in get_racecard is the standard recent-results string (e.g. '1-2-3'). get_formscan returns ATR's FormScan analysis: each entry has a rank, an index_rating, and a comparisons array of text strings that describe specific head-to-head or collateral form links between runners in the same race. It is a derived analytical layer, not raw form figures.
Does `get_tips` return tips for all UK and Irish courses in a single call?+
No — get_tips takes a single course parameter and returns tips only for races at that course on the current day. To cover a full day's racing across multiple venues you would need one call per course. You can fork this API on Parse and revise it to add a multi-course batch tips endpoint.
Are historical racecards available, or is the data limited to upcoming races?+
The endpoints are structured around race date and time inputs without an explicit constraint to future dates, but ATR's racecard pages are oriented toward upcoming and same-day fixtures. Historical results pages with full past form data are not currently covered by these endpoints. You can fork this API on Parse and revise it to add an endpoint targeting ATR's results section.
Does `get_draw_data` return draw statistics for all race types, including jumps races?+
Draw position is only meaningful in flat racing; jumps races do not use stall draws. get_draw_data will return the data structure ATR publishes for the requested race, but for National Hunt fixtures the draw bias fields will not carry meaningful values. The endpoint itself does not filter by race type, so callers should apply that logic on their side.
Page content last updated . Spec covers 5 endpoints from attheraces.com.
Related APIs in SportsSee all →
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.
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.
atg.se API
Access comprehensive horse racing data from ATG.se, including race calendars, detailed race information, horse profiles, starting lineups, and results. Retrieve up-to-date information on races, horses, drivers, betting pools, and outcomes.
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.
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.
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.
myracing.com API
Get today's horse racing tips and predictions from MyRacing, including the NAP of the day, accumulators, doubles, and Lucky 15 bets with horse names, odds, venues, and expert analysis. Stay ahead of the races by accessing curated betting recommendations 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.