openapi: 3.1.0 info: title: The Racing Australia Results API version: 1.4.3 x-logo: url: https://www.theracingapi.com/static/images/logo_padded.png description: High performance API for horse racing statistical modelling, application development and web content. Complete coverage of UK, Irish and Hong Kong horse racing. contact: url: https://www.theracingapi.com/ x-generated-from: official-openapi-spec servers: - url: https://api.theracingapi.com description: Production server tags: - name: Results paths: /v1/results: get: tags: - Results summary: The Racing API Results description: '

Get historic results for all races in the last 12 months

Min. Required PlanStandard
Rate Limit5 requests per second
Add-ons[Optional] Core database historical results add-on: users on the Pro Plan can pay a one-time fee of £499 to remove the 12 month restriction and access over 30 years of results from this endpoint. Contact support@theracingapi.com for information.

Efficiently querying and exporting results data

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.

ℹ️ 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: https://gist.github.com/theracingapi/4d492dbdba58c2072fe4f98ee090126f

' operationId: results_v1_results_get security: - HTTPBasic: [] parameters: - 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

Default: 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 1988-01-01.

title: Start Date description:

Query from date with format YYYY-MM-DD, e.g. 2020-01-01

Default: 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 1988-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

Default: Today's date. Maximum range between start and end date is 365 days.

title: End Date description:

Query to date with format YYYY-MM-DD, e.g. 2020-01-01

Default: Today's date. Maximum range between start and end date is 365 days.

- 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 maximum: 20000 - type: 'null' title: Skip default: 0 responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ResultsStandardPage' '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/results ' label: cURL - lang: Python source: 'import requests from requests.auth import HTTPBasicAuth url = "https://api.theracingapi.com/v1/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/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/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/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/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/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/results/today: get: tags: - Results summary: The Racing API Results Today description:

Get today's results

Min. Required PlanBasic
Rate Limit5 requests per second
operationId: results_today_v1_results_today_get security: - HTTPBasic: [] parameters: - name: region in: query required: false schema: anyOf: - type: array items: type: string - type: 'null' description:

Query results by region codes. Get the full list here.

title: Region description:

Query results by region codes. Get the full list here.

- 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/results/today ' label: cURL - lang: Python source: 'import requests from requests.auth import HTTPBasicAuth url = "https://api.theracingapi.com/v1/results/today" 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/results/today?${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/results/today'') 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/results/today\"))\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/results/today?\" + 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/results/today?{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/results/today/free: get: tags: - Results summary: The Racing API Results Today Free description:

Get today's results (basic data only)

Min. Required PlanFree
Rate Limit1 requests per second
operationId: results_today_free_v1_results_today_free_get security: - HTTPBasic: [] parameters: - name: region in: query required: false schema: anyOf: - type: array items: type: string - type: 'null' description:

Query results by region codes. Get the full list here.

title: Region description:

Query results by region codes. Get the full list here.

- 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/ResultsFreePage' '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/results/today/free ' label: cURL - lang: Python source: 'import requests from requests.auth import HTTPBasicAuth url = "https://api.theracingapi.com/v1/results/today/free" 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/results/today/free?${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/results/today/free'') 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/results/today/free\"))\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/results/today/free?\" + 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/results/today/free?{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/results/{race_id}: get: tags: - Results summary: The Racing API Result description:

Get a result

Min. Required PlanStandard
Rate Limit5 requests per second
operationId: result_v1_results__race_id__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/ResultStandard' '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/results/{race_id} ' label: cURL - lang: Python source: 'import requests from requests.auth import HTTPBasicAuth url = "https://api.theracingapi.com/v1/results/{race_id}" 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/results/{race_id}?${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/results/{race_id}'') 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/results/{race_id}\"))\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/results/{race_id}?\" + 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/results/{race_id}?{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: ResultsFreePage: properties: results: anyOf: - items: $ref: '#/components/schemas/ResultFree' 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: ResultsFreePage HTTPValidationError: properties: detail: items: $ref: '#/components/schemas/ValidationError' type: array title: Detail type: object title: HTTPValidationError 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 RunnerStandard: 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 bsp: anyOf: - type: string - type: 'null' title: Bsp default: '' 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: RunnerStandard example: age: '8' bsp: '11.26' 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' 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) ResultFree: properties: race_id: type: string title: Race Id course: type: string title: Course date: type: string title: Date 'off': type: string title: 'Off' off_dt: anyOf: - type: string - type: 'null' title: Off Dt default: '' race_name: type: string title: Race Name dist_f: type: string title: Dist F region: type: string title: Region pattern: type: string title: Pattern class: type: string title: Class type: type: string title: Type age_band: type: string title: Age Band rating_band: type: string title: Rating Band sex_rest: type: string title: Sex Rest going: type: string title: Going surface: anyOf: - type: string - type: 'null' title: Surface default: '' runners: items: $ref: '#/components/schemas/RunnerFree' type: array title: Runners type: object required: - race_id - course - date - 'off' - race_name - dist_f - region - pattern - class - type - age_band - rating_band - sex_rest - going - runners title: ResultFree example: age_band: 4yo+ class: '' course: Ballinrobe (IRE) date: '2025-08-11' dist_f: 23f going: Good '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' 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_id: jky_302916 number: '2' or: '98' owner: Restricted Movement Syndicate owner_id: own_1204876 position: '1' sex: G sire: Kendargent (FR) sire_id: sir_4514419 trainer: Gerard Keane trainer_id: trn_86382 weight: 11-12 weight_lbs: '166' sex_rest: '' surface: Turf type: Hurdle 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 RunnerFree: properties: horse_id: type: string title: Horse Id horse: type: string title: Horse age: type: string title: Age sex: type: string title: Sex number: type: string title: Number position: type: string title: Position draw: type: string title: Draw weight: type: string title: Weight weight_lbs: type: string title: Weight Lbs headgear: type: string title: Headgear or: type: string title: Or jockey: type: string title: Jockey 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 type: object required: - horse_id - horse - age - sex - number - position - draw - weight - weight_lbs - headgear - or - jockey - jockey_id - trainer - trainer_id - owner - owner_id - sire - sire_id - dam - dam_id - damsire - damsire_id title: RunnerFree example: age: '8' 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_id: jky_302916 number: '2' or: '98' owner: Restricted Movement Syndicate owner_id: own_1204876 position: '1' sex: G sire: Kendargent (FR) sire_id: sir_4514419 trainer: Gerard Keane trainer_id: trn_86382 weight: 11-12 weight_lbs: '166' 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' ResultsStandardPage: properties: results: anyOf: - items: $ref: '#/components/schemas/ResultStandard' 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: ResultsStandardPage ResultStandard: 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/RunnerStandard' 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: ResultStandard 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' bsp: '11.26' 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) 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