netkeirin Keirin Japan — Race Cards, Results & Payouts
Pricing
from $20.00 / 1,000 race analyzeds
netkeirin Keirin Japan — Race Cards, Results & Payouts
Pick a velodrome and get Japanese keirin (track cycling) races from netkeirin in English. Returns each rider's rating points, style and win rates, then finish order, winning move and every payout. $0.02 per race, +$0.002 per rider for one row per rider; no data = no charge. Unofficial.
Pricing
from $20.00 / 1,000 race analyzeds
Rating
0.0
(0)
Developer
h ichi
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
What it does: Returns one Japanese keirin (track cycling) race from netkeirin: the race card, and the finish order and every payout once the race is official.
You enter: A velodrome code, e.g. 35 (Hiratsuka), and race numbers like [1]. Empty date = latest race day.
You get: One row per race: distance, laps, bank length; each of the 7 or 9 riders' rating points, style, win rates, gear ratio, class; result: finish order with margin and last-lap time, winning move, every payout with popularity rank.
Price: $0.02 per race — an empty race list means the whole card, each charged. +$0.002 per rider if you also want one row per rider (off by default). A race with no data = no charge.
Example: enter velodrome 35, races [1] → Hiratsuka 2026-06-30 · FI race · 7 riders · 1,625 m · winner car 4 (白井優太朗) by makuri · trifecta 4>3>1 pays ¥20,090 (54th favourite)
Unofficial — not affiliated with netkeiba (netkeirin). Reads public pages only.
Why this exists
The official keirin.jp portal does not allow automated reading of its race pages (its robots.txt says so, and this actor never touches it), and there is no free public API for keirin cards or payouts — the one paid voting API was withdrawn in 2024. This actor reads the public netkeirin pages on demand instead and returns one row per race: the race-day card and, once the race is official, the result and payouts, with English field names. Nothing is stored between runs.
Built for betting-model developers, data scientists and analytics tools — keirin is one of the most feature-rich Japanese racing datasets, and every column a keirin model normally starts from is in the card.
Pricing — $0.02 per race
| Event | Price | When |
|---|---|---|
| Race summary (card + result + payouts) | $0.02 | Per race that returned data |
| Individual rider entry | $0.002 | Only if you enable Include individual entries |
A default run (1 race) costs $0.02. Every race in the run is charged, so leaving the race list empty means the whole card of that day (up to 12 races, $0.02 each). Races that do not exist (day off, shorter card, card not published yet) come back as status: "no_data" and are never charged. You pay per race; there is no fixed monthly fee.
Input
| Field | Example | Notes |
|---|---|---|
velodrome | "35" | Required. 2-digit velodrome code: 11=Hakodate … 35=Hiratsuka … 87=Kumamoto (pick from the dropdown) |
date | "20260630" | Optional. Race day (YYYYMMDD or YYYY-MM-DD). Leave it empty and the actor uses this velodrome's latest race day |
races | [1] | Race numbers 1-12; empty = the whole card |
includeResult | true | Also read the result and payouts of each race (on by default; costs nothing extra) |
includeIndividualEntries | false | Push each rider as its own record |
The 12-digit netkeirin race_id is simply YYYYMMDD + velodrome code + race number, so the actor never has to search for races.
Latest race day (default) — with date left empty the actor reads the velodrome's own schedule page: the meeting in progress if there is one, otherwise the most recent finished meeting, and takes the newest day that has a published card. That costs one extra request and keeps a saved input working forever, which a hard-coded date would not: netkeirin drops old cards eventually. Measured 2026-08-18 — 2026-06-30 (7 weeks back) and 2026-05-01 (15 weeks back) still returned full cards, 2026-02-01 came back as no_data. The cut-off is not published, so treat any fixed past date as something that will stop working one day.
Output example (one race)
Measured on 2026-07-26 (real values read from netkeirin for Hiratsuka race 1 on 2026-06-30). One record per race; entries holds all 7 (or 9) riders and payouts every bet type the meeting ran — the example is shortened to one of each. Each record also carries checkedAt, the UTC time it was read.
{"type": "race_summary","raceId": "202606303501","date": "2026-06-30","velodromeCode": 35,"velodrome": "Hiratsuka","raceNumber": 1,"grade": "FI","eventTitle": "HPCJC×ウィンチケット杯","raceName": "A級 予選","startTime": "15:51","distanceM": 1625,"laps": 4,"bankLengthM": 400.0,"homeStraightM": 54.2,"riders": 7,"status": "finished","entries": [{"bracket": 1, "carNumber": 1, "playerId": 15893, "name": "岩辺陸","prefecture": "静岡", "age": 21, "period": 127, "classGrade": "A2","ratingPoints": 91.5, "style": "逃", "styleEn": "nige (front runner)","sCount": 7, "bCount": 9,"winningMoves": {"nige": 3, "makuri": 8, "sashi": 2, "mark": 3},"finishCounts": {"first": 8, "second": 8, "third": 4, "unplaced": 4},"winPct": 33.3, "top2Pct": 66.6, "top3Pct": 83.3,"gearRatio": 3.92, "comment": "自力で。"}],"result": {"placings": [{"position": 1, "bracket": 4, "carNumber": 4, "playerId": 15548,"name": "白井優太朗", "margin": null, "lastLapSeconds": 11.4,"kimarite": "捲", "kimariteEn": "makuri (outside sweep)","tookS": false, "tookB": false}],"payouts": [{"betType": "quinella", "betTypeJa": "2車複", "combination": "3-4","payoutJpy": 7500, "popularity": 15},{"betType": "trifecta", "betTypeJa": "3連単", "combination": "4>3>1","payoutJpy": 20090, "popularity": 54}]}}
Use cases
- Prediction models — get the full feature set (rating points, style, winning-move mix, gear ratio) before the race and the result after, without touching a site that forbids automated reading
- Payout research — trifecta / trio payout distributions per velodrome, bank length or grade in a handful of calls
- Dashboards & bots — same-day results with kimarite and last-lap times, as JSON
Notes & limits
- A field is 7 or 9 riders depending on the meeting, and the bracket number is not the car number — both are returned separately
- Bet types vary by meeting (bracket pools only appear in 9-rider fields), so every payout row is returned rather than a fixed list
statusisfinished(card + result),not_run_yet(asked for the result, race not official yet),result_not_requested(includeResultwas off) orno_data(no such race — free)- If the result page itself fails, the race card is still returned and
resultErrorcarries the reason — you never lose a card you paid for - Odds pages are not server-rendered and are out of scope for v1
- Read-only and throttled (~1 request / 1.5 s). No login, no personal data beyond the public rider register, nothing stored between runs
日本語ガイド
競輪(netkeirin)の出走表・結果・全賭式払戻を、レース1件につき1レコードの構造化JSONで返す Actor です。
- 概要: レース単位で、出走表(7車立て/9車立て可変。競走得点・脚質・S/B・決まり手別回数・着別度数・勝率/2連対率/3連対率・ギヤ倍数・府県/年齢/期別/級班・選手コメント)と、確定後は着順(枠番と車番を別々に・着差・上り・決まり手・S/B)と全賭式の払戻(人気順位付き)を英語フィールド名で返します。
- 使い方: 必須は
velodrome(2桁の競輪場コード。35=平塚、45=豊橋 など全43場をプルダウンから選択)だけです。racesを空にするとその日の全レースを取得します。 - 開催日の自動解決:
dateは省略可です。空(またはauto)にすると、その競輪場の最新開催日(開催中ならその節、節間なら直近に終了した節)を日程ページから自動で解決します(追加リクエスト1回)。netkeirin は古い出走表をいずれ落とすため、固定日付を保存しておくといずれ取得できなくなります(実測 2026-08-18: 7週前の 2026-06-30 と 15週前の 2026-05-01 は取得可、2026-02-01 はno_data。保持期間は公表されていません)。特定の日を指定したいときだけdate(YYYYMMDD)を入れてください。 - 料金: レースサマリー1件 $0.02。個別選手レコードが必要な場合のみ
includeIndividualEntriesを ON(+$0.002/車)。開催のない日・存在しないレース番号はno_dataとして返り、課金されません。 従量課金です(レース単位の課金だけで、固定費はありません)。 - status の値:
finished(結果まで確定)/not_run_yet(結果を要求したが未確定)/result_not_requested(includeResultが OFF)/no_data(該当レースなし・無課金)。結果ページだけ失敗した場合も出走表は返り、理由がresultErrorに入ります。 - 注意: 公式 keirin.jp は robots.txt でレースページのクロールを禁じているため一切アクセスしません。オッズは非SSRのため v1 対象外です。
If something goes wrong
- Wrong number or a failed run? Open a ticket on the Issues tab. I read every one and reply within 2 business days (Japan time).
- You never get a fake "empty" result. If the site can't be read, the run fails and says so.
- No results = no charge. You only pay for results you actually get.
- Checked every week. An automatic test runs this tool weekly; if the site changes, I fix it.
- Public pages only. No login, no personal data, and it goes easy on the site.
More tools by the same author
- Boatrace Japan (Kyotei) — Race Cards, Results & Payouts
- netkeiba JRA Racing — Race Cards, Results & Payouts
- Mercari Japan Sold Prices — What Items Really Sell For
- Yahoo! Auctions Japan Sold Prices — Median, Range, Bids
All tools (Japan marketplaces, real estate, jobs, racing, prediction markets): https://apify.com/jpmarketdata
Disclaimer
Unofficial, independent tool — not affiliated with, endorsed by, or sponsored by netkeiba. Product names and logos belong to their owners and only say where the data comes from. Data is read from public pages, for market research; check before you act on it.