World Turf Pulse avatar

World Turf Pulse

Pricing

$5.00 / 1,000 results

Go to Apify Store
World Turf Pulse

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

$5.00 / 1,000 results

Rating

0.0

(0)

Developer

0xGollum

0xGollum

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

20 hours ago

Last modified

Share

World Turf Pulse 🌏🐎

Horse Racing Pulse, gone international. Nine markets live: Japan, France, UK, Ireland, USA, Australia, Germany, South Africa, New Zealand.

Horse Racing Pulse tracks steamers and drifters on French PMU odds. That's one country. This actor brings the same signal to the world's biggest racing markets, all in one place — Horse Racing Pulse (France) stays untouched and independently priced for its existing client.

What you get

Two row types:

  • Snapshot — current win odds + implied probability for every horse in every tracked race
  • Signal — a named, fired condition:
SignalMeaning
steamerA horse's implied probability jumped between runs — money coming in fast, price shortening
drifterA 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)

MarketSourceNotes
🇯🇵 Japan (JRA)netkeiba.comRace cards server-rendered; win odds via a key-less JSON endpoint
🇫🇷 France (PMU)online.turfinfo.api.pmu.frOfficial public PMU JSON API (same source as Horse Racing Pulse)
🇬🇧 UK / 🇮🇪 Irelandsportinglife.comMulti-bookmaker odds embedded in server-rendered race pages
🇺🇸 USAsportinglife.comSame source as UK/IE — sidesteps Equibase's bot-wall entirely
🇦🇺 Australiaracing.comPublic AWS AppSync GraphQL API (key ships in the site's own client config), fixed odds from 4 bookmakers
🇩🇪 Germanyracing-odds.comBookmaker-odds-comparison site aggregating international racing; decimal odds ship inline (data-odds-dec)
🇿🇦 South Africaracing-odds.comSame source as Germany
🇳🇿 New Zealandracing-odds.comSame 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_ERROR even 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)

FieldDefaultDescription
marketsall nineWhich racing markets to include in this run
max_races15How many soonest-starting upcoming races to scan per run, per market
movement_threshold_pct5Minimum implied-probability change (percentage points) between runs to fire a signal
only_signalsfalseSkip 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."
}

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_pct for 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 markets to 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.