Discover/sportinglife API
live

sportinglife APIsportingLife

Fetch UK and Irish horse racing racecards from Sporting Life. Get meeting schedules, going conditions, runner form, odds, jockey, and trainer data via 2 endpoints.

This API takes change requests — .
Endpoint health
verified 1h ago
get_meetings
get_racecard
2/2 passing latest checkself-healing
Endpoints
2
Verified account required
Updated
2h ago

What is the sportinglife API?

The Sporting Life API exposes UK and Irish horse racing data across 2 endpoints, returning meeting schedules and full racecards including runner-level detail. The get_meetings endpoint lists all race meetings for a given date with going conditions and race metadata, while get_racecard delivers per-race detail covering up to a dozen fields per runner — cloth number, draw, weight, jockey, trainer, official rating, form figures, and current odds.

This call costs2 credits / call— charged only on success
Try it
Race date in ISO format YYYY-MM-DD (e.g. 2026-08-20).
api.parse.bot/scraper/053da0e4-83ad-44de-bdc2-fd6509e3706b/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/053da0e4-83ad-44de-bdc2-fd6509e3706b/get_meetings?date=2026-08-20' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace sportinglife-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

"""Walkthrough: Sporting Life Racing SDK — fetch meetings then drill into a racecard."""
from parse_apis.sportinglife_api import SportingLife, InputNotFound

client = SportingLife()

# List today's meetings and print course info
for meeting in client.meetings.list(date="2026-08-20", limit=5):
    print(meeting.course_name, meeting.going, f"({len(meeting.races)} races)")

# Take the first meeting and grab a race_id from its schedule
meeting = client.meetings.list(date="2026-08-20", limit=1).first()
if meeting is not None:
    # Use the first race's id to fetch the full racecard
    race_summary = meeting.races[0]
    try:
        racecard = client.racecards.get(date=meeting.date, race_id=str(race_summary.race_id))
    except InputNotFound:
        print("Race not found — it may have been abandoned")
    else:
        print(racecard.race.race_name, racecard.race.distance)
        # Show top runners by Timeform star rating
        for runner in racecard.runners[:3]:
            print(
                f"  {runner.cloth_number}. {runner.horse_name}",
                f"OR={runner.official_rating}",
                f"stars={runner.timeform_stars}",
                f"form={runner.form}",
            )

print("exercised: meetings.list / racecards.get")
All endpoints · 2 totalmissing one? ·

List all UK and Irish horse racing meetings and their race schedules for a given date. Returns meeting venue details, going conditions, and an array of races with basic metadata (time, name, class, distance, runner count). Use the returned race_id values with the get_racecard endpoint to fetch detailed runner information. Makes one upstream request per call.

Input
ParamTypeDescription
daterequiredstringRace date in ISO format YYYY-MM-DD (e.g. 2026-08-20).
Response
{
  "type": "object",
  "fields": {
    "date": "string — the requested date",
    "meetings": "array of meeting objects, each with course_name, country, going, and a races array containing race_id, race_name, time, class, distance, runner_count"
  },
  "sample": {
    "date": "2026-08-20",
    "meetings": [
      {
        "date": "2026-08-20",
        "going": "Good to Soft",
        "races": [
          {
            "age": "2YO only",
            "time": "12:50",
            "going": "Good to Soft",
            "race_id": 927487,
            "distance": "6f",
            "off_time": "12:52:13",
            "race_name": "Sky Bet Lowther Stakes (Fillies' Group 2)",
            "race_class": "1",
            "race_stage": "WEIGHEDIN",
            "has_handicap": false,
            "runner_count": 17,
            "course_surface": "TURF"
          }
        ],
        "country": "England",
        "course_id": 295,
        "meeting_id": 116736,
        "course_name": "York"
      }
    ]
  }
}

About the sportinglife API

Meeting and Race Schedule Data

The get_meetings endpoint accepts a single required parameter, date (ISO format YYYY-MM-DD), and returns an array of meeting objects covering UK and Irish fixtures for that day. Each meeting includes course_name, country, and going conditions alongside a races array. Each race entry in that array carries a race_id, race_name, scheduled time, class, and distance. The race_id values returned here are the keys you pass to get_racecard.

Detailed Racecard and Runner Data

The get_racecard endpoint takes both date and race_id and returns three top-level objects: race, meeting, and runners. The race object includes race_class, distance, age restriction, surface, runner_count, a has_handicap flag, and a freetext verdict field. The runners array is the core payload — each entry carries cloth_number, draw, horse_name, age, weight, jockey, trainer, official_rating, odds, form figures, and last_run_days since the horse's previous outing.

