Pricing
from $5.00 / 1,000 results
Netkeiba Horse Racing Scraper
Extract Japanese horse racing data from netkeiba.com: race results, finishing positions, horse names, jockeys, trainers, times, odds, margins. Scrape by date range or race IDs. Covers JRA and regional racecourses. For racing analytics, betting research.
Pricing
from $5.00 / 1,000 results
Rating
0.0
(0)
Developer
Actor stats
0
Bookmarked
13
Total users
1
Monthly active users
2 months ago
Last modified
Categories
Share
Apify Actor for scraping horse racing data from netkeiba.com (Japanese horse racing).
Features
- Race Results: Scrape detailed race results including horse names, positions, times, odds, jockeys, and trainers
- Horse Profiles: Get comprehensive horse information including breeding, ownership, and career statistics
- Race Calendar: List all races for a specific date
- EUC-JP Encoding Support: Properly handles Japanese text encoding
- Rate Limiting: Built-in delays (2-3s) between requests
- Retry Logic: Exponential backoff for failed requests
- Proxy Support: Uses residential proxies for reliable scraping
Input
{"mode":"race_results","raceId":"202506010101","raceDate":"20250601","maxResults":100}
Input Fields
| Field | Type | Description | Required |
|---|---|---|---|
mode | string | Scraping mode: race_results, horse_profile, race_calendar, odds | No (default: race_results) |
raceId | string | 12-digit race ID (format: YYYYMMDDVVRR) | No |
raceDate | string | Race date in YYYYMMDD format | No |
horseId | string | Horse ID for profile scraping | No |
searchUrl | string | Direct URL to scrape | No |
maxResults | number | Maximum number of results to return | No (default: 100) |
Modes
1. Race Results (race_results)
Scrape race results by:
- Single race: Provide
raceId - All races on a date: Provide
raceDate - Custom URL: Provide
searchUrl
Output Example:
{"raceName":"第12レース","raceDate":"20250601","raceNumber":"12R","venue":"東京","surface":"芝","distance":"1600m","weather":"晴","trackCondition":"良","horseName":"ディープインパクト","horseId":"2022104001","position":"1","frameNumber":"5","horseNumber":"8","jockey":"武豊","trainer":"藤沢和雄","weight":"56.0","time":"1:34.5","margin":"1.1/4","odds":"2.3","popularity":"1","lastThreeFurlongs":"34.8","url":"https://race.netkeiba.com/race/result.html?race_id=202506010101"}
2. Horse Profile (horse_profile)
Get detailed horse information.
Input:
{"mode":"horse_profile","horseId":"2022104001"}
Output Example:
{"horseId":"2022104001","horseName":"ディープインパクト","birthYear":"2002年3月25日","trainer":"藤沢和雄","owner":"金子真人ホールディングス株式会社","breeder":"ノーザンファーム","totalRaces":"14戦","totalWins":"12勝","totalEarnings":"1,454,551,000円","url":"https://db.netkeiba.com/horse/2022104001/"}
3. Race Calendar (race_calendar)
List all race IDs for a specific date.
Input:
{"mode":"race_calendar","raceDate":"20250601"}
Output Example:
{"raceId":"202506010101","raceDate":"20250601","url":"https://race.netkeiba.com/top/race_list.html?kaisai_date=20250601"}
URL Formats
- Race Result:
https://race.netkeiba.com/race/result.html?race_id=202506010101 - Race Calendar:
https://race.netkeiba.com/top/race_list.html?kaisai_date=20250601 - Horse Profile:
https://db.netkeiba.com/horse/2022104001/
Race ID Format
Race IDs are 12 digits: YYYYMMDDVVRR
YYYY: Year (e.g., 2025)MM: Month (01-12)DD: Day (01-31)VV: Venue code (01-10)RR: Race number (01-12)
Example: 202506010101 = Tokyo, June 1, 2025, Race 1
Development
# Install dependenciesnpminstall# Build TypeScriptnpm run build# Run locallynpm start# Development mode (build + run)npm run dev
Deployment
# Login to Apifyapify login# Deploy to Apify platformapify push
Rate Limiting
The scraper includes:
- 2-3 second delays between page requests
- Exponential backoff retry (max 3 attempts)
- Residential proxy rotation
Technical Details
- Encoding: Handles EUC-JP encoding (Japanese text)
- Proxy: Uses Apify residential proxies
- Parser: Cheerio for HTML parsing
- HTTP Client: got-scraping with anti-bot features
- Runtime: Node.js 20+
- Language: TypeScript
License
MIT
Support
For issues or questions, please contact the maintainer.
