Scrape Racing TV racecards for Britain and Ireland: every declared runner with its Timeform rating, form, draw, weight, jockey, trainer and starting price, plus analyst verdicts, smart stats and non-runners.
- Total runs
- 14
- Bookmarked
- 0
- Last modified
- 7 days ago
This scraper was last updated on .
What does the Racing TV Racecards Scraper return?
Racecards Scraper - UK & Irish Horse Racing Cards
Every declared runner on today's British and Irish cards, with its Timeform rating, form, draw, weight, jockey, trainer and price. Plus the race analyst's verdict, the pace read, the trainer and jockey angles behind each race, and the day's non-runners. No login, no browser, no proxy. Export to CSV, JSON, Excel, or XML.
Racing TV publishes the full card to anonymous visitors through the same API its own site calls. This Actor reads that API, flattens meetings, races and runners into one schema, and lets you filter by track, country, code, time or connections before a single card is opened.
| Who uses it | What they use racecards for |
|---|---|
| Bettors and tipsters | Ratings, form and prices for every runner, with the analyst verdict on the race |
| Trading and model builders | A clean daily card feed with draw, weight, days since last run and Timeform figures |
| Racing media and bloggers | Cards, verdicts and non-runners for previews without copying them by hand |
| Bloodstock and breeding | Sire, dam and damsire on every runner, filtered by track or race code |
| Odds comparison and apps | A structured card to hang prices on, refreshed as the day goes |
What it does
Three row shapes off the same feed:
- ๐ Runners (default): one row per declared horse. Cloth number, draw, horse with age, sex and country of breeding, weight carried, jockey with apprentice claim, trainer, owner, recent form figures, days since last run, Timeform rating and star rating, the analyst's comment on that horse, headgear, starting price in decimal and fractional, plus withdrawn and reserve flags, all with the race and meeting attached.
- ๐ Races: one row per race with title, off time, going, distance, class, eligibility, rating band, prize, surface, code and declared runner count.
- ๐ Meetings: one row per fixture with track, country, going, weather, TV channel, status, race count and the first and last race times.
And four blocks you can switch on:
- ๐ Analyst verdict and pace: the written verdict for the race, the draw comment and the pace read.
- ๐ Smart stats: Racing TV's trainer and jockey angles for the race, each with the level-stake profit behind it, for example "Jim Goldie's profit to a ยฃ1 level stake with favourites: ยฃ18.65".
- โญ Timeform tips: the horses Timeform tips in the race, with tipped place and star rating.
- ๐งฌ Pedigree: sire, dam, damsire, colour and exact age in days.
- ๐ซ Non-runner check: each runner marked against the day's declared non-runner list.
Coverage is Britain and Ireland plus the international fixtures Racing TV broadcasts. A typical day carries ten meetings across GBR, IRE, FRA, USA and SAF.
Every runner row contains: rowType, meetingDate, track, country, going, raceId, raceTitle, startTime, raceType, surface, distance, raceClass, prize, clothNumber, drawNumber, horse, horseId, horseCountry, horseAge, horseSex, weight, jockey, jockeyId, apprenticeClaim, trainer, trainerId, owner, form, daysSinceLastRun, timeformRating, timeformStarRating, timeformTippedPlace, analystComment, equipment, badges, startingPriceDecimal, startingPriceFractional, isFavourite, isWithdrawn, isReserve, runnerStatus, raceUrl and scrapedAt.
What you can do with racecard data
Build tomorrow's card into a model.
Runners mode with a date gives every declared horse with rating, form, draw and weight, ready to join to your own odds or speed figures.
Follow a trainer or a jockey.
trainerNameContains or jockeyNameContains keeps only their rides across every meeting of the day, with the analyst's comment on each horse.
Watch the non-runners.
The non-runner check flags every horse that has come out today, which is what changes a market before the off.
Study the pace.
The verdict block carries the pace read and the draw comment for each race, so you can filter to the races where the shape favours a hold-up horse.
Why choose this scraper
| What you get | |
|---|---|
| The full card, not a summary | 43 fields on a runner row, including Timeform figures and the analyst's comment on the horse |
| Race intelligence | Verdict, pace, draw comment, trainer and jockey angles, and Timeform tips |
| Non-runners | The day's declared non-runners as a flag on each runner |
| Filters before the fetch | Country, track and time are applied to the fixture list, so a narrow run opens fewer cards and costs less |
| Verified vocabularies | Country, race code and surface lists were read off the live feed, not guessed |
| No key to bring | The public key Racing TV's own site ships is the default; your own can be pasted if you have one |
How it compares
Racing TV is a different feed from the Press Association and Timeform cards our Sporting Life Racing Scraper reads. This one adds the analyst verdict, the pace read, the smart stats and the non-runner list; that one covers results and horse form history going back two decades. Between them you get the card twice, from two houses.
| Feature | ParseForge Racing TV | ParseForge Sporting Life | Other racing actors |
|---|---|---|---|
| UK and Irish cards | Yes | Yes | Mostly US, Japan or Hong Kong |
| Timeform rating per runner | Yes | Yes | Rarely |
| Analyst verdict and pace | Yes | No | No |
| Trainer and jockey angles | Yes | No | No |
| Non-runner list | Yes | No | No |
| Results and long form history | No | Yes | Some |
| Price per runner | $0.005 | $0.007 | $0.001 to $0.015 |
What a runner looks like
{
"rowType": "runner",
"meetingDate": "2026-08-27",
"track": "Navan",
"country": "IRE",
"going": "Good (Good To Firm In Places)",
"raceId": 715536,
"raceTitle": "Navan Racecourse Nursery Handicap",
"startTime": "13:44",
"raceType": "Flat",
"surface": "Turf",
"distance": "5f 180y",
"prize": "Winner: โฌ9,000.00",
"clothNumber": 2,
"drawNumber": 8,
"horse": "Howlin Wolf",
"horseId": 569163,
"horseCountry": "IE",
"horseAge": 2,
"horseSex": "Gelding",
"weight": "9-6",
"jockey": "J. J. G. Ryan",
"trainer": "Jack W. Davison, Ireland",
"owner": "Mrs Paula Davison",
"form": "7741",
"daysSinceLastRun": 11,
"timeformRating": "79",
"timeformStarRating": 5,
"analystComment": "Improved with each run and took a sizeable step forward to get off the mark switched to nurseries in 8-runner event at the Curragh 11 days ago, benefiting as expected from the return to 6f and probably helped by bagging the stand side rail. 7 lb higher mark to defy but should go close.",
"startingPriceDecimal": "5.50",
"startingPriceFractional": "9/2",
"isWithdrawn": "No",
"raceUrl": "https://www.racingtv.com/racecards/navan/navan-racecourse-nursery-handicap/715536"
}
Configure the run
Run it with no input for today's runners. Add a date range for the days ahead, or switch the row shape to races or meetings.
Today's full card:
{ "outputMode": "runners", "maxItems": 500 }
Tomorrow's British and Irish jumps runners with the verdict and pedigree:
{
"outputMode": "runners",
"dateFrom": "2026-08-28",
"countries": ["GBR", "IRE"],
"raceTypes": ["Hurdle", "Chase"],
"includeRaceVerdict": true,
"includePedigree": true,
"maxItems": 300
}
Every race of the week with the tips and the angles:
{
"outputMode": "races",
"dateFrom": "2026-08-28",
"dateTo": "2026-09-03",
"includeRaceVerdict": true,
"includeSmartStats": true,
"includeRaceTips": true,
"maxItems": 400
}
One trainer's runners across the day:
{ "trainerNameContains": "Gordon Elliott", "includeRaceVerdict": true, "maxItems": 60 }
Free users
Free-plan runs return up to 10 rows as a preview. Upgrade your Apify plan to pull whole cards.
Run it
- Create a free Apify account with $5 in credit.
- Open the Racing TV Racecards Scraper.
- Pick the row shape, the date and any filters, then click Start.
- Export the results as CSV, Excel, JSON, or XML from the Dataset tab, or schedule it each morning.
Run it programmatically through the Apify API (run-sync-get-dataset-items) or the ApifyClient for JavaScript and Python.
Use with AI agents (MCP)
Give an AI agent today's cards through the Model Context Protocol:
claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/racing-tv-racecards-scraper"
Then ask: "Which horses does Timeform rate highest at Ascot today?", "Show me Gordon Elliott's runners and the analyst's verdict on each race" or "Which races today have a weak pace?"
Troubleshooting
Why is a runner missing a starting price?
Prices appear as the market forms, so a card pulled days ahead has no price yet. The field says N/A rather than guessing one.
Why did my country filter return nothing?
Racing TV uses three-letter racing codes: GBR, IRE, FRA, USA, SAF. Two-letter codes like GB do not match.
Why are there fewer runners than the card shows?
Withdrawn horses are dropped by default so the rows match what will run. Switch on "include withdrawn runners" to keep them.
Why is the verdict empty on some races?
Not every race is previewed, especially minor cards abroad. The block is charged only when the race carries a verdict or a pace read.
Why is the run slower with races mode and tips?
Runners come from the racecard the run already opens; tips are a separate request per race. A day of races with tips is roughly two requests per race.
FAQ
| Question | Answer |
|---|---|
| Where does the data come from? | The public Racing TV API, the same one its own website calls, using the public key its web app ships. |
| Do I need an API key or a subscription? | No. The public key is the default; you can paste your own if you have one. |
| How far ahead are cards published? | A few days, and the fixture list for a date is one request. Past days stay available for a while. |
| Does it cover Ireland? | Yes, Irish fixtures come in the same feed as the British ones, and international cards Racing TV broadcasts appear too. |
| Are the Timeform ratings included? | Yes, the rating and the star rating on each runner, plus the analyst's comment on the horse. |
| What are smart stats? | Racing TV's trainer and jockey angles for a race, each with the profit to a level stake behind it. |
| Does it include results? | No. This Actor covers cards. For results and long form history use the Sporting Life Racing Scraper. |
| Can I get one row per race instead of per runner? | Yes, set the row shape to races, or to meetings for one row per fixture. |
| How many rows per run? | Free plan: 10. Paid: a full British and Irish day is about 400 runners. |
| Is this an official Racing TV product? | No. It is unofficial and reads only publicly available data. |
๐ Need help? Email parseforge@protonmail.com with your run ID, your input, and what you expected.
โ ๏ธ Disclaimer. This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by Racing TV, Timeform or any racecourse. It reads only publicly available data. Betting involves risk; nothing here is advice.
What input does the Racing TV Racecards Scraper accept?
| Field | Type | What it does | Default |
|---|---|---|---|
| outputMode | string (3 options) | Runners is one row per declared horse with its rating, form and price. Races is one row per race. Meetings is one row per fixture with its going and race count. | runners |
| dateFrom | string | First racing day, as YYYY-MM-DD. Leave empty for today. Racing TV publishes cards a few days ahead and keeps the recent past. | not set |
| dateTo | string | Last racing day, as YYYY-MM-DD. Leave empty to use the same day as the start. | not set |
| maxItems | integer | Free users: limited to 10 items (preview). Paid users: up to 1,000,000. | 10 |
| countries | array | Keep only meetings in these racing countries, using Racing TV's own codes. A typical day carries Britain and Ireland plus the international cards it broadcasts. | not set |
| trackNameContains | string | Keep only meetings at a track whose name contains this text, for example "Ascot" or "Curragh". | not set |
| raceTypes | array | The four codes Racing TV labels races with. A few races carry no code and are kept unless you filter. | not set |
| surfaces | array | Turf or an all-weather surface. | not set |
| horseNameContains | string | Runners mode. Keep only horses whose name contains this text. | not set |
| jockeyNameContains | string | Runners mode. Keep only rides by a jockey whose name contains this text. | not set |
| trainerNameContains | string | Runners mode. Keep only runners from a trainer whose name contains this text. | not set |
| minRunners | integer | Skip races with fewer declared runners than this. | not set |
| timeFrom | string | Local race time in 24 hour form, for example 14:00. | not set |
| timeTo | string | Local race time in 24 hour form, for example 17:30. | not set |
| includeWithdrawn | boolean | Keep horses marked withdrawn. They are dropped by default so the card matches what will actually run. | false |
| apiKey | string | Optional. The public key Racing TV's own web app ships is used by default; set this only if you have your own. | 936fdbdf-1e46-4f82-9d18-d81b4803537d |
| includeRaceVerdict | boolean | Add the race analyst's written verdict, the draw comment and the pace read for the race. | false |
| includeSmartStats | boolean | Add Racing TV's trainer and jockey angles for the race, with the level-stake profit figure behind each one. | false |
| includeRaceTips | boolean | Races mode. Add the horses Timeform tips in the race with their tipped place and star rating. One extra request per race. | false |
| includePedigree | boolean | Runners mode. Add the sire, dam, damsire, colour and exact age in days for each horse. | false |
| includeNonRunnerCheck | boolean | Mark each runner against today's declared non-runner list. One request for the whole run. | false |
How much does the Racing TV Racecards Scraper cost?
from $4.45 per 1,000 results
| Charged for | What it is | Price each |
|---|---|---|
| Actor Start | Charged when the Actor starts running. Number of events charged depends on Actor memory (one event per GB, minimum one event). | $0.0178 to $0.02 |
| Runner | One declared runner with its race and meeting: cloth number, draw, horse with age, sex and country, weight, jockey with claim, trainer, owner, recent form, days since last run, Timeform rating and star rating, the analyst comment on the horse, headgear, starting price in decimal and fractional, and the withdrawn and reserve flags. | $0.00445 to $0.005 |
| Race | One race with its title, time, going, distance, class, eligibility, prize, surface, code and declared runner count. | $0.0089 to $0.01 |
| Meeting | One fixture with its track, country, going, weather, TV channel, status, race count and first and last race times. | $0.00712 to $0.008 |
| Racecard read | One request to Racing TV: the day's fixture list, or a full racecard with its runners. Never charged for more requests than the run wrote rows. | $0.00356 to $0.004 |
| Analyst verdict and pace | Optional. The race analyst's written verdict, the draw comment and the pace read for the race. Charged only when the race carries them. | $0.00356 to $0.004 |
| Smart stats | Optional. Racing TV's trainer and jockey angles for the race, each with the level-stake profit behind it. Charged only when the race has any. | $0.00356 to $0.004 |
| Timeform tips | Optional. The horses Timeform tips in the race with their tipped place and star rating, from a separate request per race. Charged only when a tip came back. | $0.00445 to $0.005 |
| Pedigree | Optional. Sire, dam, damsire, colour and exact age in days for the horse. Charged only when the breeding is published. | $0.00267 to $0.003 |
| Non-runner check | Optional. Each runner checked against the day's declared non-runner list, which is one request for the whole run. | $0.00267 to $0.003 |
Tiered: the lower figure is the price on a higher Apify plan. Billing and the free credit live on Apify.
How do I call the Racing TV Racecards Scraper API?
One POST returns the dataset directly. Same shape for every scraper in the library, so swapping the slug is the only change.
curl -X POST "https://api.apify.com/v2/acts/parseforge~racing-tv-racecards-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"outputMode": "runners",
"maxItems": 10,
"includeWithdrawn": false,
"apiKey": "936fdbdf-1e46-4f82-9d18-d81b4803537d",
"includeRaceVerdict": false
}' What example inputs can I use?
Use these inputs to see how a run is configured.
{
"outputMode": "runners",
"maxItems": 10,
"includeWithdrawn": false,
"apiKey": "936fdbdf-1e46-4f82-9d18-d81b4803537d",
"includeRaceVerdict": false
} What do users say about the Racing TV Racecards Scraper?
No reviews yet. Be the first.
How do I report an issue with the Racing TV Racecards Scraper?
We build and maintain this scraper, so a problem with it comes to us. Report it on the Apify listing and the thread stays attached to the scraper where the next person can find it: open an issue.
Broken and urgent, or you would rather not post in public? Write to parseforge@protonmail.com and it reaches the people who wrote it.
