Japan Horse Racing Scraper - JRA Odds, Race Cards & Results avatar

Japan Horse Racing Scraper - JRA Odds, Race Cards & Results

Pricing

Pay per event

Go to Apify Store
Japan Horse Racing Scraper - JRA Odds, Race Cards & Results

Japan Horse Racing Scraper - JRA Odds, Race Cards & Results

Scrape JRA horse racing data from netkeiba: race cards, live win and place odds, results and every payout as clean English JSON.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Data Mill

Data Mill

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

What does Japan Horse Racing Scraper do?

This Actor extracts Japanese (JRA) horse racing data from netkeiba, Japan's leading racing portal, and returns it as clean English-keyed JSON. You get daily race schedules, full race cards with every horse, jockey and weight, live win & place odds pulled from the official odds API, and finished results with every payout type including trifecta (三連単).

Japan runs the largest horse racing betting market on earth — JRA turnover exceeds ¥3 trillion a year — yet almost all of its data is locked behind Japanese-only pages. This Actor unlocks it. Run it from the Apify Console, call it via API, schedule it around post times, or plug it into an AI agent through MCP.

Why use Japan Horse Racing Scraper?

  • Build and backtest betting models — join race cards, odds snapshots and results into training data using stable netkeiba IDs.
  • Track odds movement — schedule the odds mode every few minutes before post time and watch the market shift.
  • Power apps and dashboards — English field names mean no Japanese knowledge is required downstream.
  • Feed AI agents — let an agent pull live Japanese racing data on demand.
  • Research and media — structured data on the circuit that produced Equinox, Almond Eye and the Deep Impact line.

How to use Japan Horse Racing Scraper

  1. Click Try for free and open the Input tab.
  2. Pick a Data type: race list, race card, result, or odds.
  3. Either set a Date (to sweep a whole race day) or paste specific Race IDs.
  4. Click Start and watch the log.
  5. When the run finishes, open the Output tab and export as JSON, CSV, Excel or HTML — or fetch it from the API.

New to netkeiba race IDs? Run raceList mode first with today's date; every returned race includes its raceId, ready to paste into the other modes.

Input

FieldTypeDescription
dataTypeselectraceList, raceCard, result or odds
datestringRace day in JST, e.g. 2026-08-09. Defaults to today
raceIdsarraySpecific 12-digit race IDs. Overrides date
includeOddsbooleanMerge live odds into each race card entry
maxRacesintegerSafety cap when sweeping a full day (default 40)
maxConcurrencyintegerParallel requests, 1–5
{
"dataType": "raceCard",
"raceIds": ["202601010611"],
"includeOdds": true
}

Output

Every item carries decoded race metadata (venue, meeting, dayOfMeeting, raceNumber), so you never have to parse a race ID yourself. You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.

{
"raceId": "202601010611",
"venue": "Sapporo",
"raceName": "UHB賞",
"surface": "turf",
"distanceMeters": 1200,
"weather": "晴",
"going": "良",
"results": [
{
"finishPosition": 1,
"number": 10,
"name": "ナムラクララ",
"sexAge": "牝4",
"carriedWeightKg": 55.0,
"jockey": "浜中",
"time": "1:08.4",
"last3f": 34.1,
"winOdds": 3.6,
"popularity": 1,
"trainer": "長谷川",
"trainingCenter": "Ritto",
"bodyWeightKg": 478,
"bodyWeightDiff": 6
}
],
"payouts": {
"win": { "combinations": ["10"], "payoutsYenPer100": [360] },
"trifecta": { "combinations": ["10-13-2"], "payoutsYenPer100": [19480] }
}
}

Data you can extract

FieldModesDescription
raceId, venue, raceNumberallDecoded from the 12-digit netkeiba race ID
raceName, gradeallRace title and G1/G2/G3/Listed grade
surface, distanceMeters, directioncard, resultTurf / dirt / jump, distance, track direction
weather, goingcard, resultWeather and track condition
horses[]cardFrame, number, name, sex/age, carried weight, body weight ± diff
jockey, trainer, trainingCentercard, resultWith stable jockeyId / trainerId
winOdds, placeOddsMin/Max, popularitycard, oddsLive odds with official timestamp
finishPosition, time, margin, last3fresultFinishing order and sectional times
payoutsresultWin, place, bracket quinella, quinella, quinella place, exacta, trio, trifecta

How much does it cost to scrape netkeiba?

This Actor uses pay per event, so you pay only for the data you actually pull:

EventPrice
Race card scraped$0.006
Race result scraped$0.006
Odds snapshot$0.003
Race list for a day$0.01

A full JRA Saturday (36 races, cards + results) costs about $0.43. Polling odds for one race every 5 minutes across a 3-hour window costs about $0.11. Apify's free tier includes $5 of monthly usage, which is enough to try every mode.

Tips

  • JRA races run mostly on Saturdays, Sundays and public holidays (JST), roughly 09:40–16:30, at two or three venues of 12 races each. Weekday runs will simply return nothing.
  • A practical schedule: raceList in the morning → raceCard before post time → odds every few minutes → result after 17:00 JST.
  • Use raceCard (not result) for upcoming races; results only exist once a race has been run.
  • Keep maxConcurrency at 3 or lower to stay polite to the source site — the data is the same, and runs rarely get blocked.

FAQ

Is scraping netkeiba legal? This Actor reads only public pages and a public JSON endpoint — no login, no paywall bypass, and a handful of polite requests per race. Web scraping of publicly available data is generally lawful in many jurisdictions, but you are responsible for complying with the source site's terms and your local regulations. It is analytics tooling, not betting advice.

Does it cover local (NAR) racing? Currently JRA (central) racing only. Open an issue if you need NAR — it is on the roadmap.

Why is passageOrder sometimes missing? netkeiba does not render passage positions on the standard result view for every race. All other result fields are always populated once a race has run.

Something broke or you need another field? Use the Issues tab on this Actor. Site layouts change, and fixes usually ship within a day. Custom Japanese data sources can also be built on request.

Other Actors by Data Mill

All of them return clean English-keyed JSON and are maintained the same way.