World Turf Pulse
Pricing
$2.00 / 1,000 results
World Turf Pulse
Tracks live horse-racing win odds across nine countries (Japan, France, UK, Ireland, USA, Australia, Germany, South Africa, New Zealand) for races not yet off, and flags implied-probability steamers and drifters between runs. International sibling of Horse Racing Pulse.
Pricing
$2.00 / 1,000 results
Rating
0.0
(0)
Developer
0xGollum
Maintained by CommunityActor stats
0
Bookmarked
26
Total users
8
Monthly active users
2 days ago
Last modified
Categories
Share
World Turf Pulse 🌏🐎
A shortening price is the oldest tell in racing. Catch it across nine of the world's biggest markets — Japan, France, UK, Ireland, USA, Australia, Germany, South Africa, New Zealand — in one feed.
Odds move with the money right up to post time: when smart money lands on a horse, its price shortens fast. World Turf Pulse watches that movement continuously across all nine markets at once, so you don't maintain nine separate scrapers. (Horse Racing Pulse, the France-only actor, stays untouched and independently priced for its existing client.)
What a row looks like
A fired signal, straight from the dataset:
{"type": "signal","signal": "steamer","venue": "Tokyo","race_id": "202605010111","race_num": "11","race_name": "TOKYO YUSHUN","horse_num": 3,"horse_name": "SAMPLE HORSE","prob_change_pct": 6.8,"current_cote": 5.2,"current_prob_pct": 19.2,"previous_prob_pct": 12.4,"message": "SAMPLE HORSE (#3) at Tokyo R11 (TOKYO YUSHUN): odds shortened to 5.2 (12.4% -> 19.2% implied) — money coming in fast."}
Every run also returns a snapshot row per horse per race (current win odds + implied probability). Full field list under Output below.
What you get
Two row types:
- Snapshot — current win odds + implied probability for every horse in every tracked race
- Signal — a named, fired condition:
| Signal | Meaning |
|---|---|
steamer | A horse's implied probability jumped between runs — money coming in fast, price shortening |
drifter | A horse's implied probability faded between runs — confidence draining, price lengthening |
Sources (public, no API key required in the ToS sense, no proxy, no headless browser)
| Market | Source | Notes |
|---|---|---|
| 🇯🇵 Japan (JRA) | netkeiba.com | Race cards server-rendered; win odds via a key-less JSON endpoint |
| 🇫🇷 France (PMU) | online.turfinfo.api.pmu.fr | Official public PMU JSON API (same source as Horse Racing Pulse) |
| 🇬🇧 UK / 🇮🇪 Ireland | sportinglife.com | Multi-bookmaker odds embedded in server-rendered race pages |
| 🇺🇸 USA | sportinglife.com | Same source as UK/IE — sidesteps Equibase's bot-wall entirely |
| 🇦🇺 Australia | racing.com | Public AWS AppSync GraphQL API (key ships in the site's own client config), fixed odds from 4 bookmakers |
| 🇩🇪 Germany | racing-odds.com | Bookmaker-odds-comparison site aggregating international racing; decimal odds ship inline (data-odds-dec) |
| 🇿🇦 South Africa | racing-odds.com | Same source as Germany |
| 🇳🇿 New Zealand | racing-odds.com | Same source as Germany; official TAB NZ returns HTTP 403 (likely geo-restricted) |
No login, no paid proxy, no browser automation for any of the nine — all confirmed by inspecting each site's real network calls or embedded config, and covered by offline tests (tests/test_signals.py, tests/test_sources_ro.py) run against real captured fixtures.
Only races not yet off are scanned, soonest-starting first per market. Races outside the pre-race odds window (odds not published yet) are skipped automatically — Germany/South Africa/New Zealand race less often than the other six, so a given run may return zero rows for one of them if nothing's currently in its odds window; that's expected, not an error.
Not included: Hong Kong (HKJC), South Korea (KRA).
- Hong Kong: HKJC's GraphQL API returns a
WHITELIST_ERROReven with correct Origin/Referer headers, requiring a signed token generated client-side. racing-odds.com also lists Hong Kong in its nav — worth a follow-up check on a live HK raceday (Wed/Sat/Sun) before writing off this route. - South Korea: KRA's public race-card pages (race.kra.co.kr) are not anti-bot-blocked and are scrapable, but carry no odds field anywhere — Korea appears not to publish betting odds on its public site.
Use cases
- Punters — spot steamers before the crowd, avoid drifters
- Value bettors — price movement is a core tell for market confidence shifts
- Content & tipster sites — power previews with live movement data
- Bots & automations — feed clean signals into your own alerting pipeline
Input (all optional)
| Field | Default | Description |
|---|---|---|
markets | all nine | Which racing markets to include in this run |
max_races | 15 | How many soonest-starting upcoming races to scan per run, per market |
movement_threshold_pct | 5 | Minimum implied-probability change (percentage points) between runs to fire a signal |
movement_relative_pct | 30 | Also fire when the implied probability moves by this % of its previous value — catches outsiders steaming (50/1 → 20/1). 0 disables. |
only_signals | false | Skip snapshots, only push steamer/drifter rows |
Output
{"type": "signal","signal": "steamer","venue": "Tokyo","race_id": "202605010111","race_num": "11","race_name": "TOKYO YUSHUN","horse_num": 3,"horse_name": "SAMPLE HORSE","prob_change_pct": 6.8,"current_cote": 5.2,"current_prob_pct": 19.2,"previous_prob_pct": 12.4,"message": "SAMPLE HORSE (#3) at Tokyo R11 (TOKYO YUSHUN): odds shortened to 5.2 (12.4% -> 19.2% implied) — money coming in fast."}
Reliability notes
- Signals are always emitted before snapshots, so a tight
max_resultskeeps what matters. - A market whose source fails on one run keeps its odds baselines for the next (12 h), so one flaky source never resets a whole country.
Pricing
Pay per result: $0.005 per row (snapshots + signals). Nine countries and a proprietary steamer/drifter signal, still cheaper than raw-data-only competitors in this space.
Tips
- Schedule it every 10–15 min to catch steam as it builds toward post time; movement between two runs is what triggers a signal, so it needs a persistent schedule (not one-off runs) to be useful.
- Lower
movement_threshold_pctfor more sensitivity (more signals, more noise) or raise it to only catch big moves. - Odds only open in a pre-race window — early scans of the day may return few or no rows for a given market until that window opens.
- Narrow
marketsto just the ones you care about to cut result volume (and cost) if you don't need all nine.
Roadmap
Nine markets live. Hong Kong is the next candidate, blocked for now on a signed-token whitelist (see Sources above) — revisit if worth the reverse-engineering time.
⚠️ Not betting advice. Odds movement reflects market activity, not a guaranteed outcome. This actor surfaces public odds data — it does not place bets or guarantee profit.