naftiko: 1.0.0-alpha2 info: label: The Racing API — Owners description: 'The Racing API — Owners. 6 operations. Lead operation: The Racing API Owner Search. Self-contained Naftiko capability covering one The Racing Api business surface.' tags: - The Racing Api - Owners created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: THE_RACING_API_API_KEY: THE_RACING_API_API_KEY capability: consumes: - type: http namespace: the-racing-owners baseUri: https://api.theracingapi.com description: The Racing API — Owners business capability. Self-contained, no shared references. resources: - name: v1-owners-search path: /v1/owners/search operations: - name: ownersearchv1ownerssearchget method: GET description: The Racing API Owner Search outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: name in: query type: string required: true - name: v1-owners-owner_id-analysis-courses path: /v1/owners/{owner_id}/analysis/courses operations: - name: ownercourseanalysisv1ownersowneridanalysiscoursesget method: GET description: The Racing API Owner Course Analysis outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: owner_id in: path type: string required: true - name: start_date in: query type: string description:

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

- name: end_date in: query type: string description:

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

- name: region in: query type: string description:

Query by region codes. Get the full list here< - name: course in: query type: string description: Query by course ids. Get the full list here. - name: type in: query type: string description: '

Query by race type

Options: chase, flat, hurdle, nh_flat

' - name: going in: query type: string description: '

Query by going

Options: fast, firm, good, good_to_firm, good_to_soft, good_to_yi' - name: race_class in: query type: string description: '

Query by class

Options: class_1, class_2, class_3, class_4, class_5, class_6Query by minimum race distance (yards)

- name: max_distance_y in: query type: string description:

Query by maximum race distance (yards)

- name: age_band in: query type: string description: '

Query by age band

Options: 10yo+, 2-3yo, 2yo, 2yo+, 3-4yo, 3-5yo, 3' - name: sex_restriction in: query type: string description: '

Query by sex restriction

Options: c&f, c&g, f, f&m, m, m&g

' - name: v1-owners-owner_id-analysis-distances path: /v1/owners/{owner_id}/analysis/distances operations: - name: ownerdistanceanalysisv1ownersowneridanalysisdistancesget method: GET description: The Racing API Owner Distance Analysis outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: owner_id in: path type: string required: true - name: start_date in: query type: string description:

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

- name: end_date in: query type: string description:

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

- name: region in: query type: string description:

Query by region codes. Get the full list here< - name: course in: query type: string description: Query by course ids. Get the full list here. - name: type in: query type: string description: '

Query by race type

Options: chase, flat, hurdle, nh_flat

' - name: going in: query type: string description: '

Query by going

Options: fast, firm, good, good_to_firm, good_to_soft, good_to_yi' - name: race_class in: query type: string description: '

Query by class

Options: class_1, class_2, class_3, class_4, class_5, class_6Query by minimum race distance (yards)

- name: max_distance_y in: query type: string description:

Query by maximum race distance (yards)

- name: age_band in: query type: string description: '

Query by age band

Options: 10yo+, 2-3yo, 2yo, 2yo+, 3-4yo, 3-5yo, 3' - name: sex_restriction in: query type: string description: '

Query by sex restriction

Options: c&f, c&g, f, f&m, m, m&g

' - name: v1-owners-owner_id-analysis-jockeys path: /v1/owners/{owner_id}/analysis/jockeys operations: - name: ownerjockeyanalysisv1ownersowneridanalysisjockeysget method: GET description: The Racing API Owner Jockey Analysis outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: owner_id in: path type: string required: true - name: start_date in: query type: string description:

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

- name: end_date in: query type: string description:

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

- name: region in: query type: string description:

Query by region codes. Get the full list here< - name: course in: query type: string description: Query by course ids. Get the full list here. - name: type in: query type: string description: '

Query by race type

Options: chase, flat, hurdle, nh_flat

' - name: going in: query type: string description: '

Query by going

Options: fast, firm, good, good_to_firm, good_to_soft, good_to_yi' - name: race_class in: query type: string description: '

Query by class

Options: class_1, class_2, class_3, class_4, class_5, class_6Query by minimum race distance (yards)

- name: max_distance_y in: query type: string description:

Query by maximum race distance (yards)

- name: age_band in: query type: string description: '

Query by age band

Options: 10yo+, 2-3yo, 2yo, 2yo+, 3-4yo, 3-5yo, 3' - name: sex_restriction in: query type: string description: '

Query by sex restriction

Options: c&f, c&g, f, f&m, m, m&g

' - name: v1-owners-owner_id-analysis-trainers path: /v1/owners/{owner_id}/analysis/trainers operations: - name: ownertraineranalysisv1ownersowneridanalysistrainersget method: GET description: The Racing API Owner Trainer Analysis outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: owner_id in: path type: string required: true - name: start_date in: query type: string description:

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

- name: end_date in: query type: string description:

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

