kr-trainlisted
Install: claude install-skill tahodev/tabi-skill
# kr-train
韓国の国土交通部 国家大衆交通情報センター(TAGO)の列車情報オープンAPIで、KTXなどの列車時刻・運賃を照会するスキル。2026-09-09 に3オペレーションの**エンドポイント実在**を確認済み(キーなしで叩き、404ではなく認証エラーが返ることを確認。実キーでのデータ応答はまだ未検証)。
## キーの取得
公共データポータル(data.go.kr)で「TAGO 열차정보」に活用申請し、共通認証キー(serviceKey)を取得する(無料・通常は自動承認)。ポータル: https://www.data.go.kr/
## 基本の流れ
1. 出発・到着の駅IDを調べる(都市コード → 駅リスト)
2. 区間の列車時刻を照会する
### 1. 駅IDを調べる
```bash
# 都市コード一覧
curl -s "http://openapi.tago.go.kr/openapi/service/TrainInfoService/getCtyCodeList?serviceKey={KEY}"
# 都市コードから駅一覧(例: ソウル=11)
curl -s "http://openapi.tago.go.kr/openapi/service/TrainInfoService/getCtyAcctoTrainSttnList?serviceKey={KEY}&cityCode=11"
```
駅名の一部でも絞り込める。返ってくる `nodeid` が駅ID。
### 2. 列車時刻を照会する
```bash
curl -s "http://openapi.tago.go.kr/openapi/service/TrainInfoService/getStrtpntAlocFndTrainInfo?serviceKey={KEY}&depPlaceId=NAT010000&arrPlaceId=NAT050445&depPlandTime=${TRAVEL_DATE}&trainGradeCode=00"
```
- `depPlandTime`: 出発日(yyyyMMdd)。時刻まで付けるとその時刻以降。
- `trainGradeCode`: 車種。`00`=KTX。`01`=セマウル、`02`=ムグンファ、`08`=ITX-セマウル、`09`=ITX-チュンチュン(TAGOの公開資料のコード体系)。
- レスポンス(XMLデフォルト)の各item: `depplandtime`/`arrplandtime`(発着時刻)、`traingradename`(車種名)、`trainno`(列車番号)、`adultcharge`(大人運賃・ウォン)。
- ソウル駅 `NAT010000`、釜山駅 `NAT050445` は主要例。他は駅一覧で確認する。
**レスポンス例**: `examples/getStrtpntAlocFndTrainInfo.sample.xml`(構造を再現した記述例。実キーでの実測取得ではない)。
## 注意
- 照会のみ。予約・発券はKORAIL公式(コレイルトークアプリ等)で行う。エージェントが代行しない。
- 時刻・運賃は提供データそのまま。臨時ダイヤは反映されないことがある。
- 短時間に連続リクエストしない。
## エラー・失敗時の対応
- `curl` には必ず `-m 30` を付ける。
- **`resultMsg` が `지원하지 않는 인증방식입니