response = client.send(\n request, HttpResponse.BodyHandlers.ofString());\nSystem.out.println(response.body());"
label: Java
- lang: Go
source: "package main\n\nimport (\n \"fmt\"\n \"io\"\n \"net/http\"\n \"net/url\"\n)\n\nfunc main() {\n params := url.Values{}\n url := \"https://api.theracingapi.com/v1/racecards/summaries?\" + params.Encode()\n\n client := &http.Client{}\n req, _ := http.NewRequest(\"GET\", url, nil)\n req.SetBasicAuth(\"USERNAME\", \"PASSWORD\")\n\n resp, _ := client.Do(req)\n defer resp.Body.Close()\n body, _ := io.ReadAll(resp.Body)\n fmt.Println(string(body))\n}"
label: Go
- lang: C#
source: "using System.Net.Http.Headers;\nusing System.Text;\nusing System.Web;\n\nvar params_ = HttpUtility.ParseQueryString(string.Empty);\nvar url = $\"https://api.theracingapi.com/v1/racecards/summaries?{params_}\";\n\nvar client = new HttpClient();\nvar credentials = Convert.ToBase64String(\n Encoding.ASCII.GetBytes(\"USERNAME:PASSWORD\"));\nclient.DefaultRequestHeaders.Authorization =\n new AuthenticationHeaderValue(\"Basic\", credentials);\n\nvar response = await client.GetAsync(url);\nvar content = await response.Content.ReadAsStringAsync();\nConsole.WriteLine(content);"
label: .NET
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/v1/racecards/{horse_id}/results:
get:
tags:
- Racecards
summary: The Racing API Racecard Horse Results
description: Get historic results for a horse on any upcoming racecard.
| Min. Required Plan | Basic |
| Rate Limit | 5 requests per second |
operationId: racecard_horse_results_v1_racecards__horse_id__results_get
security:
- HTTPBasic: []
parameters:
- name: horse_id
in: path
required: true
schema:
type: string
title: Horse Id
- name: start_date
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: Query from date with format YYYY-MM-DD, e.g. 2020-01-01
title: Start Date
description: Query from date with format YYYY-MM-DD, e.g. 2020-01-01
- name: end_date
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: Query to date with format YYYY-MM-DD, e.g. 2020-01-01
title: End Date
description: Query to date with format YYYY-MM-DD, e.g. 2020-01-01
- name: region
in: query
required: false
schema:
anyOf:
- type: array
items:
type: string
- type: 'null'
description: 'Query by region codes. Get the full list here.
Note: If the course query parameter is specified, this will be ignored.
'
title: Region
description: 'Query by region codes. Get the full list here.
Note: If the course query parameter is specified, this will be ignored.
'
- name: course
in: query
required: false
schema:
anyOf:
- type: array
items:
type: string
- type: 'null'
description: Query by course ids. Get the full list here.
title: Course
description: Query by course ids. Get the full list here.
- name: type
in: query
required: false
schema:
anyOf:
- type: array
items:
type: string
- type: 'null'
description: 'Query by race type
Options: chase, flat, hurdle, nh_flat
'
title: Type
description: 'Query by race type
Options: chase, flat, hurdle, nh_flat
'
- name: going
in: query
required: false
schema:
anyOf:
- type: array
items:
type: string
- type: 'null'
description: 'Query by going
Options: fast, firm, good, good_to_firm, good_to_soft, good_to_yielding, hard, heavy, holding, muddy, sloppy, slow, soft, soft_to_heavy, standard, standard_to_fast, standard_to_slow, very_soft, yielding, yielding_to_soft
'
title: Going
description: 'Query by going
Options: fast, firm, good, good_to_firm, good_to_soft, good_to_yielding, hard, heavy, holding, muddy, sloppy, slow, soft, soft_to_heavy, standard, standard_to_fast, standard_to_slow, very_soft, yielding, yielding_to_soft
'
- name: race_class
in: query
required: false
schema:
anyOf:
- type: array
items:
type: string
- type: 'null'
description: 'Query by class
Options: class_1, class_2, class_3, class_4, class_5, class_6, class_7
'
title: Race Class
description: 'Query by class
Options: class_1, class_2, class_3, class_4, class_5, class_6, class_7
'
- name: min_distance_y
in: query
required: false
schema:
anyOf:
- type: integer
- type: 'null'
description: Query by minimum race distance (yards)
title: Min Distance Y
description: Query by minimum race distance (yards)
- name: max_distance_y
in: query
required: false
schema:
anyOf:
- type: integer
- type: 'null'
description: Query by maximum race distance (yards)
title: Max Distance Y
description: Query by maximum race distance (yards)
- name: age_band
in: query
required: false
schema:
anyOf:
- type: array
items:
type: string
- type: 'null'
description: 'Query by age band
Options: 10yo+, 2-3yo, 2yo, 2yo+, 3-4yo, 3-5yo, 3-6yo, 3yo, 3yo+, 4-5yo, 4-6yo, 4-7yo, 4-8yo, 4yo, 4yo+, 5-6yo, 5-7yo, 5-8yo, 5yo, 5yo+, 6-7yo, 6yo, 6yo+, 7yo+, 8yo+, 9yo+
'
title: Age Band
description: 'Query by age band
Options: 10yo+, 2-3yo, 2yo, 2yo+, 3-4yo, 3-5yo, 3-6yo, 3yo, 3yo+, 4-5yo, 4-6yo, 4-7yo, 4-8yo, 4yo, 4yo+, 5-6yo, 5-7yo, 5-8yo, 5yo, 5yo+, 6-7yo, 6yo, 6yo+, 7yo+, 8yo+, 9yo+
'
- name: sex_restriction
in: query
required: false
schema:
anyOf:
- type: array
items:
type: string
- type: 'null'
description: 'Query by sex restriction
Options: c&f, c&g, f, f&m, m, m&g
'
title: Sex Restriction
description: 'Query by sex restriction
Options: c&f, c&g, f, f&m, m, m&g
'
- name: limit
in: query
required: false
schema:
anyOf:
- type: integer
maximum: 100
minimum: 1
- type: 'null'
title: Limit
default: 50
- name: skip
in: query
required: false
schema:
anyOf:
- type: integer
- type: 'null'
title: Skip
default: 0
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/ResultsBasicPage'
'404':
description: Not found
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
x-codeSamples:
- lang: Shell
source: 'curl -u USERNAME:PASSWORD https://api.theracingapi.com/v1/racecards/{horse_id}/results
'
label: cURL
- lang: Python
source: 'import requests
from requests.auth import HTTPBasicAuth
url = "https://api.theracingapi.com/v1/racecards/{horse_id}/results"
params = {}
response = requests.request("GET", url, auth=HTTPBasicAuth(''USERNAME'',''PASSWORD''), params=params)
print(response.json())'
label: Python3
- lang: PHP
source: ""
label: PHP
- lang: JavaScript
source: "const username = 'USERNAME';\nconst password = 'PASSWORD';\nconst credentials = btoa(`${username}:${password}`);\n\nconst params = new URLSearchParams({});\nconst url = `https://api.theracingapi.com/v1/racecards/{horse_id}/results?${params}`;\n\nfetch(url, {\n method: 'GET',\n headers: {\n 'Authorization': `Basic ${credentials}`\n }\n})\n.then(response => response.json())\n.then(data => console.log(data))\n.catch(error => console.error('Error:', error));"
label: Node.js
- lang: Ruby
source: 'require ''net/http''
require ''uri''
require ''json''
params = {}
uri = URI(''https://api.theracingapi.com/v1/racecards/{horse_id}/results'')
uri.query = URI.encode_www_form(params)
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Get.new(uri)
request.basic_auth(''USERNAME'', ''PASSWORD'')
response = http.request(request)
puts JSON.parse(response.body)'
label: Ruby
- lang: Java
source: "import java.net.http.*;\nimport java.util.Base64;\nimport java.util.Map;\n\nMap params = Map.of();\nString credentials = Base64.getEncoder()\n .encodeToString(\"USERNAME:PASSWORD\".getBytes());\n\nHttpClient client = HttpClient.newHttpClient();\nHttpRequest request = HttpRequest.newBuilder()\n .uri(URI.create(\"https://api.theracingapi.com/v1/racecards/{horse_id}/results\"))\n .header(\"Authorization\", \"Basic \" + credentials)\n .build();\n\nHttpResponse response = client.send(\n request, HttpResponse.BodyHandlers.ofString());\nSystem.out.println(response.body());"
label: Java
- lang: Go
source: "package main\n\nimport (\n \"fmt\"\n \"io\"\n \"net/http\"\n \"net/url\"\n)\n\nfunc main() {\n params := url.Values{}\n url := \"https://api.theracingapi.com/v1/racecards/{horse_id}/results?\" + params.Encode()\n\n client := &http.Client{}\n req, _ := http.NewRequest(\"GET\", url, nil)\n req.SetBasicAuth(\"USERNAME\", \"PASSWORD\")\n\n resp, _ := client.Do(req)\n defer resp.Body.Close()\n body, _ := io.ReadAll(resp.Body)\n fmt.Println(string(body))\n}"
label: Go
- lang: C#
source: "using System.Net.Http.Headers;\nusing System.Text;\nusing System.Web;\n\nvar params_ = HttpUtility.ParseQueryString(string.Empty);\nvar url = $\"https://api.theracingapi.com/v1/racecards/{horse_id}/results?{params_}\";\n\nvar client = new HttpClient();\nvar credentials = Convert.ToBase64String(\n Encoding.ASCII.GetBytes(\"USERNAME:PASSWORD\"));\nclient.DefaultRequestHeaders.Authorization =\n new AuthenticationHeaderValue(\"Basic\", credentials);\n\nvar response = await client.GetAsync(url);\nvar content = await response.Content.ReadAsStringAsync();\nConsole.WriteLine(content);"
label: .NET
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/v1/racecards/{race_id}/standard:
get:
tags:
- Racecards
summary: The Racing API Race Standard
description: Get a race scheduled for today or tomorrow (or if classified as a 'big race'), including runner odds for UK & Ireland races.
| Min. Required Plan | Standard |
| Rate Limit | 5 requests per second |
operationId: race_standard_v1_racecards__race_id__standard_get
security:
- HTTPBasic: []
parameters:
- name: race_id
in: path
required: true
schema:
type: string
title: Race Id
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/RacecardOdds'
'404':
description: Not found
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
x-codeSamples:
- lang: Shell
source: 'curl -u USERNAME:PASSWORD https://api.theracingapi.com/v1/racecards/{race_id}/standard
'
label: cURL
- lang: Python
source: 'import requests
from requests.auth import HTTPBasicAuth
url = "https://api.theracingapi.com/v1/racecards/{race_id}/standard"
params = {}
response = requests.request("GET", url, auth=HTTPBasicAuth(''USERNAME'',''PASSWORD''), params=params)
print(response.json())'
label: Python3
- lang: PHP
source: ""
label: PHP
- lang: JavaScript
source: "const username = 'USERNAME';\nconst password = 'PASSWORD';\nconst credentials = btoa(`${username}:${password}`);\n\nconst params = new URLSearchParams({});\nconst url = `https://api.theracingapi.com/v1/racecards/{race_id}/standard?${params}`;\n\nfetch(url, {\n method: 'GET',\n headers: {\n 'Authorization': `Basic ${credentials}`\n }\n})\n.then(response => response.json())\n.then(data => console.log(data))\n.catch(error => console.error('Error:', error));"
label: Node.js
- lang: Ruby
source: 'require ''net/http''
require ''uri''
require ''json''
params = {}
uri = URI(''https://api.theracingapi.com/v1/racecards/{race_id}/standard'')
uri.query = URI.encode_www_form(params)
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Get.new(uri)
request.basic_auth(''USERNAME'', ''PASSWORD'')
response = http.request(request)
puts JSON.parse(response.body)'
label: Ruby
- lang: Java
source: "import java.net.http.*;\nimport java.util.Base64;\nimport java.util.Map;\n\nMap params = Map.of();\nString credentials = Base64.getEncoder()\n .encodeToString(\"USERNAME:PASSWORD\".getBytes());\n\nHttpClient client = HttpClient.newHttpClient();\nHttpRequest request = HttpRequest.newBuilder()\n .uri(URI.create(\"https://api.theracingapi.com/v1/racecards/{race_id}/standard\"))\n .header(\"Authorization\", \"Basic \" + credentials)\n .build();\n\nHttpResponse response = client.send(\n request, HttpResponse.BodyHandlers.ofString());\nSystem.out.println(response.body());"
label: Java
- lang: Go
source: "package main\n\nimport (\n \"fmt\"\n \"io\"\n \"net/http\"\n \"net/url\"\n)\n\nfunc main() {\n params := url.Values{}\n url := \"https://api.theracingapi.com/v1/racecards/{race_id}/standard?\" + params.Encode()\n\n client := &http.Client{}\n req, _ := http.NewRequest(\"GET\", url, nil)\n req.SetBasicAuth(\"USERNAME\", \"PASSWORD\")\n\n resp, _ := client.Do(req)\n defer resp.Body.Close()\n body, _ := io.ReadAll(resp.Body)\n fmt.Println(string(body))\n}"
label: Go
- lang: C#
source: "using System.Net.Http.Headers;\nusing System.Text;\nusing System.Web;\n\nvar params_ = HttpUtility.ParseQueryString(string.Empty);\nvar url = $\"https://api.theracingapi.com/v1/racecards/{race_id}/standard?{params_}\";\n\nvar client = new HttpClient();\nvar credentials = Convert.ToBase64String(\n Encoding.ASCII.GetBytes(\"USERNAME:PASSWORD\"));\nclient.DefaultRequestHeaders.Authorization =\n new AuthenticationHeaderValue(\"Basic\", credentials);\n\nvar response = await client.GetAsync(url);\nvar content = await response.Content.ReadAsStringAsync();\nConsole.WriteLine(content);"
label: .NET
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
components:
schemas:
ValidationError:
properties:
loc:
items:
anyOf:
- type: string
- type: integer
type: array
title: Location
msg:
type: string
title: Message
type:
type: string
title: Error Type
input:
title: Input
ctx:
type: object
title: Context
type: object
required:
- loc
- msg
- type
title: ValidationError
ResultBasic:
properties:
race_id:
type: string
title: Race Id
date:
type: string
title: Date
region:
type: string
title: Region
course:
type: string
title: Course
course_id:
type: string
title: Course Id
'off':
type: string
title: 'Off'
off_dt:
anyOf:
- type: string
- type: 'null'
title: Off Dt
default: ''
race_name:
type: string
title: Race Name
type:
type: string
title: Type
class:
type: string
title: Class
pattern:
type: string
title: Pattern
rating_band:
type: string
title: Rating Band
age_band:
type: string
title: Age Band
sex_rest:
type: string
title: Sex Rest
dist:
type: string
title: Dist
dist_y:
type: string
title: Dist Y
dist_m:
type: string
title: Dist M
dist_f:
type: string
title: Dist F
going:
type: string
title: Going
surface:
anyOf:
- type: string
- type: 'null'
title: Surface
default: ''
jumps:
anyOf:
- type: string
- type: 'null'
title: Jumps
default: ''
runners:
items:
$ref: '#/components/schemas/app__models__result__RunnerBasic'
type: array
title: Runners
winning_time_detail:
anyOf:
- type: string
- type: 'null'
title: Winning Time Detail
default: ''
comments:
anyOf:
- type: string
- type: 'null'
title: Comments
default: ''
non_runners:
anyOf:
- type: string
- type: 'null'
title: Non Runners
default: ''
tote_win:
anyOf:
- type: string
- type: 'null'
title: Tote Win
default: ''
tote_pl:
anyOf:
- type: string
- type: 'null'
title: Tote Pl
default: ''
tote_ex:
anyOf:
- type: string
- type: 'null'
title: Tote Ex
default: ''
tote_csf:
anyOf:
- type: string
- type: 'null'
title: Tote Csf
default: ''
tote_tricast:
anyOf:
- type: string
- type: 'null'
title: Tote Tricast
default: ''
tote_trifecta:
anyOf:
- type: string
- type: 'null'
title: Tote Trifecta
default: ''
type: object
required:
- race_id
- date
- region
- course
- course_id
- 'off'
- race_name
- type
- class
- pattern
- rating_band
- age_band
- sex_rest
- dist
- dist_y
- dist_m
- dist_f
- going
- runners
title: ResultBasic
example:
age_band: 4yo+
class: ''
comments: ''
course: Ballinrobe (IRE)
course_id: crs_4550
date: '2025-08-11'
dist: 2m7f
dist_f: 23f
dist_m: '4625'
dist_y: '5058'
going: Good
jumps: 12 hurdles
non_runners: Diamonds Diva (reserve), Great Rainbow (reserve), Loughrask Rainbow (reserve)
'off': '8:25'
off_dt: '2025-08-11T20:25:00+01:00'
pattern: ''
race_id: rac_11715730
race_name: J.J. Burke Peugeot Handicap Hurdle
rating_band: 0-100
region: IRE
runners:
- age: '8'
btn: '0'
comment: Held up in rear - headway 3 out - went third after 2 out - challenging when not fluent last - led home turn - ridden clear final furlong(op 13/2)
dam: Save Me The Waltz (FR)
dam_id: dam_4189605
damsire: Halling
damsire_id: dsi_675241
draw: ''
headgear: v
horse: Mephisto (IRE)
horse_id: hrs_19359270
jockey: Shane Fitzgerald
jockey_claim_lbs: '0'
jockey_id: jky_302916
number: '2'
or: '98'
ovr_btn: '0'
owner: Restricted Movement Syndicate
owner_id: own_1204876
position: '1'
prize: €5900
rpr: '105'
sex: G
silk_url: https://www.url-for-silk.com/svg/456789.svg
sire: Kendargent (FR)
sire_id: sir_4514419
sp: 15/2
sp_dec: '8.50'
time: '5:44.90'
trainer: Gerard Keane
trainer_id: trn_86382
tsr: '64'
weight: 11-12
weight_lbs: '166'
sex_rest: ''
surface: Turf
tote_csf: €300.55
tote_ex: €253.10
tote_pl: €2.30 €5.80 €4.20
tote_tricast: €5228.29
tote_trifecta: ''
tote_win: €8.50
type: Hurdle
winning_time_detail: 5m 44.90s (slow by 7.90s)
RunnerTrainer14Days:
properties:
runs:
anyOf:
- type: string
- type: 'null'
title: Runs
default: ''
wins:
anyOf:
- type: string
- type: 'null'
title: Wins
default: ''
percent:
anyOf:
- type: string
- type: 'null'
title: Percent
default: ''
type: object
title: RunnerTrainer14Days
example:
percent: '20'
runs: '25'
wins: '5'
ResultsBasicPage:
properties:
results:
anyOf:
- items:
$ref: '#/components/schemas/ResultBasic'
type: array
- type: 'null'
title: Results
total:
type: integer
title: Total
limit:
type: integer
title: Limit
skip:
type: integer
title: Skip
query:
items:
items: {}
type: array
type: array
title: Query
type: object
required:
- results
- total
- limit
- skip
- query
title: ResultsBasicPage
RacecardSummary:
properties:
date:
type: string
title: Date
region:
type: string
title: Region
course_id:
type: string
title: Course Id
course:
type: string
title: Course
race_id:
type: string
title: Race Id
race_name:
type: string
title: Race Name
race_class:
type: string
title: Race Class
off_time:
type: string
title: Off Time
off_dt:
anyOf:
- type: string
- type: 'null'
title: Off Dt
default: ''
big_race:
anyOf:
- type: boolean
- type: 'null'
title: Big Race
default: false
is_abandoned:
anyOf:
- type: boolean
- type: 'null'
title: Is Abandoned
default: false
type: object
required:
- date
- region
- course_id
- course
- race_id
- race_name
- race_class
- off_time
title: RacecardSummary
example:
big_race: false
course: Bahrain
course_id: crs_22594
date: '2026-02-06'
is_abandoned: false
off_dt: '2026-02-06T14:00:00+00:00'
off_time: '2:00'
race_class: ''
race_id: rac_11868129
race_name: Race 3 (Conditions Race) (Turf)
region: BHR
RunnerStableTour:
properties:
quote:
anyOf:
- type: string
- type: 'null'
title: Quote
default: ''
type: object
title: RunnerStableTour
example:
quote: He's been working well at home and we're hopeful.
RunnerQuote:
properties:
date:
anyOf:
- type: string
- type: 'null'
title: Date
default: ''
horse:
anyOf:
- type: string
- type: 'null'
title: Horse
default: ''
horse_id:
anyOf:
- type: string
- type: 'null'
title: Horse Id
default: ''
race:
anyOf:
- type: string
- type: 'null'
title: Race
default: ''
race_id:
anyOf:
- type: string
- type: 'null'
title: Race Id
default: ''
course:
anyOf:
- type: string
- type: 'null'
title: Course
default: ''
course_id:
anyOf:
- type: string
- type: 'null'
title: Course Id
default: ''
distance_f:
anyOf:
- type: string
- type: 'null'
title: Distance F
default: ''
distance_y:
anyOf:
- type: string
- type: 'null'
title: Distance Y
default: ''
quote:
anyOf:
- type: string
- type: 'null'
title: Quote
default: ''
type: object
title: RunnerQuote
example:
course: Ascot
course_id: crs_52
date: '2024-06-15'
distance_f: 12f
distance_y: '2640'
horse: Frankel
horse_id: hrs_5344171
quote: He ran a great race and showed his class.
race: King George VI
race_id: rac_12345678
app__models__racecards__RunnerOdds:
properties:
horse_id:
type: string
title: Horse Id
horse:
type: string
title: Horse
dob:
anyOf:
- type: string
- type: 'null'
title: Dob
age:
anyOf:
- type: string
- type: 'null'
title: Age
sex:
anyOf:
- type: string
- type: 'null'
title: Sex
sex_code:
anyOf:
- type: string
- type: 'null'
title: Sex Code
colour:
anyOf:
- type: string
- type: 'null'
title: Colour
region:
anyOf:
- type: string
- type: 'null'
title: Region
breeder:
anyOf:
- type: string
- type: 'null'
title: Breeder
dam:
type: string
title: Dam
dam_id:
type: string
title: Dam Id
dam_region:
anyOf:
- type: string
- type: 'null'
title: Dam Region
default: ''
sire:
type: string
title: Sire
sire_id:
type: string
title: Sire Id
sire_region:
anyOf:
- type: string
- type: 'null'
title: Sire Region
default: ''
damsire:
type: string
title: Damsire
damsire_id:
type: string
title: Damsire Id
damsire_region:
anyOf:
- type: string
- type: 'null'
title: Damsire Region
default: ''
trainer:
type: string
title: Trainer
trainer_id:
type: string
title: Trainer Id
trainer_location:
anyOf:
- type: string
- type: 'null'
title: Trainer Location
default: ''
trainer_14_days:
anyOf:
- $ref: '#/components/schemas/RunnerTrainer14Days'
- type: 'null'
default: {}
owner:
type: string
title: Owner
owner_id:
type: string
title: Owner Id
prev_trainers:
anyOf:
- items:
$ref: '#/components/schemas/RunnerPrevTrainer'
type: array
- type: 'null'
title: Prev Trainers
default: []
prev_owners:
anyOf:
- items:
$ref: '#/components/schemas/RunnerPrevOwner'
type: array
- type: 'null'
title: Prev Owners
default: []
comment:
anyOf:
- type: string
- type: 'null'
title: Comment
default: ''
spotlight:
anyOf:
- type: string
- type: 'null'
title: Spotlight
default: ''
quotes:
anyOf:
- items:
$ref: '#/components/schemas/RunnerQuote'
type: array
- type: 'null'
title: Quotes
default: []
stable_tour:
anyOf:
- items:
$ref: '#/components/schemas/RunnerStableTour'
type: array
- type: 'null'
title: Stable Tour
default: []
medical:
anyOf:
- items:
$ref: '#/components/schemas/RunnerMedical'
type: array
- type: 'null'
title: Medical
default: []
number:
type: string
title: Number
draw:
type: string
title: Draw
headgear:
anyOf:
- type: string
- type: 'null'
title: Headgear
default: ''
headgear_run:
anyOf:
- type: string
- type: 'null'
title: Headgear Run
default: ''
wind_surgery:
anyOf:
- type: string
- type: 'null'
title: Wind Surgery
default: ''
wind_surgery_run:
anyOf:
- type: string
- type: 'null'
title: Wind Surgery Run
default: ''
past_results_flags:
anyOf:
- items:
type: string
type: array
- type: 'null'
title: Past Results Flags
default: []
lbs:
type: string
title: Lbs
ofr:
type: string
title: Ofr
rpr:
type: string
title: Rpr
ts:
type: string
title: Ts
jockey:
type: string
title: Jockey
jockey_id:
type: string
title: Jockey Id
silk_url:
anyOf:
- type: string
- type: 'null'
title: Silk Url
default: ''
last_run:
type: string
title: Last Run
form:
anyOf:
- type: string
- type: 'null'
title: Form
trainer_rtf:
anyOf:
- type: string
- type: 'null'
title: Trainer Rtf
odds:
anyOf:
- items:
$ref: '#/components/schemas/OddsNoHistory'
type: array
- type: 'null'
title: Odds
default: []
type: object
required:
- horse_id
- horse
- dob
- age
- sex
- sex_code
- colour
- region
- breeder
- dam
- dam_id
- sire
- sire_id
- damsire
- damsire_id
- trainer
- trainer_id
- owner
- owner_id
- number
- draw
- lbs
- ofr
- rpr
- ts
- jockey
- jockey_id
- last_run
- form
- trainer_rtf
title: RunnerOdds
example:
age: '6'
breeder: Tada Nobutaka
colour: b
comment: Very useful in his prime but seems to have lost his way this year
dam: Lerici
dam_id: dam_4823441
dam_region: USA
damsire: Woodman
damsire_id: dsi_2126229
damsire_region: USA
dob: '2017-04-22'
draw: '8'
form: 3-7880
headgear: ''
headgear_run: ''
horse: Pistoletto
horse_id: hrs_18092480
jockey: Adam Tracey(7)
jockey_id: jky_301290
last_run: '25'
lbs: '140'
medical: []
number: '1'
odds:
- bookmaker: Bet365
decimal: '9'
ew_denom: '5'
ew_places: '3'
fractional: '8'
updated: '2023-05-02 12:36:43'
- bookmaker: Paddy Power
decimal: '8.5'
ew_denom: '5'
ew_places: '3'
fractional: 15/2
updated: '2023-05-02 12:36:43'
ofr: '75'
owner: J A Thompson & S Russell
owner_id: own_1227828
past_results_flags: []
prev_owners:
- change_date: '2021-08-07'
owner: G McGladery, J A Thompson & S Russell
owner_id: own_1191676
prev_trainers:
- change_date: '2020-09-26'
trainer: A P O'Brien
trainer_id: trn_71802
quotes:
- course: Newmarket
course_id: crs_988
date: '2019-10-11'
distance_f: '5'
distance_y: '1100'
horse: Pistoletto
horse_id: hrs_18092480
quote: He travelled nicely into the race - Kevin Buckley.
race: Cornwallis Stakes (Group 3)
race_id: rac_9618089
region: USA
rpr: '82'
sex: gelding
sex_code: G
silk_url: https://www.url-for-silk.com/svg/456789.svg
sire: War Front
sire_id: sir_4544750
sire_region: USA
spotlight: Very useful in his prime but seems to have lost his way this year; sure to appreciate today's ease in grade.
stable_tour: []
trainer: John Ryan
trainer_14_days:
percent: '0'
runs: '5'
wins: '0'
trainer_id: trn_160758
trainer_location: Newmarket, Suffolk
trainer_rtf: ''
ts: '81'
wind_surgery: ''
wind_surgery_run: ''
Racecard:
properties:
race_id:
type: string
title: Race Id
course:
type: string
title: Course
course_id:
type: string
title: Course Id
date:
type: string
title: Date
off_time:
type: string
title: Off Time
off_dt:
anyOf:
- type: string
- type: 'null'
title: Off Dt
default: ''
race_name:
type: string
title: Race Name
distance_round:
type: string
title: Distance Round
distance:
type: string
title: Distance
distance_f:
type: string
title: Distance F
region:
type: string
title: Region
pattern:
type: string
title: Pattern
sex_restriction:
anyOf:
- type: string
- type: 'null'
title: Sex Restriction
default: ''
race_class:
type: string
title: Race Class
type:
type: string
title: Type
age_band:
type: string
title: Age Band
rating_band:
type: string
title: Rating Band
prize:
type: string
title: Prize
field_size:
type: string
title: Field Size
going_detailed:
anyOf:
- type: string
- type: 'null'
title: Going Detailed
rail_movements:
anyOf:
- type: string
- type: 'null'
title: Rail Movements
stalls:
anyOf:
- type: string
- type: 'null'
title: Stalls
weather:
anyOf:
- type: string
- type: 'null'
title: Weather
going:
type: string
title: Going
surface:
anyOf:
- type: string
- type: 'null'
title: Surface
runners:
items:
$ref: '#/components/schemas/app__models__racecards__Runner'
type: array
title: Runners
big_race:
anyOf:
- type: boolean
- type: 'null'
title: Big Race
default: false
is_abandoned:
anyOf:
- type: boolean
- type: 'null'
title: Is Abandoned
default: false
race_status:
anyOf:
- type: string
- type: 'null'
title: Race Status
default: ''
type: object
required:
- race_id
- course
- course_id
- date
- off_time
- race_name
- distance_round
- distance
- distance_f
- region
- pattern
- race_class
- type
- age_band
- rating_band
- prize
- field_size
- going_detailed
- rail_movements
- stalls
- weather
- going
- surface
- runners
title: Racecard
example:
age_band: 4yo+
big_race: false
course: Brighton
course_id: crs_182
date: '2023-05-02'
distance: 6f210y
distance_f: '7.0'
distance_round: 7f
field_size: '9'
going: Good To Firm
going_detailed: ''
is_abandoned: false
off_dt: '2023-05-02T13:50:00+01:00'
off_time: '1:50'
pattern: ''
prize: £4,606
race_class: Class 5
race_id: rac_10880272
race_name: At The Races App Form Study Apprentice Handicap
race_status: ''
rail_movements: ''
rating_band: 0-75
region: GB
runners:
- age: '6'
breeder: Tada Nobutaka
colour: b
dam: Lerici
dam_id: dam_4823441
damsire: Woodman
damsire_id: dsi_2126229
dob: '2017-04-22'
draw: '8'
form: 3-7880
headgear: ''
horse: Pistoletto
horse_id: hrs_18092480
jockey: Adam Tracey(7)
jockey_id: jky_301290
last_run: '25'
lbs: '140'
number: '1'
ofr: '75'
owner: J A Thompson & S Russell
owner_id: own_1227828
region: USA
rpr: '82'
sex: gelding
sex_code: G
sire: War Front
sire_id: sir_4544750
trainer: John Ryan
trainer_id: trn_160758
ts: '81'
sex_restriction: ''
stalls: ''
surface: Turf
type: Flat
weather: ''
RacecardBasic:
properties:
race_id:
type: string
title: Race Id
course:
type: string
title: Course
date:
type: string
title: Date
off_time:
type: string
title: Off Time
off_dt:
anyOf:
- type: string
- type: 'null'
title: Off Dt
default: ''
race_name:
type: string
title: Race Name
distance_f:
type: string
title: Distance F
region:
type: string
title: Region
pattern:
type: string
title: Pattern
race_class:
type: string
title: Race Class
type:
type: string
title: Type
age_band:
type: string
title: Age Band
rating_band:
type: string
title: Rating Band
sex_restriction:
anyOf:
- type: string
- type: 'null'
title: Sex Restriction
default: ''
prize:
type: string
title: Prize
field_size:
type: string
title: Field Size
going:
type: string
title: Going
surface:
anyOf:
- type: string
- type: 'null'
title: Surface
runners:
items:
$ref: '#/components/schemas/app__models__racecards__RunnerBasic'
type: array
title: Runners
race_status:
anyOf:
- type: string
- type: 'null'
title: Race Status
default: ''
type: object
required:
- race_id
- course
- date
- off_time
- race_name
- distance_f
- region
- pattern
- race_class
- type
- age_band
- rating_band
- prize
- field_size
- going
- surface
- runners
title: RacecardBasic
example:
age_band: 4yo+
course: Brighton
date: '2023-05-02'
distance_f: '7.0'
field_size: '9'
going: Good To Firm
off_dt: '2023-05-02T13:50:00+01:00'
off_time: '1:50'
pattern: ''
prize: £4,606
race_class: Class 5
race_id: rac_10880272
race_name: At The Races App Form Study Apprentice Handicap
race_status: ''
rating_band: 0-75
region: GB
runners:
- age: '6'
colour: b
dam: Lerici
dam_id: dam_4823441
damsire: Woodman
damsire_id: dsi_2126229
draw: '8'
form: 3-7880
headgear: ''
horse: Pistoletto
horse_id: hrs_18092480
jockey: Adam Tracey(7)
jockey_id: jky_301290
last_run: '25'
lbs: '140'
number: '1'
ofr: '75'
owner: J A Thompson & S Russell
owner_id: own_1227828
region: USA
sex: gelding
sex_code: G
sire: War Front
sire_id: sir_4544750
trainer: John Ryan
trainer_id: trn_160758
sex_restriction: ''
surface: Turf
type: Flat
RacecardOdds:
properties:
race_id:
type: string
title: Race Id
course:
type: string
title: Course
course_id:
type: string
title: Course Id
date:
type: string
title: Date
off_time:
type: string
title: Off Time
off_dt:
anyOf:
- type: string
- type: 'null'
title: Off Dt
default: ''
race_name:
type: string
title: Race Name
distance_round:
type: string
title: Distance Round
distance:
type: string
title: Distance
distance_f:
type: string
title: Distance F
region:
type: string
title: Region
pattern:
type: string
title: Pattern
sex_restriction:
anyOf:
- type: string
- type: 'null'
title: Sex Restriction
default: ''
race_class:
type: string
title: Race Class
type:
type: string
title: Type
age_band:
type: string
title: Age Band
rating_band:
type: string
title: Rating Band
prize:
type: string
title: Prize
field_size:
type: string
title: Field Size
going_detailed:
anyOf:
- type: string
- type: 'null'
title: Going Detailed
rail_movements:
anyOf:
- type: string
- type: 'null'
title: Rail Movements
stalls:
anyOf:
- type: string
- type: 'null'
title: Stalls
weather:
anyOf:
- type: string
- type: 'null'
title: Weather
going:
type: string
title: Going
surface:
anyOf:
- type: string
- type: 'null'
title: Surface
jumps:
anyOf:
- type: string
- type: 'null'
title: Jumps
default: ''
runners:
items:
$ref: '#/components/schemas/app__models__racecards__RunnerOdds'
type: array
title: Runners
big_race:
anyOf:
- type: boolean
- type: 'null'
title: Big Race
default: false
is_abandoned:
anyOf:
- type: boolean
- type: 'null'
title: Is Abandoned
default: false
tip:
anyOf:
- type: string
- type: 'null'
title: Tip
default: ''
verdict:
anyOf:
- type: string
- type: 'null'
title: Verdict
default: ''
betting_forecast:
anyOf:
- type: string
- type: 'null'
title: Betting Forecast
default: ''
race_status:
anyOf:
- type: string
- type: 'null'
title: Race Status
default: ''
type: object
required:
- race_id
- course
- course_id
- date
- off_time
- race_name
- distance_round
- distance
- distance_f
- region
- pattern
- race_class
- type
- age_band
- rating_band
- prize
- field_size
- going_detailed
- rail_movements
- stalls
- weather
- going
- surface
- runners
title: RacecardOdds
example:
age_band: 4yo+
betting_forecast: 3/1 Snowthorn, 4/1 King Alloy, 6/1 I P O Bros, 10/1 Team Happy
big_race: false
course: Brighton
course_id: crs_182
date: '2023-05-02'
distance: 6f210y
distance_f: '7.0'
distance_round: 7f
field_size: '9'
going: Good To Firm
going_detailed: ''
is_abandoned: false
jumps: ''
off_dt: '2023-05-02T13:50:00+01:00'
off_time: '1:50'
pattern: ''
prize: £4,606
race_class: Class 5
race_id: rac_10880272
race_name: At The Races App Form Study Apprentice Handicap
race_status: ''
rail_movements: ''
rating_band: 0-75
region: GB
runners:
- age: '6'
breeder: Tada Nobutaka
colour: b
comment: Very useful in his prime but seems to have lost his way this year
dam: Lerici
dam_id: dam_4823441
dam_region: USA
damsire: Woodman
damsire_id: dsi_2126229
damsire_region: USA
dob: '2017-04-22'
draw: '8'
form: 3-7880
headgear: ''
headgear_run: ''
horse: Pistoletto
horse_id: hrs_18092480
jockey: Adam Tracey(7)
jockey_id: jky_301290
last_run: '25'
lbs: '140'
medical: []
number: '1'
odds:
- bookmaker: Bet365
decimal: '9'
ew_denom: '5'
ew_places: '3'
fractional: '8'
updated: '2023-05-02 12:36:43'
- bookmaker: Paddy Power
decimal: '8.5'
ew_denom: '5'
ew_places: '3'
fractional: 15/2
updated: '2023-05-02 12:36:43'
ofr: '75'
owner: J A Thompson & S Russell
owner_id: own_1227828
past_results_flags: []
prev_owners:
- change_date: '2021-08-07'
owner: G McGladery, J A Thompson & S Russell
owner_id: own_1191676
prev_trainers:
- change_date: '2020-09-26'
trainer: A P O'Brien
trainer_id: trn_71802
quotes:
- course: Newmarket
course_id: crs_988
date: '2019-10-11'
distance_f: '5'
distance_y: '1100'
horse: Pistoletto
horse_id: hrs_18092480
quote: He travelled nicely into the race - Kevin Buckley.
race: Cornwallis Stakes (Group 3)
race_id: rac_9618089
region: USA
rpr: '82'
sex: gelding
sex_code: G
silk_url: https://www.url-for-silk.com/svg/456789.svg
sire: War Front
sire_id: sir_4544750
sire_region: USA
spotlight: Very useful in his prime but seems to have lost his way this year; sure to appreciate today's ease in grade.
stable_tour: []
trainer: John Ryan
trainer_14_days:
percent: '0'
runs: '5'
wins: '0'
trainer_id: trn_160758
trainer_location: Newmarket, Suffolk
trainer_rtf: ''
ts: '81'
wind_surgery: ''
wind_surgery_run: ''
sex_restriction: ''
stalls: ''
surface: Turf
tip: Team Happy
type: Flat
verdict: Many of these arrive with something to prove but TEAM HAPPY has shown signs of a revival lately and might exploit a good mark.
weather: ''
RunnerMedical:
properties:
date:
anyOf:
- type: string
- type: 'null'
title: Date
default: ''
type:
anyOf:
- type: string
- type: 'null'
title: Type
default: ''
type: object
title: RunnerMedical
example:
date: '2024-06-15'
type: Wind surgery
RunnerPrevOwner:
properties:
owner:
anyOf:
- type: string
- type: 'null'
title: Owner
default: ''
owner_id:
anyOf:
- type: string
- type: 'null'
title: Owner Id
default: ''
change_date:
anyOf:
- type: string
- type: 'null'
title: Change Date
default: ''
type: object
title: RunnerPrevOwner
example:
change_date: '2024-01-15'
owner: Previous Racing Ltd
owner_id: own_123456
RacecardOddsPro:
properties:
race_id:
type: string
title: Race Id
course:
type: string
title: Course
course_id:
type: string
title: Course Id
date:
type: string
title: Date
off_time:
type: string
title: Off Time
off_dt:
anyOf:
- type: string
- type: 'null'
title: Off Dt
default: ''
race_name:
type: string
title: Race Name
distance_round:
type: string
title: Distance Round
distance:
type: string
title: Distance
distance_f:
type: string
title: Distance F
region:
type: string
title: Region
pattern:
type: string
title: Pattern
sex_restriction:
anyOf:
- type: string
- type: 'null'
title: Sex Restriction
default: ''
race_class:
type: string
title: Race Class
type:
type: string
title: Type
age_band:
type: string
title: Age Band
rating_band:
type: string
title: Rating Band
prize:
type: string
title: Prize
field_size:
type: string
title: Field Size
going_detailed:
anyOf:
- type: string
- type: 'null'
title: Going Detailed
rail_movements:
anyOf:
- type: string
- type: 'null'
title: Rail Movements
stalls:
anyOf:
- type: string
- type: 'null'
title: Stalls
weather:
anyOf:
- type: string
- type: 'null'
title: Weather
going:
type: string
title: Going
surface:
anyOf:
- type: string
- type: 'null'
title: Surface
jumps:
anyOf:
- type: string
- type: 'null'
title: Jumps
default: ''
runners:
items:
$ref: '#/components/schemas/RunnerOddsPro'
type: array
title: Runners
big_race:
anyOf:
- type: boolean
- type: 'null'
title: Big Race
default: false
is_abandoned:
anyOf:
- type: boolean
- type: 'null'
title: Is Abandoned
default: false
tip:
anyOf:
- type: string
- type: 'null'
title: Tip
default: ''
verdict:
anyOf:
- type: string
- type: 'null'
title: Verdict
default: ''
betting_forecast:
anyOf:
- type: string
- type: 'null'
title: Betting Forecast
default: ''
race_status:
anyOf:
- type: string
- type: 'null'
title: Race Status
default: ''
type: object
required:
- race_id
- course
- course_id
- date
- off_time
- race_name
- distance_round
- distance
- distance_f
- region
- pattern
- race_class
- type
- age_band
- rating_band
- prize
- field_size
- going_detailed
- rail_movements
- stalls
- weather
- going
- surface
- runners
title: RacecardOddsPro
example:
age_band: 3yo+
betting_forecast: 6/4 Majestic Valour, 9/2 Sea Diamond, 6/1 Autumn Vibes, 7/1 Lucky Ranger
big_race: false
course: Sha Tin
course_id: crs_10816
date: '2026-01-11'
distance: 6f
distance_f: '6.0'
distance_round: 6f
field_size: '12'
going: Good
going_detailed: 'TURF: GOOD TO FIRM'
is_abandoned: false
jumps: ''
off_dt: '2026-01-11T05:00:00+00:00'
off_time: '5:00'
pattern: ''
prize: £62,459
race_class: ''
race_id: rac_11845223
race_name: Wu Kai Sha Handicap (Div I) (Class 4) (3yo+) (Course C+3) (Turf)
race_status: ''
rail_movements: ''
rating_band: ''
region: HK
runners:
- age: '9'
breeder: Scea Haras De Saint Pair
colour: b/br
comment: Much better known as a miler but begins the new campaign on a very tempting mark
dam: Trois Lunes
dam_id: dam_5583571
dam_region: FR
damsire: Manduro
damsire_id: dsi_4247215
damsire_region: GER
dob: '2014-02-27'
draw: '9'
form: 60500-
headgear: ''
headgear_run: ''
horse: Trais Fluors
horse_id: hrs_8192583
jockey: Rose Dawes(5)
jockey_id: jky_301152
last_run: '192'
lbs: '139'
medical: []
number: '2'
odds:
- bookmaker: Bet365
decimal: '4.33'
ew_denom: '5'
ew_places: '3'
fractional: 10/3
history: []
updated: '2023-05-02 12:36:43'
- bookmaker: Betfair Exchange
decimal: '4.5'
ew_denom: ''
ew_places: ''
fractional: 7/2
history: []
updated: '2023-05-02 12:36:43'
ofr: '74'
owner: M Channon
owner_id: own_31504
past_results_flags: []
prev_owners:
- change_date: '2021-09-06'
owner: Lee Harris
owner_id: own_1182044
- change_date: '2021-03-22'
owner: Robert Ng
owner_id: own_466920
prev_trainers:
- change_date: '2023-03-24'
trainer: Mick Channon
trainer_id: trn_42084
- change_date: '2021-03-22'
trainer: K J Condon
trainer_id: trn_137160
- change_date: '2019-10-23'
trainer: A Fabre
trainer_id: trn_9837
quotes:
- course: Sandown
course_id: crs_1404
date: '2021-06-12'
distance_f: '8'
distance_y: '1760'
horse: Trais Fluors
horse_id: hrs_8192583
quote: He was suited by the better ground here, which was key - Silvestre de Sousa, rider.
race: Play Coral Racing-Super-Series For Free Handicap
race_id: rac_10204649
region: GB
rpr: '85'
sex: gelding
sex_code: G
silk_url: https://www.url-for-silk.com/svg/456789.svg
sire: Dansili
sire_id: sir_3527125
sire_region: GB
spotlight: Steadily regressive 9yo who is much better known as a miler and ended last season with two down-the-field runs; begins the new campaign on a tempting mark, though, and can't be ruled out.
stable_tour: []
trainer: Jack Channon
trainer_14_days:
percent: '31'
runs: '16'
wins: '5'
trainer_id: trn_361449
trainer_location: West Ilsley, Berks
trainer_rtf: '71'
ts: '83'
wind_surgery: ''
wind_surgery_run: ''
sex_restriction: ''
stalls: ''
surface: Turf
tip: Majestic Valour
type: Flat
verdict: This looks a good opportunity for promising 4yo MAJESTIC VALOUR to get back to winning ways.
weather: ''
RacecardsBasicPage:
properties:
racecards:
items:
$ref: '#/components/schemas/RacecardBasic'
type: array
title: Racecards
total:
type: integer
title: Total
limit:
type: integer
title: Limit
skip:
type: integer
title: Skip
query:
items:
items: {}
type: array
type: array
title: Query
type: object
required:
- racecards
- total
- limit
- skip
- query
title: RacecardsBasicPage
RacecardsPage:
properties:
racecards:
items:
$ref: '#/components/schemas/Racecard'
type: array
title: Racecards
total:
type: integer
title: Total
limit:
type: integer
title: Limit
skip:
type: integer
title: Skip
query:
items:
items: {}
type: array
type: array
title: Query
type: object
required:
- racecards
- total
- limit
- skip
- query
title: RacecardsPage
app__models__racecards__RunnerBasic:
properties:
horse:
type: string
title: Horse
horse_id:
type: string
title: Horse Id
age:
type: string
title: Age
sex:
anyOf:
- type: string
- type: 'null'
title: Sex
sex_code:
anyOf:
- type: string
- type: 'null'
title: Sex Code
colour:
anyOf:
- type: string
- type: 'null'
title: Colour
region:
type: string
title: Region
dam:
type: string
title: Dam
dam_id:
type: string
title: Dam Id
sire:
type: string
title: Sire
sire_id:
type: string
title: Sire Id
damsire:
type: string
title: Damsire
damsire_id:
type: string
title: Damsire Id
trainer:
type: string
title: Trainer
trainer_id:
type: string
title: Trainer Id
owner:
type: string
title: Owner
owner_id:
type: string
title: Owner Id
number:
type: string
title: Number
draw:
type: string
title: Draw
headgear:
anyOf:
- type: string
- type: 'null'
title: Headgear
lbs:
type: string
title: Lbs
ofr:
type: string
title: Ofr
jockey:
type: string
title: Jockey
jockey_id:
type: string
title: Jockey Id
last_run:
type: string
title: Last Run
form:
anyOf:
- type: string
- type: 'null'
title: Form
type: object
required:
- horse
- horse_id
- age
- sex
- sex_code
- colour
- region
- dam
- dam_id
- sire
- sire_id
- damsire
- damsire_id
- trainer
- trainer_id
- owner
- owner_id
- number
- draw
- headgear
- lbs
- ofr
- jockey
- jockey_id
- last_run
- form
title: RunnerBasic
example:
age: '6'
colour: b
dam: Lerici
dam_id: dam_4823441
damsire: Woodman
damsire_id: dsi_2126229
draw: '8'
form: 3-7880
headgear: ''
horse: Pistoletto
horse_id: hrs_18092480
jockey: Adam Tracey(7)
jockey_id: jky_301290
last_run: '25'
lbs: '140'
number: '1'
ofr: '75'
owner: J A Thompson & S Russell
owner_id: own_1227828
region: USA
sex: gelding
sex_code: G
sire: War Front
sire_id: sir_4544750
trainer: John Ryan
trainer_id: trn_160758
app__models__racecards__Runner:
properties:
horse_id:
type: string
title: Horse Id
horse:
type: string
title: Horse
dob:
anyOf:
- type: string
- type: 'null'
title: Dob
age:
anyOf:
- type: string
- type: 'null'
title: Age
sex:
anyOf:
- type: string
- type: 'null'
title: Sex
sex_code:
anyOf:
- type: string
- type: 'null'
title: Sex Code
colour:
anyOf:
- type: string
- type: 'null'
title: Colour
region:
anyOf:
- type: string
- type: 'null'
title: Region
breeder:
anyOf:
- type: string
- type: 'null'
title: Breeder
dam:
type: string
title: Dam
dam_id:
type: string
title: Dam Id
dam_region:
anyOf:
- type: string
- type: 'null'
title: Dam Region
default: ''
sire:
type: string
title: Sire
sire_id:
type: string
title: Sire Id
sire_region:
anyOf:
- type: string
- type: 'null'
title: Sire Region
default: ''
damsire:
type: string
title: Damsire
damsire_id:
type: string
title: Damsire Id
damsire_region:
anyOf:
- type: string
- type: 'null'
title: Damsire Region
default: ''
trainer:
type: string
title: Trainer
trainer_id:
type: string
title: Trainer Id
trainer_location:
anyOf:
- type: string
- type: 'null'
title: Trainer Location
default: ''
trainer_14_days:
anyOf:
- $ref: '#/components/schemas/RunnerTrainer14Days'
- type: 'null'
default: {}
owner:
type: string
title: Owner
owner_id:
type: string
title: Owner Id
prev_trainers:
anyOf:
- items:
$ref: '#/components/schemas/RunnerPrevTrainer'
type: array
- type: 'null'
title: Prev Trainers
default: []
prev_owners:
anyOf:
- items:
$ref: '#/components/schemas/RunnerPrevOwner'
type: array
- type: 'null'
title: Prev Owners
default: []
comment:
anyOf:
- type: string
- type: 'null'
title: Comment
default: ''
spotlight:
anyOf:
- type: string
- type: 'null'
title: Spotlight
default: ''
quotes:
anyOf:
- items:
$ref: '#/components/schemas/RunnerQuote'
type: array
- type: 'null'
title: Quotes
default: []
stable_tour:
anyOf:
- items:
$ref: '#/components/schemas/RunnerStableTour'
type: array
- type: 'null'
title: Stable Tour
default: []
medical:
anyOf:
- items:
$ref: '#/components/schemas/RunnerMedical'
type: array
- type: 'null'
title: Medical
default: []
number:
type: string
title: Number
draw:
type: string
title: Draw
headgear:
anyOf:
- type: string
- type: 'null'
title: Headgear
default: ''
headgear_run:
anyOf:
- type: string
- type: 'null'
title: Headgear Run
default: ''
wind_surgery:
anyOf:
- type: string
- type: 'null'
title: Wind Surgery
default: ''
wind_surgery_run:
anyOf:
- type: string
- type: 'null'
title: Wind Surgery Run
default: ''
past_results_flags:
anyOf:
- items:
type: string
type: array
- type: 'null'
title: Past Results Flags
default: []
lbs:
type: string
title: Lbs
ofr:
type: string
title: Ofr
rpr:
type: string
title: Rpr
ts:
type: string
title: Ts
jockey:
type: string
title: Jockey
jockey_id:
type: string
title: Jockey Id
silk_url:
anyOf:
- type: string
- type: 'null'
title: Silk Url
default: ''
last_run:
type: string
title: Last Run
form:
anyOf:
- type: string
- type: 'null'
title: Form
trainer_rtf:
anyOf:
- type: string
- type: 'null'
title: Trainer Rtf
type: object
required:
- horse_id
- horse
- dob
- age
- sex
- sex_code
- colour
- region
- breeder
- dam
- dam_id
- sire
- sire_id
- damsire
- damsire_id
- trainer
- trainer_id
- owner
- owner_id
- number
- draw
- lbs
- ofr
- rpr
- ts
- jockey
- jockey_id
- last_run
- form
- trainer_rtf
title: Runner
example:
age: '6'
breeder: Tada Nobutaka
colour: b
comment: Very useful in his prime but seems to have lost his way this year; has questions to answer
dam: Lerici
dam_id: dam_4823441
dam_region: USA
damsire: Woodman
damsire_id: dsi_2126229
damsire_region: USA
dob: '2017-04-22'
draw: '8'
form: 3-7880
headgear: ''
headgear_run: ''
horse: Pistoletto
horse_id: hrs_18092480
jockey: Adam Tracey(7)
jockey_id: jky_301290
last_run: '25'
lbs: '140'
medical: []
number: '1'
ofr: '75'
owner: J A Thompson & S Russell
owner_id: own_1227828
past_results_flags: []
prev_owners:
- change_date: '2021-08-07'
owner: G McGladery, J A Thompson & S Russell
owner_id: own_1191676
- change_date: '2020-09-26'
owner: Michael Tabor & Derrick Smith & Mrs John Magnier
owner_id: own_575044
prev_trainers:
- change_date: '2020-09-26'
trainer: A P O'Brien
trainer_id: trn_71802
quotes:
- course: Newmarket
course_id: crs_988
date: '2019-10-11'
distance_f: '5'
distance_y: '1100'
horse: Pistoletto
horse_id: hrs_18092480
quote: Ryan was very pleased and while Pistoletto just didn't seem to get his feet when he left the stalls, and was a bit more slowly away than some, he travelled nicely into the race - Kevin Buckley, Coomore representative.
race: Newmarket Academy Godolphin Beacon Project Cornwallis Stakes (Group 3)
race_id: rac_9618089
region: USA
rpr: '82'
sex: gelding
sex_code: G
silk_url: https://www.url-for-silk.com/svg/456789.svg
sire: War Front
sire_id: sir_4544750
sire_region: USA
spotlight: Very useful in his prime but seems to have lost his way this year; sure to appreciate today's ease in grade after contesting two valuable races at Lingfield (1m2f/1m4f) but may need further than 7f nowadays and has some questions to answer.
stable_tour: []
trainer: John Ryan
trainer_14_days:
percent: '0'
runs: '5'
wins: '0'
trainer_id: trn_160758
trainer_location: Newmarket, Suffolk
trainer_rtf: ''
ts: '81'
wind_surgery: ''
wind_surgery_run: ''
HTTPValidationError:
properties:
detail:
items:
$ref: '#/components/schemas/ValidationError'
type: array
title: Detail
type: object
title: HTTPValidationError
RunnerPrevTrainer:
properties:
trainer:
anyOf:
- type: string
- type: 'null'
title: Trainer
default: ''
trainer_id:
anyOf:
- type: string
- type: 'null'
title: Trainer Id
default: ''
change_date:
anyOf:
- type: string
- type: 'null'
title: Change Date
default: ''
type: object
title: RunnerPrevTrainer
example:
change_date: '2024-03-01'
trainer: John Smith
trainer_id: trn_123456
RacecardsOddsProPage:
properties:
racecards:
items:
$ref: '#/components/schemas/RacecardOddsPro'
type: array
title: Racecards
total:
type: integer
title: Total
limit:
type: integer
title: Limit
skip:
type: integer
title: Skip
query:
items:
items: {}
type: array
type: array
title: Query
type: object
required:
- racecards
- total
- limit
- skip
- query
title: RacecardsOddsProPage
OddsHistory:
properties:
bookmaker:
type: string
title: Bookmaker
fractional:
type: string
title: Fractional
decimal:
type: string
title: Decimal
ew_places:
type: string
title: Ew Places
ew_denom:
type: string
title: Ew Denom
updated:
type: string
title: Updated
history:
anyOf:
- items: {}
type: array
- type: 'null'
title: History
default: []
type: object
required:
- bookmaker
- fractional
- decimal
- ew_places
- ew_denom
- updated
title: OddsHistory
example:
bookmaker: Bet365
decimal: '6.0'
ew_denom: '5'
ew_places: '3'
fractional: 5/1
history:
- changed_at: '2026-02-06T12:00:00+00:00'
decimal: '7.0'
fractional: 6/1
updated: '2026-02-06 13:30:00'
OddsNoHistory:
properties:
bookmaker:
type: string
title: Bookmaker
fractional:
type: string
title: Fractional
decimal:
type: string
title: Decimal
ew_places:
type: string
title: Ew Places
ew_denom:
type: string
title: Ew Denom
updated:
type: string
title: Updated
type: object
required:
- bookmaker
- fractional
- decimal
- ew_places
- ew_denom
- updated
title: OddsNoHistory
example:
bookmaker: Bet365
decimal: '6.0'
ew_denom: '5'
ew_places: '3'
fractional: 5/1
updated: '2026-02-06 13:30:00'
RacecardsSummary:
properties:
racecard_summaries:
items:
$ref: '#/components/schemas/RacecardSummary'
type: array
title: Racecard Summaries
query:
items:
items: {}
type: array
type: array
title: Query
type: object
required:
- racecard_summaries
- query
title: RacecardsSummary
example:
query:
- - date
- '2026-02-06'
racecard_summaries:
- big_race: false
course: Bahrain
course_id: crs_22594
date: '2026-02-06'
is_abandoned: false
off_dt: '2026-02-06T14:00:00+00:00'
off_time: '2:00'
race_class: ''
race_id: rac_11868129
race_name: Race 3 (Conditions Race) (Turf)
region: BHR
- big_race: false
course: Bangor-on-Dee
course_id: crs_104
date: '2026-02-06'
is_abandoned: true
off_dt: '2026-02-06T13:25:00+00:00'
off_time: '1:25'
race_class: Class 4
race_id: rac_62443901
race_name: Alfa Aggregates Products Mares' Handicap Chase
region: GB
app__models__result__RunnerBasic:
properties:
horse_id:
type: string
title: Horse Id
horse:
type: string
title: Horse
sp:
type: string
title: Sp
sp_dec:
type: string
title: Sp Dec
number:
type: string
title: Number
position:
type: string
title: Position
draw:
type: string
title: Draw
btn:
type: string
title: Btn
ovr_btn:
type: string
title: Ovr Btn
age:
type: string
title: Age
sex:
type: string
title: Sex
weight:
type: string
title: Weight
weight_lbs:
type: string
title: Weight Lbs
headgear:
type: string
title: Headgear
time:
type: string
title: Time
or:
type: string
title: Or
rpr:
type: string
title: Rpr
tsr:
type: string
title: Tsr
prize:
type: string
title: Prize
jockey:
type: string
title: Jockey
jockey_claim_lbs:
anyOf:
- type: string
- type: 'null'
title: Jockey Claim Lbs
default: '0'
jockey_id:
type: string
title: Jockey Id
trainer:
type: string
title: Trainer
trainer_id:
type: string
title: Trainer Id
owner:
type: string
title: Owner
owner_id:
type: string
title: Owner Id
sire:
type: string
title: Sire
sire_id:
type: string
title: Sire Id
dam:
type: string
title: Dam
dam_id:
type: string
title: Dam Id
damsire:
type: string
title: Damsire
damsire_id:
type: string
title: Damsire Id
comment:
type: string
title: Comment
silk_url:
anyOf:
- type: string
- type: 'null'
title: Silk Url
default: ''
type: object
required:
- horse_id
- horse
- sp
- sp_dec
- number
- position
- draw
- btn
- ovr_btn
- age
- sex
- weight
- weight_lbs
- headgear
- time
- or
- rpr
- tsr
- prize
- jockey
- jockey_id
- trainer
- trainer_id
- owner
- owner_id
- sire
- sire_id
- dam
- dam_id
- damsire
- damsire_id
- comment
title: RunnerBasic
example:
age: '8'
btn: '0'
comment: Held up in rear - headway 3 out - went third after 2 out - challenging when not fluent last - led home turn - ridden clear final furlong(op 13/2)
dam: Save Me The Waltz (FR)
dam_id: dam_4189605
damsire: Halling
damsire_id: dsi_675241
draw: ''
headgear: v
horse: Mephisto (IRE)
horse_id: hrs_19359270
jockey: Shane Fitzgerald
jockey_claim_lbs: '0'
jockey_id: jky_302916
number: '2'
or: '98'
ovr_btn: '0'
owner: Restricted Movement Syndicate
owner_id: own_1204876
position: '1'
prize: €5900
rpr: '105'
sex: G
silk_url: https://www.url-for-silk.com/svg/456789.svg
sire: Kendargent (FR)
sire_id: sir_4514419
sp: 15/2
sp_dec: '8.50'
time: '5:44.90'
trainer: Gerard Keane
trainer_id: trn_86382
tsr: '64'
weight: 11-12
weight_lbs: '166'
RunnerOddsPro:
properties:
horse_id:
type: string
title: Horse Id
horse:
type: string
title: Horse
dob:
anyOf:
- type: string
- type: 'null'
title: Dob
age:
anyOf:
- type: string
- type: 'null'
title: Age
sex:
anyOf:
- type: string
- type: 'null'
title: Sex
sex_code:
anyOf:
- type: string
- type: 'null'
title: Sex Code
colour:
anyOf:
- type: string
- type: 'null'
title: Colour
region:
anyOf:
- type: string
- type: 'null'
title: Region
breeder:
anyOf:
- type: string
- type: 'null'
title: Breeder
dam:
type: string
title: Dam
dam_id:
type: string
title: Dam Id
dam_region:
anyOf:
- type: string
- type: 'null'
title: Dam Region
default: ''
sire:
type: string
title: Sire
sire_id:
type: string
title: Sire Id
sire_region:
anyOf:
- type: string
- type: 'null'
title: Sire Region
default: ''
damsire:
type: string
title: Damsire
damsire_id:
type: string
title: Damsire Id
damsire_region:
anyOf:
- type: string
- type: 'null'
title: Damsire Region
default: ''
trainer:
type: string
title: Trainer
trainer_id:
type: string
title: Trainer Id
trainer_location:
anyOf:
- type: string
- type: 'null'
title: Trainer Location
default: ''
trainer_14_days:
anyOf:
- $ref: '#/components/schemas/RunnerTrainer14Days'
- type: 'null'
default: {}
owner:
type: string
title: Owner
owner_id:
type: string
title: Owner Id
prev_trainers:
anyOf:
- items:
$ref: '#/components/schemas/RunnerPrevTrainer'
type: array
- type: 'null'
title: Prev Trainers
default: []
prev_owners:
anyOf:
- items:
$ref: '#/components/schemas/RunnerPrevOwner'
type: array
- type: 'null'
title: Prev Owners
default: []
comment:
anyOf:
- type: string
- type: 'null'
title: Comment
default: ''
spotlight:
anyOf:
- type: string
- type: 'null'
title: Spotlight
default: ''
quotes:
anyOf:
- items:
$ref: '#/components/schemas/RunnerQuote'
type: array
- type: 'null'
title: Quotes
default: []
stable_tour:
anyOf:
- items:
$ref: '#/components/schemas/RunnerStableTour'
type: array
- type: 'null'
title: Stable Tour
default: []
medical:
anyOf:
- items:
$ref: '#/components/schemas/RunnerMedical'
type: array
- type: 'null'
title: Medical
default: []
number:
type: string
title: Number
draw:
type: string
title: Draw
headgear:
anyOf:
- type: string
- type: 'null'
title: Headgear
default: ''
headgear_run:
anyOf:
- type: string
- type: 'null'
title: Headgear Run
default: ''
wind_surgery:
anyOf:
- type: string
- type: 'null'
title: Wind Surgery
default: ''
wind_surgery_run:
anyOf:
- type: string
- type: 'null'
title: Wind Surgery Run
default: ''
past_results_flags:
anyOf:
- items:
type: string
type: array
- type: 'null'
title: Past Results Flags
default: []
lbs:
type: string
title: Lbs
ofr:
type: string
title: Ofr
rpr:
type: string
title: Rpr
ts:
type: string
title: Ts
jockey:
type: string
title: Jockey
jockey_id:
type: string
title: Jockey Id
silk_url:
anyOf:
- type: string
- type: 'null'
title: Silk Url
default: ''
last_run:
type: string
title: Last Run
form:
anyOf:
- type: string
- type: 'null'
title: Form
trainer_rtf:
anyOf:
- type: string
- type: 'null'
title: Trainer Rtf
odds:
anyOf:
- items:
$ref: '#/components/schemas/OddsHistory'
type: array
- type: 'null'
title: Odds
default: []
type: object
required:
- horse_id
- horse
- dob
- age
- sex
- sex_code
- colour
- region
- breeder
- dam
- dam_id
- sire
- sire_id
- damsire
- damsire_id
- trainer
- trainer_id
- owner
- owner_id
- number
- draw
- lbs
- ofr
- rpr
- ts
- jockey
- jockey_id
- last_run
- form
- trainer_rtf
title: RunnerOddsPro
example:
age: '9'
breeder: Scea Haras De Saint Pair
colour: b/br
comment: Much better known as a miler but begins the new campaign on a very tempting mark
dam: Trois Lunes
dam_id: dam_5583571
dam_region: FR
damsire: Manduro
damsire_id: dsi_4247215
damsire_region: GER
dob: '2014-02-27'
draw: '9'
form: 60500-
headgear: ''
headgear_run: ''
horse: Trais Fluors
horse_id: hrs_8192583
jockey: Rose Dawes(5)
jockey_id: jky_301152
last_run: '192'
lbs: '139'
medical: []
number: '2'
odds:
- bookmaker: Bet365
decimal: '4.33'
ew_denom: '5'
ew_places: '3'
fractional: 10/3
history: []
updated: '2023-05-02 12:36:43'
- bookmaker: Betfair Exchange
decimal: '4.5'
ew_denom: ''
ew_places: ''
fractional: 7/2
history: []
updated: '2023-05-02 12:36:43'
ofr: '74'
owner: M Channon
owner_id: own_31504
past_results_flags: []
prev_owners:
- change_date: '2021-09-06'
owner: Lee Harris
owner_id: own_1182044
- change_date: '2021-03-22'
owner: Robert Ng
owner_id: own_466920
prev_trainers:
- change_date: '2023-03-24'
trainer: Mick Channon
trainer_id: trn_42084
- change_date: '2021-03-22'
trainer: K J Condon
trainer_id: trn_137160
- change_date: '2019-10-23'
trainer: A Fabre
trainer_id: trn_9837
quotes:
- course: Sandown
course_id: crs_1404
date: '2021-06-12'
distance_f: '8'
distance_y: '1760'
horse: Trais Fluors
horse_id: hrs_8192583
quote: He was suited by the better ground here, which was key - Silvestre de Sousa, rider.
race: Play Coral Racing-Super-Series For Free Handicap
race_id: rac_10204649
region: GB
rpr: '85'
sex: gelding
sex_code: G
silk_url: https://www.url-for-silk.com/svg/456789.svg
sire: Dansili
sire_id: sir_3527125
sire_region: GB
spotlight: Steadily regressive 9yo who is much better known as a miler and ended last season with two down-the-field runs; begins the new campaign on a tempting mark, though, and can't be ruled out.
stable_tour: []
trainer: Jack Channon
trainer_14_days:
percent: '31'
runs: '16'
wins: '5'
trainer_id: trn_361449
trainer_location: West Ilsley, Berks
trainer_rtf: '71'
ts: '83'
wind_surgery: ''
wind_surgery_run: ''
RacecardsOddsPage:
properties:
racecards:
items:
$ref: '#/components/schemas/RacecardOdds'
type: array
title: Racecards
total:
type: integer
title: Total
limit:
type: integer
title: Limit
skip:
type: integer
title: Skip
query:
items:
items: {}
type: array
type: array
title: Query
type: object
required:
- racecards
- total
- limit
- skip
- query
title: RacecardsOddsPage
securitySchemes:
HTTPBasic:
type: http
scheme: basic
x-tagGroups:
- name: Get Started
tags:
- Introduction
- Authentication
- Endpoint Overview
- Rate Limits
- Changelog
- name: Core API
tags:
- Courses
- Dams
- Damsires
- Horses
- Jockeys
- Odds
- Owners
- Racecards
- Results
- Sires
- Trainers
- name: Core API (by plan level)
tags:
- Free Plan
- Basic Plan
- Standard Plan
- Pro Plan
- name: Regional APIs
tags:
- Australia
- North America