- name: region in: query type: string description:

Query by region codes. Get the full list here< - name: course in: query type: string description: Query by course ids. Get the full list here. - name: type in: query type: string description: '

Query by race type

Options: chase, flat, hurdle, nh_flat

' - name: going in: query type: string description: '

Query by going

Options: fast, firm, good, good_to_firm, good_to_soft, good_to_yi' - name: race_class in: query type: string description: '

Query by class

Options: class_1, class_2, class_3, class_4, class_5, class_6Query by minimum race distance (yards)

- name: max_distance_y in: query type: string description:

Query by maximum race distance (yards)

- name: age_band in: query type: string description: '

Query by age band

Options: 10yo+, 2-3yo, 2yo, 2yo+, 3-4yo, 3-5yo, 3' - name: sex_restriction in: query type: string description: '

Query by sex restriction

Options: c&f, c&g, f, f&m, m, m&g

' - name: v1-owners-owner_id-results path: /v1/owners/{owner_id}/results operations: - name: ownerresultsv1ownersowneridresultsget method: GET description: The Racing API Owner Results outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: owner_id in: path type: string required: true - name: start_date in: query type: string 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 type: string 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 type: string description:

Query by region codes. Get the full list here< - name: course in: query type: string description: Query by course ids. Get the full list here. - name: type in: query type: string description: '

Query by race type

Options: chase, flat, hurdle, nh_flat

' - name: going in: query type: string description: '

Query by going

Options: fast, firm, good, good_to_firm, good_to_soft, good_to_yi' - name: race_class in: query type: string description: '

Query by class

Options: class_1, class_2, class_3, class_4, class_5, class_6Query by minimum race distance (yards)

- name: max_distance_y in: query type: string description:

Query by maximum race distance (yards)

- name: age_band in: query type: string description: '

Query by age band

Options: 10yo+, 2-3yo, 2yo, 2yo+, 3-4yo, 3-5yo, 3' - name: sex_restriction in: query type: string description: '

Query by sex restriction

Options: c&f, c&g, f, f&m, m, m&g

