TRAPEZIUM RACE SYSTEM
レース結果API 使用説明書
TRP-NETに登録された公開大会、公開ヒート、順位、正式ラップを、Speedhive API JSON風の読み取り専用形式で取得できます。
このAPIについて
互換性について:このAPIはSpeedhive APIのデータ構造を参考にしたTRP-NET独自の「Speedhive API JSON風」形式です。Speedhive API対応ソフトで互換動作する可能性はありますが、MYLAPS公式APIではなく、互換性および動作を保証するものではありません。
認証は不要です。公開中の情報だけを返し、非公開ヒート、無効ラップ、HoleShot、メールアドレス、LINE IDは出力しません。
APIを利用した場合は、API利用規約に同意したものとして取り扱います。利用前に内容を確認してください。
https://www.trpnet.xyz/race-result/api/speedhive
利用の流れ
1. 大会を探す大会一覧から使用するEventのIDを取得します。
2. ヒートを選ぶEvent詳細からSessionのIDを取得します。
3. 結果を取得Session APIで順位とラップをまとめて取得します。
エンドポイント
GET
/api/speedhive/events公開大会の一覧。大会名、開催日、取込元、セッション数を返します。
GET
/api/speedhive/events/{event_id}大会情報と、その大会に含まれる公開セッション一覧を返します。
GET
/api/speedhive/sessions/{session_id}Event、Session、Results、各パイロットのLapsをまとめて返します。
curlによる取得例
1. 大会一覧
curl -s https://www.trpnet.xyz/race-result/api/speedhive/events
2. 大会とセッション一覧
curl -s https://www.trpnet.xyz/race-result/api/speedhive/events/{event_id}
3. セッション結果
curl -s https://www.trpnet.xyz/race-result/api/speedhive/sessions/{session_id}
セッションAPIのレスポンス例
{
"Event": {
"Id": "event-uuid",
"Name": "大会名",
"Track": null,
"Date": "2026-08-13"
},
"Session": {
"Id": "session-uuid",
"Name": "決勝",
"Type": "Race",
"DateTime": "2026-08-13T05:00:00.000Z",
"TotalLaps": 8,
"Class": "Open",
"Round": 3,
"Source": "rotorhazard"
},
"Results": [{
"Position": 1,
"No": "R1",
"DriverName": "PILOT NAME",
"TransponderId": "source-pilot-id",
"Class": "Open",
"TotalLaps": 8,
"TotalTime": "00:02:15.500",
"BestLapNo": 4,
"BestLapTime": "00:00:15.123",
"Gap": "0.000",
"Status": "finished",
"Laps": [{
"LapNo": 1,
"LapTime": "00:00:16.200",
"PassingTime": "05:00:16.200"
}]
}]
}
主要項目
| 項目 | 内容 |
|---|---|
| Event.Id | TRP-NETの大会UUID |
| Event.Track | 現在は開催場所専用列がないため null |
| Session.DateTime | UTCのISO 8601形式 |
| Position | DB順位を優先。順位がない場合は周回数と最終通過時間から算出 |
| TransponderId | 取込元の選手ID。ない場合は大会内選手UUID |
| TotalTime | HH:MM:SS.mmm形式 |
| PassingTime | セッション開始日時と累積レース時間から求めたUTC時刻 |
| Gap | 同一周回なら首位との差を秒で表示。周回差がある場合は -1 Lap 等 |
利用上の注意
- 大量に連続取得せず、取得結果を適切にキャッシュしてください。
- レスポンス項目は将来追加される場合があります。未知の項目を無視できる実装を推奨します。
- ブラウザ上の別ドメインから直接利用する場合、CORS設定が別途必要です。
- 大会名、パイロット名、所属等を再公開する場合は、利用目的と公開範囲に配慮してください。