Discover/Sporting Life API
live

Sporting Life APIsportinglife.com

Fetch UK and Irish horse racing racecards from Sporting Life. Get meeting details, race times, runners, trainers, jockeys, odds, and official ratings by date.

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

What is the Sporting Life API?

The Sporting Life Racecards API provides structured horse racing data from sportinglife.com through a single endpoint, get_racecards, that returns every UK and Irish race for a given date. Each response includes up to a dozen fields per race — venue, going, surface, distance, class, age restrictions, and a full runner list with horse name, trainer, jockey, odds, weight, draw, and official rating. The endpoint accepts one required date parameter in ISO format.

This call costs10 credits / call— charged only on success
Try it
Race date in ISO format YYYY-MM-DD (e.g. 2026-08-18).
api.parse.bot/scraper/487a7789-ea4c-4780-8bbe-cc1d0cc64270/<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/487a7789-ea4c-4780-8bbe-cc1d0cc64270/get_racecards?date=2026-08-19' \
  -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-com-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 tomorrow's racecards."""
from parse_apis.sportinglife_com_api import SportingLife, InputFormatInvalid

client = SportingLife()

# Fetch racecards for a specific date, capped at 5 races.
try:
    first_race = client.racecards.list(date="2026-08-19", limit=1).first()
except InputFormatInvalid as e:
    print(f"Bad date format: {e.message}")
    raise

if first_race is not None:
    print(f"{first_race.meeting} — {first_race.race_name} ({first_race.time})")
    print(f"  Going: {first_race.going}, Surface: {first_race.surface}, Distance: {first_race.distance}")
    print(f"  Runners: {first_race.runners_count}")

    # Inspect the horses in this race.
    for horse in first_race.horses[:3]:
        rating = horse.official_rating if horse.official_rating is not None else "n/a"
        print(f"    {horse.cloth_number}. {horse.name} — Jockey: {horse.jockey}, Odds: {horse.odds}, OR: {rating}")

# Iterate several races to find a specific meeting.
for race in client.racecards.list(date="2026-08-19", limit=10):
    if race.meeting == "York":
        print(f"\nYork race found: {race.race_name}, Class {race.race_class}, {race.distance}")
        break

print("\nexercised: racecards.list / Racecard fields / Horse fields")
All endpoints · 1 totalmissing one? ·

Returns all UK and Irish racecards for a given date. Each race includes meeting venue, going, surface, race time, race name, distance, class, and a full list of runners with horse name, trainer, jockey, odds, weight, draw, and official rating. Makes one request per race to fetch full runner details, so response time scales with the number of races on the card (typically 20-30 races per day).

Input
ParamTypeDescription
daterequiredstringRace date in ISO format YYYY-MM-DD (e.g. 2026-08-18).
Response
{
  "type": "object",
  "fields": {
    "racecards": "array of race objects, each containing meeting, country, going, surface, date, time, race_name, distance, race_class, age, runners_count, and horses array",
    "total_races": "integer count of races returned"
  },
  "sample": {
    "data": {
      "racecards": [
        {
          "age": "3YO plus",
          "date": "2026-08-18",
          "time": "13:15",
          "going": "Good to Firm",
          "horses": [
            {
              "age": 5,
              "draw": 2,
              "name": "Hope Rising",
              "odds": "1/16",
              "jockey": "Rob Hornby",
              "weight": "9-9",
              "trainer": "Jamie Snowden",
              "cloth_number": 1,
              "official_rating": 62
            }
          ],
          "country": "Wales",
          "meeting": "Chepstow",
          "surface": "Turf",
          "distance": "1m 4f",
          "race_name": "Community Engagement Programme Handicap",
          "race_class": "6",
          "runners_count": 2
        }
      ],
      "total_races": 27
    },
    "status": "success"
  }
}

About the Sporting Life API

What get_racecards Returns

Calling get_racecards with a date parameter (ISO format YYYY-MM-DD) returns all scheduled UK and Irish races for that day. The top-level response contains a total_races integer and a racecards array. Each object in the array carries meeting-level fields — meeting, country, going, surface, and date — alongside race-level fields: time, race_name, distance, race_class, and age restrictions.

Runner Detail

The runners array inside each race object is where per-horse data lives. Each runner entry includes horse name, trainer, jockey, odds, weight, draw, and official_rating. This gives you everything needed to build a pre-race form guide, model a betting market, or cross-reference entries against external handicap databases.

Coverage and Freshness

The endpoint covers UK and Irish fixtures only. Supplying a future date retrieves scheduled entries with available ante-post or early-price odds; supplying today's date returns the current day's cards as they stand at query time. There is no pagination — all races for the requested date are returned in a single response.

Reliability & maintenanceVerified

The Sporting Life API is a managed, monitored endpoint for sportinglife.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when sportinglife.com 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.com 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
3h ago
Latest check
1/1 endpoint 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 racecard digest that groups races by meeting venue and formats going/surface conditions for punters.
  • Track jockey bookings across all races on a given date to identify in-form or overbooked riders.
  • Compare official ratings across runners in a race to flag horses running off a lower mark than recent form.
  • Aggregate trainer statistics by querying multiple dates and counting runner and winner tallies per trainer.
  • Seed a betting odds tracker with morning prices from the odds field and monitor movement throughout the day.
  • Filter races by race_class and distance to build a dataset of handicap sprints or Group-level contests.
  • Populate a fantasy racing game with authentic draw, weight, and jockey assignments from live racecards.
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 have an official developer API?+
Sporting Life does not publish a public developer API or documented data feed. Access to structured racecard data is not available through any official programmatic channel from the site.
What does the runners array contain for each horse?+
Each runner object contains the horse name, trainer, jockey, odds, weight, draw number, and official rating. These fields are returned per horse for every race in the racecard response.
Does the API cover Irish racing separately from UK racing?+
Both UK and Irish meetings are included in the same get_racecards response. Each race object carries a country field so you can filter or separate fixtures by jurisdiction after retrieval.
Does the API return historical results or in-running data?+
Not currently. The API covers scheduled racecard entries, runner details, and ante-post or early-price odds — it does not return race results, finishing positions, winning times, or in-running price movements. You can fork the API on Parse and revise it to add a results endpoint covering those fields.
Is data available for non-UK/Irish fixtures such as French or US racing?+
Not currently. Coverage is limited to UK and Irish racecards sourced from Sporting Life. You can fork the API on Parse and revise it to target an additional racing source and add an endpoint for international fixtures.
Page content last updated . Spec covers 1 endpoint from sportinglife.com.
Related APIs in SportsSee all →
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.
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.
oddschecker.com API
Compare betting odds across multiple bookmakers for a wide range of sports, markets, and events on Oddschecker. Retrieve match details, race cards, market outcomes, and bookmaker-by-bookmaker odds to identify the best available prices.
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.
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.