---
title: "Results"
method: GET
path: "/v1/results"
tags: ["Results", "Standard Plan", "Pro Plan"]
---

# Results

`GET /v1/results`

<h4>Get historic results for all races in the last 12 months</h4><table><tbody><tr><td><b>Min. Required Plan</b></td><td>Standard</td></tr><tr><td><b>Rate Limit</b></td><td>5 requests per second</td></tr><tr><td><b>Add-ons</b></td><td><b>[Optional] Core database historical results add-on</b>: users on the Pro Plan can pay a one-time fee of £499 to remove the 12 month restriction and access over 20 years of results from this endpoint. Contact <a href='mailto:support@theracingapi.com'>support@theracingapi.com</a> for information.</td></tr></tbody></table><h4>Efficiently querying and exporting results data</h4><p>While the parameters for this endpoint allow for a wide date range to be set (utilising 'start_date' and 'end_date'), the necessary use of 'skip' to access all results for a wide date range query will reduce perfomance the larger that range is.</p><p>ℹ️ The most efficient way to query results data over time is to build a list of dates within your date range, then make queries for each date in that list. A sample python script outlining this method can be viewed here: <a href='https://gist.github.com/theracingapi/4d492dbdba58c2072fe4f98ee090126f' target='_blank'>https://gist.github.com/theracingapi/4d492dbdba58c2072fe4f98ee090126f</a></p>

## Query parameters

- `start_date` string, nullable — <p>Query from date with format YYYY-MM-DD, e.g. <code>2020-01-01</code></p><p><b>Default:</b> 365 days ago. Limited to up to 365 days in the past; pro plan users can purchase the historical results add-on to remove this limitation and query back to 2005-01-01.</p>
- `end_date` string, nullable — <p>Query to date with format YYYY-MM-DD, e.g. <code>2020-01-01</code></p><p><b>Default:</b> Today's date. Maximum range between start and end date is 365 days.</p>
- `region` string[], nullable — <p>Query by region codes. Get the full list <a href='https://api.theracingapi.com/documentation#tag/Courses/operation/list_regions_v1_courses_regions_get'>here</a>.</p><p>Note: If the course query parameter is specified, this will be ignored.</p>
- `course` string[], nullable — Query by course ids. Get the full list <a href='https://api.theracingapi.com/documentation#tag/Courses/operation/list_courses_v1_courses_get'>here</a>.
- `type` string[], nullable — <p>Query by race type</p><p>Options: <code>chase</code>, <code>flat</code>, <code>hurdle</code>, <code>nh_flat</code></p>
- `going` string[], nullable — <p>Query by going</p><p>Options: <code>fast</code>, <code>firm</code>, <code>good</code>, <code>good_to_firm</code>, <code>good_to_soft</code>, <code>good_to_yielding</code>, <code>hard</code>, <code>heavy</code>, <code>holding</code>, <code>muddy</code>, <code>sloppy</code>, <code>slow</code>, <code>soft</code>, <code>soft_to_heavy</code>, <code>standard</code>, <code>standard_to_fast</code>, <code>standard_to_slow</code>, <code>very_soft</code>, <code>yielding</code>, <code>yielding_to_soft</code></p>
- `race_class` string[], nullable — <p>Query by class</p><p>Options: <code>class_1</code>, <code>class_2</code>, <code>class_3</code>, <code>class_4</code>, <code>class_5</code>, <code>class_6</code>, <code>class_7</code></p>
- `min_distance_y` integer, nullable — <p>Query by minimum race distance (yards)</p>
- `max_distance_y` integer, nullable — <p>Query by maximum race distance (yards)</p>
- `age_band` string[], nullable — <p>Query by age band</p><p>Options: <code>10yo+</code>, <code>2-3yo</code>, <code>2yo</code>, <code>2yo+</code>, <code>3-4yo</code>, <code>3-5yo</code>, <code>3-6yo</code>, <code>3yo</code>, <code>3yo+</code>, <code>4-5yo</code>, <code>4-6yo</code>, <code>4-7yo</code>, <code>4-8yo</code>, <code>4yo</code>, <code>4yo+</code>, <code>5-6yo</code>, <code>5-7yo</code>, <code>5-8yo</code>, <code>5yo</code>, <code>5yo+</code>, <code>6-7yo</code>, <code>6yo</code>, <code>6yo+</code>, <code>7yo+</code>, <code>8yo+</code>, <code>9yo+</code></p>
- `sex_restriction` string[], nullable — <p>Query by sex restriction</p><p>Options: <code>c&f</code>, <code>c&g</code>, <code>f</code>, <code>f&m</code>, <code>m</code>, <code>m&g</code></p>
- `limit` integer, nullable
- `skip` integer, nullable

## Response `200`

Successful Response

