APIHorseRacing

MCP server

Ask your assistant about the racing.

Connect Claude, ChatGPT or any Model Context Protocol client to the archive and ask in plain English. 14 tools, your own key, no code.

Works on a free key, on the same delayed window everything else uses.

Ninety seconds to set up

One address, your key, and the client does the rest. There is nothing to install and nothing running on your machine.

01

Get a key

Sign in with Google and one is issued immediately. Free key, no card.

02

Add the server

Paste the block below into your client's MCP configuration, with your own key in place of the example.

03

Ask something

Restart the client and ask about a race, a horse or a yard. It picks the tool.

claude_desktop_config.json
"mcpServers": {
  "horseracing": {
    "url": "https://apihorseracing.com/mcp-server",
    "headers": {
      "Authorization": "Bearer ahr_your_key_here"
    }
  }
}

The same address works for any MCP client. If yours asks for an API key header instead of a bearer token, use X-API-Key; both are accepted, because clients differ and being fussy about it just reads as broken.

The 14 tools

Curated rather than the whole API. We publish 63 endpoints and expose 14, because a model given forty near-identical options picks the first plausible one rather than the right one.

describe_coverage What this archive holds and what the current key can read: jurisdictions, date range, totals, and the window this plan reaches. free key
search_racing Find a horse, trainer, jockey, owner or course by name and get its identifier. free key
get_race One race in full: conditions, going, distance, class, every runner, and the market. free key
get_results Every result for one calendar date, grouped by meeting. free key
get_todays_racing Today's cards across every jurisdiction, grouped by meeting. free key
find_races Search past races by date range, course, distance, going, class or field size. free key
get_horse_form A horse's recent runs: date, course, distance, going, finishing position, starting price and beaten distance. free key
get_trainer_form A trainer's recent runners and how they finished. free key
get_jockey_form A jockey's recent rides and how they finished.. free key
compare_horses Every race two or more horses have both contested, and how each finished. free key
get_course_draw_bias Whether the stall matters at a course and distance, scored against the market rather than against winning. Analyst
get_course_favourites What backing the market leader actually returned at a course, by field size and going. Analyst
get_trainer_stats A trainer's record split by course, distance, going, class or month, with strike rate, A/E against the market and level-stakes return. Analyst
get_horse_stats A horse's record split by course, distance, going and class, with A/E and level stakes. Analyst

What it is good at, and what it is not

Good at

  • Questions you would otherwise write a script for. Which yards go well at this course over this trip.
  • Looking something up mid-conversation without leaving the chat.
  • Explaining what a figure means. A/E, level stakes, overround.
  • Reading the coverage honestly. It will tell you a field does not exist rather than inventing one.

Not for

  • Tips or selections. There are none in the data, and the server tells the model so before it sees a single tool.
  • Bulk extraction. It is a conversation, not a download; use the API for that.
  • Anything about a future race. Every figure describes races that have already happened.

Things worth asking it

Each of these takes one or two tool calls and would otherwise be an afternoon.

“Is there a draw bias at Chester over five furlongs?”get_course_draw_bias
“How has this trainer done at Ascot on soft ground?”search_racing → get_trainer_stats
“Have these two horses ever met?”compare_horses
“What won at Newbury yesterday?”get_results
“Does backing the favourite pay at Southwell?”get_course_favourites
“What does this API actually hold?”describe_coverage