Coverage and Quirks

Coverage is limited to UK and Irish racing. The date parameter controls which fixture list is returned; there is no multi-date range query across either endpoint. Race and runner data reflects the state of the racecard at request time, so late withdrawals, jockey changes, or going updates will appear only when the source has updated. The verdict field on the race object is editorial text and may not be present for every race.

Reliability & maintenanceVerified

The sportinglife API is a managed, monitored endpoint for sportingLife — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when sportingLife changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official sportingLife API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
1h ago
Latest check
2/2 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Build a daily racing digest that aggregates meeting schedules, going conditions, and race times for all UK and Irish courses.
  • Populate a form guide tool using per-runner form figures, official_rating, and last_run_days fields from get_racecard.
  • Automate odds monitoring by polling the odds field across runners for a specific race_id throughout the day.
  • Filter races by class and distance from get_meetings to surface maiden or handicap races matching a user's criteria.
  • Cross-reference jockey and trainer pairings across multiple racecards to surface high-strike-rate combinations.
  • Feed draw bias analysis tools with draw and cloth_number data alongside surface and distance from the race object.
  • Track runner fitness by comparing last_run_days values across all runners in a race before selecting a betting market.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo2005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min
Team$300/mo20,000300 req/min
Company$1,000/mo100,000500 req/min

Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does Sporting Life offer an official developer API?+
Sporting Life does not publish a documented public developer API. The data available through this Parse API is not accessible via any official programmatic interface from Sporting Life.
What does the verdict field in get_racecard contain?+
The verdict field on the race object is editorial text associated with the race — typically a short analyst view on likely contenders. It is a plain string and may be absent for some races, particularly early in the day before content is published.
Does the API cover racing outside the UK and Ireland?+
Not currently. Both get_meetings and get_racecard cover UK and Irish fixtures only; international meetings such as French, US, or Australian racing are not included. You can fork this API on Parse and revise it to add an endpoint targeting international race data from a different source.
Does the API return historical racecards or results?+
The endpoints are oriented toward current and upcoming racecards. Results data — finishing positions, distances beaten, winning times — are not fields in the current response schema. You can fork this API on Parse and revise it to add a results endpoint if historical outcome data is needed.
Can I query multiple dates in a single request to get_meetings?+
No. The date parameter accepts a single ISO date string per request. To retrieve meetings across several days you would need to make one request per date. You can fork this API on Parse and revise it to wrap multiple date calls into a single batch endpoint.
Page content last updated . Spec covers 2 endpoints from sportingLife.
Related APIs in SportsSee all →
sportinglife.com API
Access detailed UK and Irish racecards from Sporting Life to view meeting schedules, race specifics, horse entries, trainer and jockey information, and live odds all in one place. Plan your bets and track racing information across both countries with comprehensive, up-to-date racing data.
racingtv.com API
Access detailed information about UK and international horse racing meetings, including complete racecards, runner details, Timeform analysis, pace bias data, and draw commentary. Plan your racing strategy or stay informed on upcoming races with comprehensive meeting schedules and expert insights all in one place.
racingpost.com API
Access comprehensive horse racing data from Racing Post, including daily racecards, meeting schedules, race results, and detailed horse profiles with form history, stats, and pedigree.
attheraces.com API
Access comprehensive horse racing intelligence from At The Races, including detailed racecards, draw statistics, pace analysis, and form scan data to inform your betting decisions. Get all the performance metrics and positional data you need to analyze races and horses in one place.
tab.com.au API
Access live horse racing meetings, race cards, fixed odds, and results from TAB Australia. Retrieve real-time sports betting information and racing data, including upcoming races, current odds, and historical race outcomes.
timeform.com API
Access comprehensive horse racing information including today's and tomorrow's fixtures, detailed runner data with jockey and trainer information, and Timeform's expert ratings to help inform your betting decisions. Get real-time insights on top-rated horses and make smarter racing selections with professional-grade data at your fingertips.
racing.hkjc.com API
Access comprehensive horse racing data from the Hong Kong Jockey Club. Retrieve race results, detailed horse profiles including pedigree and form records, jockey and trainer season rankings, upcoming race meeting fixtures, and horse search by name.
bloodhorse.com API
Get comprehensive horse racing information including race results, stakes entries, horse profiles, and the latest news from BloodHorse.com. Search racing data, view detailed race information, and discover current racing leaders all in one place.