APIHorseRacing

Documentation / Race reports

Find reports

GET /v1/reports

Search written race reports by date, course or jurisdiction.

Available on

Free key not on this plan
Live not on this plan
Archive not on this plan
Complete 2017 → upcoming
Complete + Analyst 2017 → upcoming

Send your key in the X-API-Key header, or as ?key= if your tool cannot set one. A date outside your plan's window returns 403 outside_window naming the window, never an empty array.

Parameters

None. This endpoint takes nothing beyond your key.

Request

curl https://api.apihorseracing.com/v1/reports \
  -H "X-API-Key: $AHR_KEY"

Response

200 OK application/json harvested 8 days ago
{
    "meta": {
        "request_id": "b886e745825e0320",
        "data_as_of": "2026-09-12T05:10:27+00:00",
        "plan": "analyst",
        "window": "2017 → upcoming",
        "count": 25,
        "total_matching": 577
    },
    "data": [
        {
            "race_id": "rc_365Z41Y",
            "race_date": "2020-01-21",
            "course": "Newcastle",
            "region": "GB",
            "headline": "Atwaar wins at 10/1 for Smith",
            "preview": "Ken's Sam's was the 3/1 favourite at 19% chance, with Gunmaker second at 7/2. Rockley Point, who had won 2 of 16 at Newcastle, drifted from 16/1 to 20/1. Lord Of The Glen, fifth in the betting, had won 3 of 23 at this course. Atwaar, at 10/1, was sixth in the betting. The market was wide at 125.76%.",
            "report": "Atwaar won at 10/1, a 6.9% chance, for C Smith. Gunmaker finished second at 7/2. Rockley Point, who had won 2 of 16 at Newcastle, finished third at 20/1, a 3.6% chance. The favourite, Ken's Sam's, finished seventh of 14. Jorvik Prince had no recorded finishing position. The winner was sixth in the betting.",
            "runners": {
                "Ken's Sam's": "Ken's Sam's finished seventh of 14 at 3/1 favourite; he had won 2 of 24 at this distance.",
                "Gunmaker": "Gunmaker finished second of 14 at 7/2, in blinkers.",
                "The Bull": "The Bull finished fourth of 14 at 5/1, in cheek pieces.",
                "Puchita": "Puchita finished fifth of 14 at 13/2, in cheek pieces.",
                "Lord Of The Glen": "Lord Of The Glen finished sixth of 14 at 8/1; he had won 3 of 23 at Newcastle before today.",
                "Atwaar": "Atwaar won at 10/1, a 6.9% chance; he had won 3 of 19 starts before today.",
                "Iron Ryan": "Iron Ryan finished 12 of 14 at 14/1, having been backed from 18/1.",
                "Patrick": "Patrick finished 10 of 14 at 14/1.",
                "Jorvik Prince": "Jorvik Prince finished unplaced at 16/1 with no recorded position; he had fallen to a mark 4lb lower.",
                "Rockley Point": "Rockley Point finished third of 14 at 20/1, a 3.6% chance; he had won 2 of 16 at Newcastle before today.",
                "Rangefield Express": "Rangefield Express finished eighth of 14 at 25/1, having been backed from 33/1.",
                "Mansfield": "Mansfield finished 11 of 14 at 33/1, having drifted from 25/1.",
                "Inn With The Gin": "Inn With The Gin finished ninth of 14 at 50/1.",
                "Essential": "Essential finished 13 of 14 at 66/1, in blinkers."
            },
            "written_at": "2026-09-13T19:39:57+00:00"
        },
        {
            "race_id": "rc_2H8G6KF",
            "race_date": "2020-01-21",
            "course": "Newcastle",
            "region": "GB",
            "headline": "Bobby Joe Leg wins at 13/2",
            "preview": "N Over J, in blinkers, was the 5/4 favourite at 36.4% chance. With Approval, second in the betting, had won 1 of 6 at Newcastle. Bobby Joe Leg, third at 13/2, had won 1 of 10 here. Kroy, fourth in the betting, had won 2 of 12 at this course. Don't Be Surprised was backed from 18/1 to 12/1.",
            "report": "Bobby Joe Leg won at 13/2 for Mrs R Carr, who had won 13 of 201 at Newcastle beforehand. Don't Be Surprised finished second at 12/1, having been backed from 18/1. I Am Dandy was third at 16/1. The favourite, N Over J, finished fourth of 11 at 5/4. All eleven horses completed.",
            "runners": {
                "N Over J": "N Over J finished fourth of 11 at 5/4 favourite, having been backed in from 11/8; he had no wins from 8 runs on this going.",
                "With Approval": "With Approval finished fifth of 11 at 6/1, in blinkers.",
                "Bobby Joe Leg": "Bobby Joe Leg won at 13/2, having won 1 of 10 at Newcastle before today.",
                "Kroy": "Kroy finished 9 of 11 at 8/1, in cheek pieces; he had won 2 of 12 at this course.",
                "Tarnhelm": "Tarnhelm finished eighth of 11 at 10/1, in hood.",
                "Amood": "Amood finished seventh of 11 at 11/1, having drifted from 8/1.",
                "Don't Be Surprised": "Don't Be Surprised finished second of 11 at 12/1, having been backed from 18/1.",
                "I Am Dandy": "I Am Dandy finished third of 11 at 16/1, a 4.8% chance; he had one win from 25 starts.",
                "Milton Road": "Milton Road finished 10 of 11 at 28/1.",
                "Saltie Girl": "Saltie Girl finished sixth of 11 at 28/1.",
                "Hey Jazzy Lady": "Hey Jazzy Lady finished 11 of 11 at 100/1, having been backed from 150/1."
            },
            "written_at": "2026-09-13T19:39:48+00:00"
        },
        "… 23 more"
    ]
}

A real response from /v1/reports?limit=2, captured by calling the live API rather than written by hand.

Response fields

Each field is described once and rendered on every endpoint that returns it, so the wording cannot drift between pages.

FieldTypeWhat it is
race_id string Opaque race identifier. Stable, and safe to store.
course string Course name.
region string Jurisdiction, normalised. Welsh and Scottish racing is GB.
runners integer Runners who took part.

Errors this endpoint returns

CodeStatusWhen
unauthorized 401 No key, or one we do not recognise. Check the header name and that the key has not been rotated from your account page.
rate_limited 429 Past your per-minute rate. Retry-After is set, and X-RateLimit-Remaining tells you where you stand on every successful response too.
server_error 500 Ours, not yours. Every response carries a request_id; quote it and we can find the exact request.

Run it live

A real request from your browser straight to api.apihorseracing.com with your own key. Nothing is proxied and nothing is logged by this page.

Remembered in this browser so you do not paste it on every page.

Related in Race reports