naftiko: 1.0.0-alpha2 info: label: The Racing API — Horses description: 'The Racing API — Horses. 5 operations. Lead operation: The Racing API Horse Search. Self-contained Naftiko capability covering one The Racing Api business surface.' tags: - The Racing Api - Horses 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-horses baseUri: https://api.theracingapi.com description: The Racing API — Horses business capability. Self-contained, no shared references. resources: - name: v1-horses-search path: /v1/horses/search operations: - name: horsesearchv1horsessearchget method: GET description: The Racing API Horse Search outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: name in: query type: string required: true - name: v1-horses-horse_id-analysis-distance-times path: /v1/horses/{horse_id}/analysis/distance-times operations: - name: horsedistancetimeanalysisv1horseshorseidanalysisdistancetimesget method: GET description: The Racing API Horse Distance Time Analysis outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: horse_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-horses-horse_id-pro path: /v1/horses/{horse_id}/pro operations: - name: horseprov1horseshorseidproget method: GET description: The Racing API Horse Pro outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: horse_id in: path type: string required: true - name: v1-horses-horse_id-results path: /v1/horses/{horse_id}/results operations: - name: horseresultsv1horseshorseidresultsget method: GET description: The Racing API Horse Results outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: horse_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: limit in: query type: string - name: skip in: query type: string - name: v1-horses-horse_id-standard path: /v1/horses/{horse_id}/standard operations: - name: horsestandardv1horseshorseidstandardget method: GET description: The Racing API Horse Standard outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: horse_id in: path type: string required: true authentication: type: basic username: '{{env.THE_RACING_API_USER}}' password: '{{env.THE_RACING_API_PASS}}' exposes: - type: rest namespace: the-racing-horses-rest port: 8080 description: REST adapter for The Racing API — Horses. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/v1/horses/search name: v1-horses-search description: REST surface for v1-horses-search. operations: - method: GET name: horsesearchv1horsessearchget description: The Racing API Horse Search call: the-racing-horses.horsesearchv1horsessearchget with: name: rest.name outputParameters: - type: object mapping: $. - path: /v1/v1/horses/{horse-id}/analysis/distance-times name: v1-horses-horse-id-analysis-distance-times description: REST surface for v1-horses-horse_id-analysis-distance-times. operations: - method: GET name: horsedistancetimeanalysisv1horseshorseidanalysisdistancetimesget description: The Racing API Horse Distance Time Analysis call: the-racing-horses.horsedistancetimeanalysisv1horseshorseidanalysisdistancetimesget with: horse_id: rest.horse_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/horses/{horse-id}/pro name: v1-horses-horse-id-pro description: REST surface for v1-horses-horse_id-pro. operations: - method: GET name: horseprov1horseshorseidproget description: The Racing API Horse Pro call: the-racing-horses.horseprov1horseshorseidproget with: horse_id: rest.horse_id outputParameters: - type: object mapping: $. - path: /v1/v1/horses/{horse-id}/results name: v1-horses-horse-id-results description: REST surface for v1-horses-horse_id-results. operations: - method: GET name: horseresultsv1horseshorseidresultsget description: The Racing API Horse Results call: the-racing-horses.horseresultsv1horseshorseidresultsget with: horse_id: rest.horse_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: $. - path: /v1/v1/horses/{horse-id}/standard name: v1-horses-horse-id-standard description: REST surface for v1-horses-horse_id-standard. operations: - method: GET name: horsestandardv1horseshorseidstandardget description: The Racing API Horse Standard call: the-racing-horses.horsestandardv1horseshorseidstandardget with: horse_id: rest.horse_id outputParameters: - type: object mapping: $. - type: mcp namespace: the-racing-horses-mcp port: 9090 transport: http description: MCP adapter for The Racing API — Horses. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: racing-api-horse-search description: The Racing API Horse Search hints: readOnly: true destructive: false idempotent: true call: the-racing-horses.horsesearchv1horsessearchget with: name: tools.name outputParameters: - type: object mapping: $. - name: racing-api-horse-distance-time description: The Racing API Horse Distance Time Analysis hints: readOnly: true destructive: false idempotent: true call: the-racing-horses.horsedistancetimeanalysisv1horseshorseidanalysisdistancetimesget with: horse_id: tools.horse_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-horse-pro description: The Racing API Horse Pro hints: readOnly: true destructive: false idempotent: true call: the-racing-horses.horseprov1horseshorseidproget with: horse_id: tools.horse_id outputParameters: - type: object mapping: $. - name: racing-api-horse-results description: The Racing API Horse Results hints: readOnly: true destructive: false idempotent: true call: the-racing-horses.horseresultsv1horseshorseidresultsget with: horse_id: tools.horse_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: $. - name: racing-api-horse-standard description: The Racing API Horse Standard hints: readOnly: true destructive: false idempotent: true call: the-racing-horses.horsestandardv1horseshorseidstandardget with: horse_id: tools.horse_id outputParameters: - type: object mapping: $.