- ResultsStandardPage
  - `results` ResultStandard[], nullable, required — The matching results.
    - `race_id` string, required — Unique identifier for the race, prefixed `rac_`.
    - `date` string, required — Date of the race, `YYYY-MM-DD`, in local track time.
    - `region` string, required — Region code for the racecourse, e.g. `GB`, `IRE`.
    - `course` string, required — Racecourse name. Non-GB courses carry a country suffix, e.g. `Ballinrobe (IRE)`.
    - `course_id` string, required — Unique identifier for the racecourse, prefixed `crs_`.
    - `off` string, required — Scheduled off time, local track time, 12-hour clock without meridiem, e.g. `8:25`.
    - `off_dt` string, nullable — Scheduled off time as a timezone-aware ISO 8601 datetime. Prefer this over `off` and `date` for any time arithmetic.
    - `race_name` string, required — Full race title, including sponsor.
    - `type` string, required — Race type, e.g. `Flat`, `Hurdle`, `Chase`.
    - `class` string, required — Official race class, e.g. `Class 3`. Empty where the racing authority does not class the race.
    - `pattern` string, required — Pattern or graded status where applicable. Empty for ordinary races.
    - `rating_band` string, required — Official rating band for a handicap, e.g. `0-100`. Empty for non-handicaps.
    - `age_band` string, required — Age restriction on entry, e.g. `4yo+`.
    - `sex_rest` string, required — Sex restriction on entry. Empty when the race is open.
    - `dist` string, required — Race distance in miles and furlongs, e.g. `2m7f`.
    - `dist_y` string, required — Race distance in yards.
    - `dist_m` string, required — Race distance in metres.
    - `dist_f` string, required — Race distance in furlongs, e.g. `23f`.
    - `going` string, required — Official going, e.g. `Good`.
    - `surface` string, nullable — Racing surface, e.g. `Turf`, `AW`.
    - `jumps` string, nullable — Description of the obstacles jumped, e.g. `12 hurdles`. Empty for flat races.
    - `runners` RunnerStandard[], required — Runners, in finishing order.
      - `horse_id` string, required — Unique identifier for the horse, prefixed `hrs_`.
      - `horse` string, required — Horse name. Non-GB-bred horses carry a country suffix, e.g. `Mephisto (IRE)`.
      - `sp` string, required — Starting price in fractional form, e.g. `15/2`.
      - `sp_dec` string, required — Starting price in decimal form, e.g. `8.50`.
      - `bsp` string, nullable — BSP. Empty when unavailable. Standard and Pro plans only.
      - `number` string, required — Saddlecloth number.
      - `position` string, required — Finishing position. Non-completions are given as a code, e.g. `PU` pulled up, `F` fell, `UR` unseated rider, `DSQ` disqualified.
      - `draw` string, required — Stall number for flat races. Empty for jumps racing.
      - `btn` string, required — Lengths beaten by the horse that finished immediately in front. `0` for the winner.
      - `ovr_btn` string, required — Cumulative lengths beaten by the winner. `0` for the winner.
      - `age` string, required — Age in years at the date of the race, as a string.
      - `sex` string, required — Single-letter sex code, e.g. `G`, `F`, `C`, `M`.
      - `weight` string, required — Weight carried in stones and pounds, e.g. `11-12`.
      - `weight_lbs` string, required — Weight carried in pounds.
      - `headgear` string, required — Headgear worn, as a letter code, e.g. `b` blinkers, `v` visor, `t` tongue tie, `h` hood, `p` cheekpieces. Empty when none.
      - `time` string, required — The horse's finishing time, e.g. `5:44.90`.
      - `or` string, required — Official handicap rating carried in this race. Empty when the horse was unrated.
      - `rpr` string, required — **Removed June 2026.** Always returns an empty string. Use `performance_rating` for a performance figure.
      - `tsr` string, required — **Removed June 2026.** Always returns an empty string. Use `speed_rating` for a speed figure.
      - `prize` string, required — Prize money won by this horse, including the currency symbol. Empty when the horse was unplaced.
      - `jockey` string, required — Jockey who rode.
      - `jockey_claim_lbs` string, nullable — Weight allowance claimed by the jockey, in pounds. `0` when none.
      - `jockey_id` string, required — Unique identifier for the jockey, prefixed `jky_`.
      - `trainer` string, required — Trainer of the horse.
      - `trainer_id` string, required — Unique identifier for the trainer, prefixed `trn_`.
      - `owner` string, required — Owner of the horse.
      - `owner_id` string, required — Unique identifier for the owner, prefixed `own_`.
      - `sire` string, required — The horse's sire.
      - `sire_id` string, required — Unique identifier for the sire, prefixed `sir_`.
      - `dam` string, required — The horse's dam.
      - `dam_id` string, required — Unique identifier for the dam, prefixed `dam_`.
      - `damsire` string, required — The dam's sire.
      - `damsire_id` string, required — Unique identifier for the damsire, prefixed `dsi_`.
      - `comment` string, required — Our analyst's post-race note on the runner's performance. Empty when we have no note.
      - `silk_url` string, nullable — URL of the owner's silks as an image.
      - `performance_rating` string, nullable — Our performance rating for this run, as a whole number. `-` when we have no rating.
      - `speed_rating` string, nullable — Our speed rating for this run, as a whole number. `-` when we have no rating.
    - `winning_time_detail` string, nullable — Winning time with the comparison to standard, e.g. `5m 44.90s (slow by 7.90s)`.
    - `comments` string, nullable — Official race-level comments from the racing authority, such as stewards' notes. Empty when none.
    - `non_runners` string, nullable — Declared non-runners, with the reason in brackets where given.
    - `tote_win` string, nullable — Tote win dividend to a unit stake, including the currency symbol.
    - `tote_pl` string, nullable — Tote place dividends, one per placed horse, space separated.
    - `tote_ex` string, nullable — Tote Exacta dividend.
    - `tote_csf` string, nullable — Computer Straight Forecast dividend.
    - `tote_tricast` string, nullable — Computer Tricast dividend. Empty when the race did not qualify.
    - `tote_trifecta` string, nullable — Tote Trifecta dividend. Empty when not offered on the race.
  - `total` integer, required — Total number of matching records.
  - `limit` integer, required — The page size applied.
  - `skip` integer, required — The number of records skipped.
  - `query` array[], required — The query parameters this response was generated from, echoed back as name/value pairs.
    - unknown[]
      - unknown

## Other responses

- `404` — Not found
- `422` — Validation Error

---

[API](https://skmtc.net/theracingapi/apis/the-racing-api.md) · [All operations](https://skmtc.net/theracingapi/apis/the-racing-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/theracingapi/the-racing-api/revisions/c923f2a0703a/schema)