' - name: limit in: query type: string - name: skip in: query type: string authentication: type: basic username: '{{env.THE_RACING_API_USER}}' password: '{{env.THE_RACING_API_PASS}}' exposes: - type: rest namespace: the-racing-owners-rest port: 8080 description: REST adapter for The Racing API — Owners. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/v1/owners/search name: v1-owners-search description: REST surface for v1-owners-search. operations: - method: GET name: ownersearchv1ownerssearchget description: The Racing API Owner Search call: the-racing-owners.ownersearchv1ownerssearchget with: name: rest.name outputParameters: - type: object mapping: $. - path: /v1/v1/owners/{owner-id}/analysis/courses name: v1-owners-owner-id-analysis-courses description: REST surface for v1-owners-owner_id-analysis-courses. operations: - method: GET name: ownercourseanalysisv1ownersowneridanalysiscoursesget description: The Racing API Owner Course Analysis call: the-racing-owners.ownercourseanalysisv1ownersowneridanalysiscoursesget with: owner_id: rest.owner_id start_date: rest.start_date end_date: rest.end_date region: rest.region course: rest.course type: rest.type going: rest.going race_class: rest.race_class min_distance_y: rest.min_distance_y max_distance_y: rest.max_distance_y age_band: rest.age_band sex_restriction: rest.sex_restriction outputParameters: - type: object mapping: $. - path: /v1/v1/owners/{owner-id}/analysis/distances name: v1-owners-owner-id-analysis-distances description: REST surface for v1-owners-owner_id-analysis-distances. operations: - method: GET name: ownerdistanceanalysisv1ownersowneridanalysisdistancesget description: The Racing API Owner Distance Analysis call: the-racing-owners.ownerdistanceanalysisv1ownersowneridanalysisdistancesget with: owner_id: rest.owner_id start_date: rest.start_date end_date: rest.end_date region: rest.region course: rest.course type: rest.type going: rest.going race_class: rest.race_class min_distance_y: rest.min_distance_y max_distance_y: rest.max_distance_y age_band: rest.age_band sex_restriction: rest.sex_restriction outputParameters: - type: object mapping: $. - path: /v1/v1/owners/{owner-id}/analysis/jockeys name: v1-owners-owner-id-analysis-jockeys description: REST surface for v1-owners-owner_id-analysis-jockeys. operations: - method: GET name: ownerjockeyanalysisv1ownersowneridanalysisjockeysget description: The Racing API Owner Jockey Analysis call: the-racing-owners.ownerjockeyanalysisv1ownersowneridanalysisjockeysget with: owner_id: rest.owner_id start_date: rest.start_date end_date: rest.end_date region: rest.region course: rest.course type: rest.type going: rest.going race_class: rest.race_class min_distance_y: rest.min_distance_y max_distance_y: rest.max_distance_y age_band: rest.age_band sex_restriction: rest.sex_restriction outputParameters: - type: object mapping: $. - path: /v1/v1/owners/{owner-id}/analysis/trainers name: v1-owners-owner-id-analysis-trainers description: REST surface for v1-owners-owner_id-analysis-trainers. operations: - method: GET name: ownertraineranalysisv1ownersowneridanalysistrainersget description: The Racing API Owner Trainer Analysis call: the-racing-owners.ownertraineranalysisv1ownersowneridanalysistrainersget with: owner_id: rest.owner_id start_date: rest.start_date end_date: rest.end_date region: rest.region course: rest.course type: rest.type going: rest.going race_class: rest.race_class min_distance_y: rest.min_distance_y max_distance_y: rest.max_distance_y age_band: rest.age_band sex_restriction: rest.sex_restriction outputParameters: - type: object mapping: $. - path: /v1/v1/owners/{owner-id}/results name: v1-owners-owner-id-results description: REST surface for v1-owners-owner_id-results. operations: - method: GET name: ownerresultsv1ownersowneridresultsget description: The Racing API Owner Results call: the-racing-owners.ownerresultsv1ownersowneridresultsget with: owner_id: rest.owner_id start_date: rest.start_date end_date: rest.end_date region: rest.region course: rest.course type: rest.type going: rest.going race_class: rest.race_class min_distance_y: rest.min_distance_y max_distance_y: rest.max_distance_y age_band: rest.age_band sex_restriction: rest.sex_restriction limit: rest.limit skip: rest.skip outputParameters: - type: object mapping: $. - type: mcp namespace: the-racing-owners-mcp port: 9090 transport: http description: MCP adapter for The Racing API — Owners. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: racing-api-owner-search description: The Racing API Owner Search hints: readOnly: true destructive: false idempotent: true call: the-racing-owners.ownersearchv1ownerssearchget with: name: tools.name outputParameters: - type: object mapping: $. - name: racing-api-owner-course-analysis description: The Racing API Owner Course Analysis hints: readOnly: true destructive: false idempotent: true call: the-racing-owners.ownercourseanalysisv1ownersowneridanalysiscoursesget with: owner_id: tools.owner_id start_date: tools.start_date end_date: tools.end_date region: tools.region course: tools.course type: tools.type going: tools.going race_class: tools.race_class min_distance_y: tools.min_distance_y max_distance_y: tools.max_distance_y age_band: tools.age_band sex_restriction: tools.sex_restriction outputParameters: - type: object mapping: $. - name: racing-api-owner-distance-analysis description: The Racing API Owner Distance Analysis hints: readOnly: true destructive: false idempotent: true call: the-racing-owners.ownerdistanceanalysisv1ownersowneridanalysisdistancesget with: owner_id: tools.owner_id start_date: tools.start_date end_date: tools.end_date region: tools.region course: tools.course type: tools.type going: tools.going race_class: tools.race_class min_distance_y: tools.min_distance_y max_distance_y: tools.max_distance_y age_band: tools.age_band sex_restriction: tools.sex_restriction outputParameters: - type: object mapping: $. - name: racing-api-owner-jockey-analysis description: The Racing API Owner Jockey Analysis hints: readOnly: true destructive: false idempotent: true call: the-racing-owners.ownerjockeyanalysisv1ownersowneridanalysisjockeysget with: owner_id: tools.owner_id start_date: tools.start_date end_date: tools.end_date region: tools.region course: tools.course type: tools.type going: tools.going race_class: tools.race_class min_distance_y: tools.min_distance_y max_distance_y: tools.max_distance_y age_band: tools.age_band sex_restriction: tools.sex_restriction outputParameters: - type: object mapping: $. - name: racing-api-owner-trainer-analysis description: The Racing API Owner Trainer Analysis hints: readOnly: true destructive: false idempotent: true call: the-racing-owners.ownertraineranalysisv1ownersowneridanalysistrainersget with: owner_id: tools.owner_id start_date: tools.start_date end_date: tools.end_date region: tools.region course: tools.course type: tools.type going: tools.going race_class: tools.race_class min_distance_y: tools.min_distance_y max_distance_y: tools.max_distance_y age_band: tools.age_band sex_restriction: tools.sex_restriction outputParameters: - type: object mapping: $. - name: racing-api-owner-results description: The Racing API Owner Results hints: readOnly: true destructive: false idempotent: true call: the-racing-owners.ownerresultsv1ownersowneridresultsget with: owner_id: tools.owner_id start_date: tools.start_date end_date: tools.end_date region: tools.region course: tools.course type: tools.type going: tools.going race_class: tools.race_class min_distance_y: tools.min_distance_y max_distance_y: tools.max_distance_y age_band: tools.age_band sex_restriction: tools.sex_restriction limit: tools.limit skip: tools.skip outputParameters: - type: object mapping: $.