Keirin (Japan Track Cycling) — Race Cards, Results & Payouts
Pricing
from $20.00 / 1,000 race analyzeds
Keirin (Japan Track Cycling) — Race Cards, Results & Payouts
Japanese keirin (track cycling) as clean English JSON: race cards with rating points, riding style, S/B and winning-move counts, gear ratio, plus finish order, kimarite and every payout pool. No login, one call per race. From $0.02 — no subscription. 競輪の出走表・結果・払戻を1コールで。
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
Structured, English-normalized data for keirin — Japan's public-gambling track cycling, racing nearly 365 days a year across 43 velodromes with roughly ¥1 trillion in annual betting turnover. Data comes on demand from the public netkeirin pages (no login; robots.txt allows all). One call per race returns:
- Race card — every rider (fields are 7 or 9 strong depending on the meeting) with rating points (競走得点), riding style (nige / makuri / oikomi), S and B counts, winning-move counts (nige / makuri / sashi / mark), finish-position counts (1st / 2nd / 3rd / unplaced), win, top-2 and top-3 rates, gear ratio, prefecture, age, class (S1/S2/A1…), graduating class, and the rider's own pre-race comment
- Result (once the race is official) — finish order with bracket and car number (they are not the same in keirin), margin, last-lap time, the winning move (kimarite), S/B flags, and every payout pool with popularity rank: quinella, exacta, wide, trio, trifecta — plus bracket quinella/exacta when the meeting offers them
- Race metadata — grade (GI/GII/GIII/FI/FII), event title, race name, start and betting-close time, distance, laps, and the velodrome's bank length and home straight
Why this exists
The official keirin.jp portal disallows crawling of its race pages, and there is no free public API for keirin cards or payouts (the one paid voting API was withdrawn in 2024). This actor is the on-demand structured view of the public netkeirin pages: race-day cards and same-day results, in one call, 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 — from $0.02 per race, no subscription
| 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. Races that do not exist (day off, shorter card, card not published yet) come back as status: "no_data" and are never charged.
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 | Fetch result/payouts per race |
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 only keeps about a month of history.
Output example (one race)
{"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 — pull the full feature set (rating points, style, winning-move mix, gear ratio) before the race and the result after, without scraping a disallowed site
- 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コールで構造化JSONにして返す Actor です。
- 概要: レース単位で、出走表(7車立て/9車立て可変。競走得点・脚質・S/B・決まり手別回数・着別度数・勝率/2連対率/3連対率・ギヤ倍数・府県/年齢/期別/級班・選手コメント)と、確定後は着順(枠番と車番を別々に・着差・上り・決まり手・S/B)と全賭式の払戻(人気順位付き)を英語フィールド名で返します。
- 使い方: 必須は
velodrome(2桁の競輪場コード。35=平塚、45=豊橋 など全43場をプルダウンから選択)だけです。racesを空にするとその日の全レースを取得します。 - 開催日の自動解決:
dateは省略可です。空(またはauto)にすると、その競輪場の最新開催日(開催中ならその節、節間なら直近に終了した節)を日程ページから自動で解決します(追加リクエスト1回)。netkeirin の履歴保持は約1ヶ月のため、固定日付を保存しておくといずれ取得できなくなります。特定の日を指定したいときだけ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 対象外です。