openapi: 3.1.0 info: title: The Racing 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 paths: /v1/courses/regions: get: tags: - Courses - Free Plan - Basic Plan - Standard Plan - Pro Plan summary: The Racing API Regions description:
| Min. Required Plan | Free |
| Rate Limit | 1 requests per second |
| Min. Required Plan | Free |
| Rate Limit | 1 requests per second |
| Min. Required Plan | Standard |
| Rate Limit | 5 requests per second |
| Min. Required Plan | Pro |
| Rate Limit | 5 requests per second |
ℹ️ To view a dam's own racing results, use the horse results endpoint, repacing the 'dam_' id prefix with 'hrs_'.
operationId: dam_progeny_results_v1_dams__dam_id__results_get security: - HTTPBasic: [] parameters: - name: dam_id in: path required: true schema: type: string title: Dam 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
Default: 365 days ago. Can 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. Can 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
Query by race type
Options: chase, flat,
hurdle, nh_flat
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
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
Query by class
Options: class_1, class_2,
class_3, class_4, class_5, class_6,
class_7
Query by class
Options: class_1, class_2,
class_3, class_4, class_5, class_6,
class_7
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+
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+
Query by sex restriction
Options: c&f,
c&g, f, f&m, m, m&g
Query by sex restriction
Options: c&f,
c&g, f, f&m, m, m&g
| Min. Required Plan | Standard |
| Rate Limit | 5 requests per second |
Query from date with format YYYY-MM-DD, e.g. 2020-01-01
Query from date with format YYYY-MM-DD, e.g. 2020-01-01
Query to date with format YYYY-MM-DD, e.g. 2020-01-01
Query to date with format YYYY-MM-DD, e.g. 2020-01-01
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
Query by race type
Options: chase, flat,
hurdle, nh_flat
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
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
Query by class
Options: class_1, class_2,
class_3, class_4, class_5, class_6,
class_7
Query by class
Options: class_1, class_2,
class_3, class_4, class_5, class_6,
class_7
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+
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+
Query by sex restriction
Options: c&f,
c&g, f, f&m, m, m&g
Query by sex restriction
Options: c&f,
c&g, f, f&m, m, m&g
| Min. Required Plan | Standard |
| Rate Limit | 5 requests per second |
Query from date with format YYYY-MM-DD, e.g. 2020-01-01
Query from date with format YYYY-MM-DD, e.g. 2020-01-01
Query to date with format YYYY-MM-DD, e.g. 2020-01-01
Query to date with format YYYY-MM-DD, e.g. 2020-01-01
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
Query by race type
Options: chase, flat,
hurdle, nh_flat
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
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
Query by class
Options: class_1, class_2,
class_3, class_4, class_5, class_6,
class_7
Query by class
Options: class_1, class_2,
class_3, class_4, class_5, class_6,
class_7
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+
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+
Query by sex restriction
Options: c&f,
c&g, f, f&m, m, m&g
Query by sex restriction
Options: c&f,
c&g, f, f&m, m, m&g
| Min. Required Plan | Standard |
| Rate Limit | 5 requests per second |
| Min. Required Plan | Pro |
| Rate Limit | 5 requests per second |
ℹ️ To view a damsire's own racing results, use the horse results endpoint, repacing the 'dsi_' id prefix with 'hrs_'.
operationId: damsire_grandoffspring_results_v1_damsires__damsire_id__results_get security: - HTTPBasic: [] parameters: - name: damsire_id in: path required: true schema: type: string title: Damsire 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
Default: 365 days ago. Can 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. Can 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
Query by race type
Options: chase, flat,
hurdle, nh_flat
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
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
Query by class
Options: class_1, class_2,
class_3, class_4, class_5, class_6,
class_7
Query by class
Options: class_1, class_2,
class_3, class_4, class_5, class_6,
class_7
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+
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+
Query by sex restriction
Options: c&f,
c&g, f, f&m, m, m&g
Query by sex restriction
Options: c&f,
c&g, f, f&m, m, m&g
| Min. Required Plan | Standard |
| Rate Limit | 5 requests per second |
Query from date with format YYYY-MM-DD, e.g. 2020-01-01
Query from date with format YYYY-MM-DD, e.g. 2020-01-01
Query to date with format YYYY-MM-DD, e.g. 2020-01-01
Query to date with format YYYY-MM-DD, e.g. 2020-01-01
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
Query by race type
Options: chase, flat,
hurdle, nh_flat
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
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
Query by class
Options: class_1, class_2,
class_3, class_4, class_5, class_6,
class_7
Query by class
Options: class_1, class_2,
class_3, class_4, class_5, class_6,
class_7
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+
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+
Query by sex restriction
Options: c&f,
c&g, f, f&m, m, m&g
Query by sex restriction
Options: c&f,
c&g, f, f&m, m, m&g
| Min. Required Plan | Standard |
| Rate Limit | 5 requests per second |
Query from date with format YYYY-MM-DD, e.g. 2020-01-01
Query from date with format YYYY-MM-DD, e.g. 2020-01-01
Query to date with format YYYY-MM-DD, e.g. 2020-01-01
Query to date with format YYYY-MM-DD, e.g. 2020-01-01
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
Query by race type
Options: chase, flat,
hurdle, nh_flat
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
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
Query by class
Options: class_1, class_2,
class_3, class_4, class_5, class_6,
class_7
Query by class
Options: class_1, class_2,
class_3, class_4, class_5, class_6,
class_7
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+
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+
Query by sex restriction
Options: c&f,
c&g, f, f&m, m, m&g
Query by sex restriction
Options: c&f,
c&g, f, f&m, m, m&g
| Min. Required Plan | Standard |
| Rate Limit | 5 requests per second |
| Min. Required Plan | Pro |
| Rate Limit | 5 requests per second |
Query from date with format YYYY-MM-DD, e.g. 2020-01-01
Query from date with format YYYY-MM-DD, e.g. 2020-01-01
Query to date with format YYYY-MM-DD, e.g. 2020-01-01
Query to date with format YYYY-MM-DD, e.g. 2020-01-01
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
Query by race type
Options: chase, flat,
hurdle, nh_flat
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
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
Query by class
Options: class_1, class_2,
class_3, class_4, class_5, class_6,
class_7
Query by class
Options: class_1, class_2,
class_3, class_4, class_5, class_6,
class_7
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+
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+
Query by sex restriction
Options: c&f,
c&g, f, f&m, m, m&g
Query by sex restriction
Options: c&f,
c&g, f, f&m, m, m&g
| Min. Required Plan | Basic |
| Rate Limit | 5 requests per second |
Query from date with format YYYY-MM-DD, e.g. 2020-01-01
Query from date with format YYYY-MM-DD, e.g. 2020-01-01
Query to date with format YYYY-MM-DD, e.g. 2020-01-01
Query to date with format YYYY-MM-DD, e.g. 2020-01-01
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
Query by race type
Options: chase, flat,
hurdle, nh_flat
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
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
Query by class
Options: class_1, class_2,
class_3, class_4, class_5, class_6,
class_7
Query by class
Options: class_1, class_2,
class_3, class_4, class_5, class_6,
class_7
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+
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+
Query by sex restriction
Options: c&f,
c&g, f, f&m, m, m&g
Query by sex restriction
Options: c&f,
c&g, f, f&m, m, m&g
| Min. Required Plan | Standard |
| Rate Limit | 5 requests per second |
ℹ️ You may also get profiles for a sire/dam/damsire using this endpoint by replacing their id prefix with 'hrs_'
operationId: horse_standard_v1_horses__horse_id__standard_get security: - HTTPBasic: [] parameters: - name: horse_id in: path required: true schema: type: string title: Horse Id responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/Horse' '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/horses/{horse_id}/standard ' label: cURL - lang: Python source: 'import requests from requests.auth import HTTPBasicAuth url = "https://api.theracingapi.com/v1/horses/{horse_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({});\n\ const url = `https://api.theracingapi.com/v1/horses/{horse_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/horses/{horse_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| Min. Required Plan | Pro |
| Rate Limit | 5 requests per second |
ℹ️ You may also get profiles for a sire/dam/damsire using this endpoint by replacing their id prefix with 'hrs_'
ℹ️ If a detailed profile for a horse can't be found, a basic profile may still be found using the Horse Standard endpoint
operationId: horse_pro_v1_horses__horse_id__pro_get security: - HTTPBasic: [] parameters: - name: horse_id in: path required: true schema: type: string title: Horse Id responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/HorsePro' '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/horses/{horse_id}/pro ' label: cURL - lang: Python source: 'import requests from requests.auth import HTTPBasicAuth url = "https://api.theracingapi.com/v1/horses/{horse_id}/pro" 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({});\n\ const url = `https://api.theracingapi.com/v1/horses/{horse_id}/pro?${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/horses/{horse_id}/pro'') 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| Min. Required Plan | Standard |
| Rate Limit | 5 requests per second |
| Min. Required Plan | Pro |
| Rate Limit | 5 requests per second |
Query from date with format YYYY-MM-DD, e.g. 2020-01-01
Default: 365 days ago. Can 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. Can 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
Query by race type
Options: chase, flat,
hurdle, nh_flat
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
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
Query by class
Options: class_1, class_2,
class_3, class_4, class_5, class_6,
class_7
Query by class
Options: class_1, class_2,
class_3, class_4, class_5, class_6,
class_7
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+
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+
Query by sex restriction
Options: c&f,
c&g, f, f&m, m, m&g
Query by sex restriction
Options: c&f,
c&g, f, f&m, m, m&g
| Min. Required Plan | Standard |
| Rate Limit | 5 requests per second |
Query from date with format YYYY-MM-DD, e.g. 2020-01-01
Query from date with format YYYY-MM-DD, e.g. 2020-01-01
Query to date with format YYYY-MM-DD, e.g. 2020-01-01
Query to date with format YYYY-MM-DD, e.g. 2020-01-01
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
Query by race type
Options: chase, flat,
hurdle, nh_flat
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
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
Query by class
Options: class_1, class_2,
class_3, class_4, class_5, class_6,
class_7
Query by class
Options: class_1, class_2,
class_3, class_4, class_5, class_6,
class_7
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+
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+
Query by sex restriction
Options: c&f,
c&g, f, f&m, m, m&g
Query by sex restriction
Options: c&f,
c&g, f, f&m, m, m&g
| Min. Required Plan | Standard |
| Rate Limit | 5 requests per second |
Query from date with format YYYY-MM-DD, e.g. 2020-01-01
Query from date with format YYYY-MM-DD, e.g. 2020-01-01
Query to date with format YYYY-MM-DD, e.g. 2020-01-01
Query to date with format YYYY-MM-DD, e.g. 2020-01-01
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
Query by race type
Options: chase, flat,
hurdle, nh_flat
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
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
Query by class
Options: class_1, class_2,
class_3, class_4, class_5, class_6,
class_7
Query by class
Options: class_1, class_2,
class_3, class_4, class_5, class_6,
class_7
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+
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+
Query by sex restriction
Options: c&f,
c&g, f, f&m, m, m&g
Query by sex restriction
Options: c&f,
c&g, f, f&m, m, m&g
| Min. Required Plan | Standard |
| Rate Limit | 5 requests per second |
Query from date with format YYYY-MM-DD, e.g. 2020-01-01
Query from date with format YYYY-MM-DD, e.g. 2020-01-01
Query to date with format YYYY-MM-DD, e.g. 2020-01-01
Query to date with format YYYY-MM-DD, e.g. 2020-01-01
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
Query by race type
Options: chase, flat,
hurdle, nh_flat
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
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
Query by class
Options: class_1, class_2,
class_3, class_4, class_5, class_6,
class_7
Query by class
Options: class_1, class_2,
class_3, class_4, class_5, class_6,
class_7
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+
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+
Query by sex restriction
Options: c&f,
c&g, f, f&m, m, m&g
Query by sex restriction
Options: c&f,
c&g, f, f&m, m, m&g
| Min. Required Plan | Standard |
| Rate Limit | 5 requests per second |
Query from date with format YYYY-MM-DD, e.g. 2020-01-01
Query from date with format YYYY-MM-DD, e.g. 2020-01-01
Query to date with format YYYY-MM-DD, e.g. 2020-01-01
Query to date with format YYYY-MM-DD, e.g. 2020-01-01
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
Query by race type
Options: chase, flat,
hurdle, nh_flat
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
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
Query by class
Options: class_1, class_2,
class_3, class_4, class_5, class_6,
class_7
Query by class
Options: class_1, class_2,
class_3, class_4, class_5, class_6,
class_7
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+
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+
Query by sex restriction
Options: c&f,
c&g, f, f&m, m, m&g
Query by sex restriction
Options: c&f,
c&g, f, f&m, m, m&g
| Min. Required Plan | Pro |
| Rate Limit | 5 requests per second |
ℹ️ Price movements, displayed in the 'history' fields, are available for runners in races from 2025-03-17 onwards.
operationId: odds_runner_v1_odds__race_id___horse_id__get security: - HTTPBasic: [] parameters: - name: race_id in: path required: true schema: type: string title: Race Id - name: horse_id in: path required: true schema: type: string title: Horse Id responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/RaceRunnerOdds' '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/odds/{race_id}/{horse_id} ' label: cURL - lang: Python source: 'import requests from requests.auth import HTTPBasicAuth url = "https://api.theracingapi.com/v1/odds/{race_id}/{horse_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({});\n\ const url = `https://api.theracingapi.com/v1/odds/{race_id}/{horse_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/odds/{race_id}/{horse_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| Min. Required Plan | Standard |
| Rate Limit | 5 requests per second |
| Min. Required Plan | Pro |
| Rate Limit | 5 requests per second |
Query from date with format YYYY-MM-DD, e.g. 2020-01-01
Default: 365 days ago. Can 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. Can 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
Query by race type
Options: chase, flat,
hurdle, nh_flat
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
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
Query by class
Options: class_1, class_2,
class_3, class_4, class_5, class_6,
class_7
Query by class
Options: class_1, class_2,
class_3, class_4, class_5, class_6,
class_7
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+
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+
Query by sex restriction
Options: c&f,
c&g, f, f&m, m, m&g
Query by sex restriction
Options: c&f,
c&g, f, f&m, m, m&g
| Min. Required Plan | Standard |
| Rate Limit | 5 requests per second |
Query from date with format YYYY-MM-DD, e.g. 2020-01-01
Query from date with format YYYY-MM-DD, e.g. 2020-01-01
Query to date with format YYYY-MM-DD, e.g. 2020-01-01
Query to date with format YYYY-MM-DD, e.g. 2020-01-01
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
Query by race type
Options: chase, flat,
hurdle, nh_flat
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
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
Query by class
Options: class_1, class_2,
class_3, class_4, class_5, class_6,
class_7
Query by class
Options: class_1, class_2,
class_3, class_4, class_5, class_6,
class_7
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+
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+
Query by sex restriction
Options: c&f,
c&g, f, f&m, m, m&g
Query by sex restriction
Options: c&f,
c&g, f, f&m, m, m&g
| Min. Required Plan | Standard |
| Rate Limit | 5 requests per second |
Query from date with format YYYY-MM-DD, e.g. 2020-01-01
Query from date with format YYYY-MM-DD, e.g. 2020-01-01
Query to date with format YYYY-MM-DD, e.g. 2020-01-01
Query to date with format YYYY-MM-DD, e.g. 2020-01-01
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
Query by race type
Options: chase, flat,
hurdle, nh_flat
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
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
Query by class
Options: class_1, class_2,
class_3, class_4, class_5, class_6,
class_7
Query by class
Options: class_1, class_2,
class_3, class_4, class_5, class_6,
class_7
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+
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+
Query by sex restriction
Options: c&f,
c&g, f, f&m, m, m&g
Query by sex restriction
Options: c&f,
c&g, f, f&m, m, m&g
| Min. Required Plan | Standard |
| Rate Limit | 5 requests per second |
Query from date with format YYYY-MM-DD, e.g. 2020-01-01
Query from date with format YYYY-MM-DD, e.g. 2020-01-01
Query to date with format YYYY-MM-DD, e.g. 2020-01-01
Query to date with format YYYY-MM-DD, e.g. 2020-01-01
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
Query by race type
Options: chase, flat,
hurdle, nh_flat
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
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
Query by class
Options: class_1, class_2,
class_3, class_4, class_5, class_6,
class_7
Query by class
Options: class_1, class_2,
class_3, class_4, class_5, class_6,
class_7
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+
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+
Query by sex restriction
Options: c&f,
c&g, f, f&m, m, m&g
Query by sex restriction
Options: c&f,
c&g, f, f&m, m, m&g
| Min. Required Plan | Standard |
| Rate Limit | 5 requests per second |
Query from date with format YYYY-MM-DD, e.g. 2020-01-01
Query from date with format YYYY-MM-DD, e.g. 2020-01-01
Query to date with format YYYY-MM-DD, e.g. 2020-01-01
Query to date with format YYYY-MM-DD, e.g. 2020-01-01
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
Query by race type
Options: chase, flat,
hurdle, nh_flat
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
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
Query by class
Options: class_1, class_2,
class_3, class_4, class_5, class_6,
class_7
Query by class
Options: class_1, class_2,
class_3, class_4, class_5, class_6,
class_7
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+
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+
Query by sex restriction
Options: c&f,
c&g, f, f&m, m, m&g
Query by sex restriction
Options: c&f,
c&g, f, f&m, m, m&g
| Min. Required Plan | Free |
| Rate Limit | 1 request per second |
Query by region codes. Get the full list here.
Note: If the course query parameter is specified, this will be ignored.
' description: 'Query by region codes. Get the full list here.
Note: If the course query parameter is specified, this will be ignored.
' - name: course_ids in: query required: false schema: anyOf: - type: array items: type: string - type: 'null' title: Courses description: Query by course ids. Get the full list here. description: Query by course ids. Get the full list here. - name: limit in: query required: false schema: anyOf: - type: integer maximum: 500 minimum: 1 - type: 'null' title: Limit default: 500 - name: skip in: query required: false schema: anyOf: - type: integer maximum: 500 - type: 'null' title: Skip default: 0 responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/RacecardsBasicPage' '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/free ' label: cURL - lang: Python source: 'import requests from requests.auth import HTTPBasicAuth url = "https://api.theracingapi.com/v1/racecards/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({});\n\ const url = `https://api.theracingapi.com/v1/racecards/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/racecards/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| Min. Required Plan | Basic |
| Rate Limit | 2 requests per second |
Query by region codes. Get the full list here.
Note: If the course query parameter is specified, this will be ignored.
' description: 'Query by region codes. Get the full list here.
Note: If the course query parameter is specified, this will be ignored.
' - name: course_ids in: query required: false schema: anyOf: - type: array items: type: string - type: 'null' title: Courses description: Query by course ids. Get the full list here. description: Query by course ids. Get the full list here. - name: limit in: query required: false schema: anyOf: - type: integer maximum: 500 minimum: 1 - type: 'null' title: Limit default: 500 - name: skip in: query required: false schema: anyOf: - type: integer maximum: 500 - type: 'null' title: Skip default: 0 responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/RacecardsPage' '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/basic ' label: cURL - lang: Python source: 'import requests from requests.auth import HTTPBasicAuth url = "https://api.theracingapi.com/v1/racecards/basic" 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({});\n\ const url = `https://api.theracingapi.com/v1/racecards/basic?${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/basic'') 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| Min. Required Plan | Standard |
| Rate Limit | 2 requests per second |
Query by region codes. Get the full list here.
Note: If the course query parameter is specified, this will be ignored.
' description: 'Query by region codes. Get the full list here.
Note: If the course query parameter is specified, this will be ignored.
' - name: course_ids in: query required: false schema: anyOf: - type: array items: type: string - type: 'null' title: Courses description: Query by course ids. Get the full list here. description: Query by course ids. Get the full list here. - name: limit in: query required: false schema: anyOf: - type: integer maximum: 500 minimum: 1 - type: 'null' title: Limit default: 500 - name: skip in: query required: false schema: anyOf: - type: integer maximum: 500 - type: 'null' title: Skip default: 0 responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/RacecardsOddsPage' '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/standard ' label: cURL - lang: Python source: 'import requests from requests.auth import HTTPBasicAuth url = "https://api.theracingapi.com/v1/racecards/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({});\n\ const url = `https://api.theracingapi.com/v1/racecards/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/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| Min. Required Plan | Pro |
| Rate Limit | 2 requests per second |
ℹ️ Historical racecards are available from 2023-01-23, when our tracking began. Future racecards are available up to 1 week in advance.
operationId: racecards_pro_v1_racecards_pro_get security: - HTTPBasic: [] parameters: - name: date in: query required: false schema: anyOf: - type: string - type: 'null' title: Date description: Query racecards by date with format YYYY-MM-DD (e.g 2023-04-05) description: Query racecards by date with format YYYY-MM-DD (e.g 2023-04-05) - name: region_codes in: query required: false schema: anyOf: - type: array items: type: string - type: 'null' title: Regions description: 'Query by region codes. Get the full list here.
Note: If the course query parameter is specified, this will be ignored.
' description: 'Query by region codes. Get the full list here.
Note: If the course query parameter is specified, this will be ignored.
' - name: course_ids in: query required: false schema: anyOf: - type: array items: type: string - type: 'null' title: Courses description: Query by course ids. Get the full list here. description: Query by course ids. Get the full list here. - name: limit in: query required: false schema: anyOf: - type: integer maximum: 500 minimum: 1 - type: 'null' title: Limit default: 500 - name: skip in: query required: false schema: anyOf: - type: integer maximum: 500 - type: 'null' title: Skip default: 0 responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/RacecardsOddsProPage' '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/pro ' label: cURL - lang: Python source: 'import requests from requests.auth import HTTPBasicAuth url = "https://api.theracingapi.com/v1/racecards/pro" 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({});\n\ const url = `https://api.theracingapi.com/v1/racecards/pro?${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/pro'') 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| Min. Required Plan | Standard |
| Rate Limit | 2 requests per second |
Query from date with format YYYY-MM-DD, e.g. 2020-01-01
Date must be today or greater, defaults to today.
title: Start Date description:Query from date with format YYYY-MM-DD, e.g. 2020-01-01
Date must be today or greater, defaults to today.
- 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
Query to date with format YYYY-MM-DD, e.g. 2020-01-01
Query by region codes. Get the full list here.
Note: If the course query parameter is specified, this will be ignored.
' description: 'Query by region codes. Get the full list here.
Note: If the course query parameter is specified, this will be ignored.
' - name: course_ids in: query required: false schema: anyOf: - type: array items: type: string - type: 'null' title: Courses description: Query by course ids. Get the full list here. description: Query by course ids. Get the full list here. - name: limit in: query required: false schema: anyOf: - type: integer maximum: 500 minimum: 1 - type: 'null' title: Limit default: 500 - name: skip in: query required: false schema: anyOf: - type: integer maximum: 500 - type: 'null' title: Skip default: 0 responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/RacecardsOddsPage' '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/big-races ' label: cURL - lang: Python source: 'import requests from requests.auth import HTTPBasicAuth url = "https://api.theracingapi.com/v1/racecards/big-races" 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({});\n\ const url = `https://api.theracingapi.com/v1/racecards/big-races?${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/big-races'') 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| Min. Required Plan | Basic |
| Rate Limit | 5 requests per second |
Query by region codes. Get the full list here.
Note: If the course query parameter is specified, this will be ignored.
' description: 'Query by region codes. Get the full list here.
Note: If the course query parameter is specified, this will be ignored.
' - name: course_ids in: query required: false schema: anyOf: - type: array items: type: string - type: 'null' title: Courses description: Query by course ids. Get the full list here. description: Query by course ids. Get the full list here. responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/RacecardsSummary' '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/summaries ' label: cURL - lang: Python source: 'import requests from requests.auth import HTTPBasicAuth url = "https://api.theracingapi.com/v1/racecards/summaries" 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({});\n\ const url = `https://api.theracingapi.com/v1/racecards/summaries?${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/summaries'') 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| Min. Required Plan | Basic |
| Rate Limit | 5 requests per second |
Query from date with format YYYY-MM-DD, e.g. 2020-01-01
Query from date with format YYYY-MM-DD, e.g. 2020-01-01
Query to date with format YYYY-MM-DD, e.g. 2020-01-01
Query to date with format YYYY-MM-DD, e.g. 2020-01-01
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
Query by race type
Options: chase, flat,
hurdle, nh_flat
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
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
Query by class
Options: class_1, class_2,
class_3, class_4, class_5, class_6,
class_7
Query by class
Options: class_1, class_2,
class_3, class_4, class_5, class_6,
class_7
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+
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+
Query by sex restriction
Options: c&f,
c&g, f, f&m, m, m&g
Query by sex restriction
Options: c&f,
c&g, f, f&m, m, m&g
| Min. Required Plan | Standard |
| Rate Limit | 5 requests per second |
| Min. Required Plan | Pro |
| Rate Limit | 5 requests per second |
| Min. Required Plan | Standard |
| Rate Limit | 5 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. |
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
Query by race type
Options: chase, flat,
hurdle, nh_flat
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
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
Query by class
Options: class_1, class_2,
class_3, class_4, class_5, class_6,
class_7
Query by class
Options: class_1, class_2,
class_3, class_4, class_5, class_6,
class_7
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+
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+
Query by sex restriction
Options: c&f,
c&g, f, f&m, m, m&g
Query by sex restriction
Options: c&f,
c&g, f, f&m, m, m&g
| Min. Required Plan | Basic |
| Rate Limit | 5 requests per second |
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({});\n\ const 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| Min. Required Plan | Free |
| Rate Limit | 1 requests per second |
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({});\n\ const 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| Min. Required Plan | Standard |
| Rate Limit | 5 requests per second |
| Min. Required Plan | Standard |
| Rate Limit | 5 requests per second |
| Min. Required Plan | Pro |
| Rate Limit | 5 requests per second |
ℹ️ To view a sire's own racing results, use the horse results endpoint, repacing the 'sir_' id prefix with 'hrs_'.
operationId: sire_progeny_results_v1_sires__sire_id__results_get security: - HTTPBasic: [] parameters: - name: sire_id in: path required: true schema: type: string title: Sire 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
Default: 365 days ago. Can 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. Can 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
Query by race type
Options: chase, flat,
hurdle, nh_flat
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
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
Query by class
Options: class_1, class_2,
class_3, class_4, class_5, class_6,
class_7
Query by class
Options: class_1, class_2,
class_3, class_4, class_5, class_6,
class_7
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+
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+
Query by sex restriction
Options: c&f,
c&g, f, f&m, m, m&g
Query by sex restriction
Options: c&f,
c&g, f, f&m, m, m&g
| Min. Required Plan | Standard |
| Rate Limit | 5 requests per second |
Query from date with format YYYY-MM-DD, e.g. 2020-01-01
Query from date with format YYYY-MM-DD, e.g. 2020-01-01
Query to date with format YYYY-MM-DD, e.g. 2020-01-01
Query to date with format YYYY-MM-DD, e.g. 2020-01-01
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
Query by race type
Options: chase, flat,
hurdle, nh_flat
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
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
Query by class
Options: class_1, class_2,
class_3, class_4, class_5, class_6,
class_7
Query by class
Options: class_1, class_2,
class_3, class_4, class_5, class_6,
class_7
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+
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+
Query by sex restriction
Options: c&f,
c&g, f, f&m, m, m&g
Query by sex restriction
Options: c&f,
c&g, f, f&m, m, m&g
| Min. Required Plan | Standard |
| Rate Limit | 5 requests per second |
Query from date with format YYYY-MM-DD, e.g. 2020-01-01
Query from date with format YYYY-MM-DD, e.g. 2020-01-01
Query to date with format YYYY-MM-DD, e.g. 2020-01-01
Query to date with format YYYY-MM-DD, e.g. 2020-01-01
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
Query by race type
Options: chase, flat,
hurdle, nh_flat
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
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
Query by class
Options: class_1, class_2,
class_3, class_4, class_5, class_6,
class_7
Query by class
Options: class_1, class_2,
class_3, class_4, class_5, class_6,
class_7
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+
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+
Query by sex restriction
Options: c&f,
c&g, f, f&m, m, m&g
Query by sex restriction
Options: c&f,
c&g, f, f&m, m, m&g
| Min. Required Plan | Standard |
| Rate Limit | 5 requests per second |
| Min. Required Plan | Pro |
| Rate Limit | 5 requests per second |
Query from date with format YYYY-MM-DD, e.g. 2020-01-01
Default: 365 days ago. Can 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. Can 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
Query by race type
Options: chase, flat,
hurdle, nh_flat
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
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
Query by class
Options: class_1, class_2,
class_3, class_4, class_5, class_6,
class_7
Query by class
Options: class_1, class_2,
class_3, class_4, class_5, class_6,
class_7
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+
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+
Query by sex restriction
Options: c&f,
c&g, f, f&m, m, m&g
Query by sex restriction
Options: c&f,
c&g, f, f&m, m, m&g
| Min. Required Plan | Standard |
| Rate Limit | 5 requests per second |
Query from date with format YYYY-MM-DD, e.g. 2020-01-01
Query from date with format YYYY-MM-DD, e.g. 2020-01-01
Query to date with format YYYY-MM-DD, e.g. 2020-01-01
Query to date with format YYYY-MM-DD, e.g. 2020-01-01
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
Query by race type
Options: chase, flat,
hurdle, nh_flat
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
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
Query by class
Options: class_1, class_2,
class_3, class_4, class_5, class_6,
class_7
Query by class
Options: class_1, class_2,
class_3, class_4, class_5, class_6,
class_7
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+
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+
Query by sex restriction
Options: c&f,
c&g, f, f&m, m, m&g
Query by sex restriction
Options: c&f,
c&g, f, f&m, m, m&g
| Min. Required Plan | Standard |
| Rate Limit | 5 requests per second |
Query from date with format YYYY-MM-DD, e.g. 2020-01-01
Query from date with format YYYY-MM-DD, e.g. 2020-01-01
Query to date with format YYYY-MM-DD, e.g. 2020-01-01
Query to date with format YYYY-MM-DD, e.g. 2020-01-01
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
Query by race type
Options: chase, flat,
hurdle, nh_flat
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
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
Query by class
Options: class_1, class_2,
class_3, class_4, class_5, class_6,
class_7
Query by class
Options: class_1, class_2,
class_3, class_4, class_5, class_6,
class_7
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+
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+
Query by sex restriction
Options: c&f,
c&g, f, f&m, m, m&g
Query by sex restriction
Options: c&f,
c&g, f, f&m, m, m&g
| Min. Required Plan | Standard |
| Rate Limit | 5 requests per second |
Query from date with format YYYY-MM-DD, e.g. 2020-01-01
Query from date with format YYYY-MM-DD, e.g. 2020-01-01
Query to date with format YYYY-MM-DD, e.g. 2020-01-01
Query to date with format YYYY-MM-DD, e.g. 2020-01-01
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
Query by race type
Options: chase, flat,
hurdle, nh_flat
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
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
Query by class
Options: class_1, class_2,
class_3, class_4, class_5, class_6,
class_7
Query by class
Options: class_1, class_2,
class_3, class_4, class_5, class_6,
class_7
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+
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+
Query by sex restriction
Options: c&f,
c&g, f, f&m, m, m&g
Query by sex restriction
Options: c&f,
c&g, f, f&m, m, m&g
| Min. Required Plan | Standard |
| Rate Limit | 5 requests per second |
Query from date with format YYYY-MM-DD, e.g. 2020-01-01
Query from date with format YYYY-MM-DD, e.g. 2020-01-01
Query to date with format YYYY-MM-DD, e.g. 2020-01-01
Query to date with format YYYY-MM-DD, e.g. 2020-01-01
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
Query by race type
Options: chase, flat,
hurdle, nh_flat
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
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
Query by class
Options: class_1, class_2,
class_3, class_4, class_5, class_6,
class_7
Query by class
Options: class_1, class_2,
class_3, class_4, class_5, class_6,
class_7
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+
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+
Query by sex restriction
Options: c&f,
c&g, f, f&m, m, m&g
Query by sex restriction
Options: c&f,
c&g, f, f&m, m, m&g
| Min. Required Plan | Standard |
| Rate Limit | 5 requests per second |
Query from date with format YYYY-MM-DD, e.g. 2020-01-01
Query from date with format YYYY-MM-DD, e.g. 2020-01-01
Query to date with format YYYY-MM-DD, e.g. 2020-01-01
Query to date with format YYYY-MM-DD, e.g. 2020-01-01
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
Query by race type
Options: chase, flat,
hurdle, nh_flat
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
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
Query by class
Options: class_1, class_2,
class_3, class_4, class_5, class_6,
class_7
Query by class
Options: class_1, class_2,
class_3, class_4, class_5, class_6,
class_7
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+
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+
Query by sex restriction
Options: c&f,
c&g, f, f&m, m, m&g
Query by sex restriction
Options: c&f,
c&g, f, f&m, m, m&g
| Min. Required Plan | Free + North America regional add-on |
| Rate Limit | 5 requests per second |
| Add-ons | [Required] North America regional add-on: users on any plan can subscribe to this add-on for £49.99 per month. Contact support@theracingapi.com for information. |
Query from date with format YYYY-MM-DD, e.g. 2020-01-01
Query from date with format YYYY-MM-DD, e.g. 2020-01-01
Query to date with format YYYY-MM-DD, e.g. 2020-01-01
Query to date with format YYYY-MM-DD, e.g. 2020-01-01
| Min. Required Plan | Free + North America regional add-on |
| Rate Limit | 5 requests per second |
| Add-ons | [Required] North America regional add-on: users on any plan can subscribe to this add-on for £49.99 per month. Contact support@theracingapi.com for information. |
| Min. Required Plan | Free + North America regional add-on |
| Rate Limit | 5 requests per second |
| Add-ons | [Required] North America regional add-on: users on any plan can subscribe to this add-on for £49.99 per month. Contact support@theracingapi.com for information. |
| Min. Required Plan | Free + Australia regional add-on |
| Rate Limit | 5 requests per second |
| Add-ons |
|
| Min. Required Plan | Free + Australia regional add-on |
| Rate Limit | 5 requests per second |
| Add-ons |
|
| Min. Required Plan | Free + Australia regional add-on |
| Rate Limit | 5 requests per second |
| Add-ons | [Required] Australia regional add-on: users on any plan can subscribe to this add-on for £49.99 per month. Contact support@theracingapi.com for information. |
Welcome to The Racing API
\nThe Racing API provides a\ \ set of RESTful JSON endpoints, returning horse racing data from our database\ \ of over 500,000 results and pre-race racecards. The API is designed to meet\ \ the needs of application developers, data scientists, businesses and websites\ \ requiring punctual and accurate horse racing data.
\nThis API reference\ \ contains the technical documentation users will require to connect their integrations\ \ and third-party applications.
\nFAQ | Data Coverage | Terms of Service
\nFor support or feature\ \ requests, please email support@theracingapi.com.
\n\Once you subscribe to The Racing API, you will be able to\ \ login to your dashboard and view your API username and password.
\nIn\ \ order to authenticate your requests, you should use HTTP Basic Authentication,\ \ passing your username and password (Base64 encoded) in the Authorization\ \ header of your request.
\nIf your account becomes inactive, your\ \ invoice payment is overdue or you attempt to access endpoints not available\ \ to your subscription level, requests will return a 401 Unauthorized response.
\n\Default limits for the API\ \ are 5 requests per second for paid plans. Free plan users are limited\ \ to 1 request per second.\n
Some endpoints may have higher or lower\ \ rate limits than the default - these are specified in the documentation for\ \ each endpoint.
\nExceeding the rate limit for a given endpoint will\ \ return a 429 Too Many Requests response.\n
Additional IP based\ \ rate limits are applied via Cloudflare as a protective measure for the services\ \ endpoints - exceeding these will trigger cooling off periods before requests\ \ from that IP address are accepted again:
\nWe constantly monitor traffic and may temporarily\ \ manually block any user's API keys and IP/IP ranges where we detect problematic\ \ activity - we will notify the user via email if this happens, and reinstate\ \ access once the problematic activity/excessive requests have ceased.
\nThe Racing API's Core API provides access to our primary horse racing data\ \ set, containing over three decades of horse racing results and updating with\ \ the latest data every 5 minutes.
\nThis API provides full pre and\ \ post race data coverage of UK and Irish horse racing, as well as global coverage\ \ of group level races and selected handicaps. You can view a breakdown of coverage\ \ by year and region here
\n\ \Every user who subscribes to The Racing API gains access to some or all\ \ of the Core API endpoints, subject to their specific plan level.
\nThe\ \ Core API is divided in to 11 top-level categories:
\n| Endpoint Category | \nDescription | \n\ \ \n \n
|---|---|
| /courses/ | \n\ \Course and region data, such as course names, course ids\ \ and region codes. | \n
| /dams/ | \n\ \Dam data and analysis. Dams can be searched for by name and\ \ results/analysis of their progeny's race performances can be queried by dam\ \ id. | \n
| /damsires/ | \n\ \Damsire data and analysis. Damsires can be searched for by\ \ name and results/analysis of their grand offspring's race performances can\ \ be queried by damsire id. | \n
| /horses/ | \n\ \Horse data and analysis. Horses can be searched for by name\ \ and results/analysis of their race performances can be queried by horse id. | \n\ \
| /jockeys/ | \n\ \Jockey data and analysis. Jockeys can be searched for by\ \ name and results/analysis of their race performances can be queried by jockey\ \ id. | \n
| /odds/ | \n\ \Detailed odds data for a given runner, including price movements. | \n\ \
| /owners/ | \n\ \Owner data and analysis. Owners can be searched for by name\ \ and results/analysis of their horse's race performances can be queried by owner\ \ id. | \n
| /racecards/ | \n\ \Detailed racecard (pre-race) data. | \n
| /results/ | \n\ \Detailed results (post-race) data. | \n
| /sires/ | \n\ \Sire data and analysis. Sires can be searched for by name\ \ and results/analysis of their progeny's race performances can be queried by\ \ sire id. | \n
| /trainers/ | \n\ \Trainer data and analysis. Trainers can be searched for by\ \ name and results/analysis of their horses's race performances can be queried\ \ by trainer id. | \n
We have also grouped the core\ \ API endpoints by plan level to make it easier to find the endpoints relevant\ \ to your API key permissions:
\nThe Core API's analysis endpoints perform\ \ data aggregation to return helpful betting & probability insights.
\n \ \The statistics returned by these endpoints include:
\nIMPORTANT NOTE: Anaysis\ \ endpoints only perform data aggregation on results for which SP odds are available.
\n\ \The Regional APIs provide access to additional\ \ data sets that provide complete coverage for a given region. The data and fields\ \ returned are also much more specific to that region than they may be in the\ \ Core API.
\nAccessing the endpoints for these data sets requires purchasing\ \ the relevant regional data add-on for your plan, which can be requested by emailing\ \ support@theracingapi.com.
\n\ \The following top-level regional endpoints are available:\n
| Region | \nDescription | \n\ \ \n \n
|---|---|
| /australia/ | \n\ \Meets and races for Australia | \n
| /north-america/ | \n\ \Meets, entries and results for the USA and Canada | \n\ \