駅すぱあと API BLOG

駅すぱあと APIの開発チームが作るブログです。

新幹線等で列車ごとの座席種別が取得できるようになりました

こんにちは、駅すぱあと API 開発チームです。

この度「駅すぱあと API」では、新幹線などの座席種別が存在する路線を含む経路探索結果において、列車ごとの座席種別を取得することができるようになりました。

これまで、列車を乗り換える場合でも料金が一つにまとまる場合は、代表となる座席種別を返しており、それぞれの列車の座席種別がわかりませんでした。

今回のアップデートにより、列車ごとの座席種別がわかるようになり、サービスやアプリケーションでより詳細に案内することができるようになります。

アップデート内容について

今回のアップデートでは、料金の情報に列車ごとの座席種別の情報を追加する パラメータが追加されます。

  • 対象機能

    • 経路探索(/search/course/extreme)
    • 前後のダイヤ探索(/search/course/pattern)
    • 探索結果の運賃切り替え(/course/recalculate)
    • 経路の再現/定期券・指定列車利用(/course/edit)
  • リクエストパラメータ

    • addSeatType
      列車ごとの座席種別の内訳を取得するかどうかを指定するフラグ。省略可。
      • 指定できる値:
        • true: 列車ごとの座席種別を付加する
        • false: 列車ごとの座席種別を付加しない
        • 初期値: false
  • レスポンスパラメータ

    • ResultSet / Course / Price / SeatType:列車ごとの座席種別を示す要素
    • ResultSet / Course / Price / SeatType / fromLineIndex:列車の開始区間インデックス
    • ResultSet / Course / Price / SeatType / toLineIndex:列車の終了区間インデックス
    • ResultSet / Course / Price / SeatType / Name:名前を表す要素
    • ResultSet / Course / Price / SeatType / Type:種別を表す要素

具体例

今回は、以下のケースを例として説明します。

  • 経路: 白石蔵王 --[やまびこ291号]-- 仙台 --[はやぶさ1号]-- 盛岡
  • 列車ごとの座席種別:
    • やまびこ291号(1区間目): 自由席、グリーン
    • はやぶさ1号(2区間目): 指定席、グリーン、グランクラス、立席

従来では、はやぶさの座席種別が返ります。

<ResultSet apiVersion="1.27.0.0" engineVersion="202504_01b">
    <Course searchType="departure" dataType="onTimetable">
        <Route …>
            :
            <Line index="1" …>
                <Name>JR新幹線やまびこ</Name>
                :
            </Line>
            :
            <Line index="2" …>
                <Name>JR新幹線はやぶさ</Name>
                :
            </Line>
            :
        </Route>
        :
        <Price fareRevisionStatus="none" toLineIndex="2" fromLineIndex="1" kind="Charge" index="1" selected="true">
            <Name>指定席</Name>
            <Type>Reserved</Type>
            :
        </Price>
        <Price fareRevisionStatus="none" toLineIndex="2" fromLineIndex="1" kind="Charge" index="2" selected="false">
            <Name>グリーン</Name>
            <Type>Green</Type>
            :
        </Price>
        <Price fareRevisionStatus="none" toLineIndex="2" fromLineIndex="1" kind="Charge" index="3" selected="false">
            <Name>グランクラス</Name>
            <Type>GranClass</Type>
            :
        </Price>
        <Price fareRevisionStatus="none" toLineIndex="2" fromLineIndex="1" kind="Charge" index="4" selected="false">
            <Name>立席(※満席時に発売)</Name>
            <Type>Stand</Type>
            :
        </Price>
        :
    </Course>
</ResultSet>

次に、 addSeatType パラメータに true を指定して、列車ごとの座席種別の取得を有効にしてみます。

サンプルリクエストは以下のようになります。

https://api.ekispert.jp/v1/xml/search/course/extreme?key=アクセスキー&viaList=白石蔵王:盛岡&date=20250325&time=0722&addSeatType=true

レスポンスは以下のようになり、列車ごとの座席種別が取得できていることがわかります。

<ResultSet apiVersion="1.27.0.0" engineVersion="202504_01b">
    <Course searchType="departure" dataType="onTimetable">
        <Route …>
            :
            <Line index="1" …>
                <Name>JR新幹線やまびこ</Name>
                :
            </Line>
            :
            <Line index="2" …>
                <Name>JR新幹線はやぶさ</Name>
                :
            </Line>
            :
        </Route>
        :
        <Price fareRevisionStatus="none" toLineIndex="2" fromLineIndex="1" kind="Charge" index="1" selected="true">
            <Name>指定席</Name>
            <Type>Reserved</Type>
            <!-- やまびこは自由席、はやぶさは指定席 -->
            <SeatType fromLineIndex="1" toLineIndex="1">
                <Name>自由席</Name>
                <Type>Free</Type>
            </SeatType>
            <SeatType fromLineIndex="2" toLineIndex="2">
                <Name>指定席</Name>
                <Type>Reserved</Type>
            </SeatType>
            :
        </Price>
        <Price fareRevisionStatus="none" toLineIndex="2" fromLineIndex="1" kind="Charge" index="2" selected="false">
            <Name>グリーン</Name>
            <Type>Green</Type>
            <!-- やまびこはグリーン、はやぶさはグリーン -->
            <SeatType fromLfromLineIndex="1" toLineIndex="1">
                <Name>グリーン</Name>
                <Type>Green</Type>
            </SeatType>
            <SeatType fromLineIndex="2" toLineIndex="2">
                <Name>グリーン</Name>
                <Type>Green</Type>
            </SeatType>
            :
        </Price>
        <Price fareRevisionStatus="none" toLineIndex="2" fromLineIndex="1" kind="Charge" index="3" selected="false">
            <Name>グランクラス</Name>
            <Type>GranClass</Type>
            <!-- やまびこはグリーン、はやぶさはグランクラス -->
            <SeatType fromLineIndex="1" toLineIndex="1">
                <Name>グリーン</Name>
                <Type>Green</Type>
            </SeatType>
            <SeatType fromLineIndex="2" toLineIndex="2">
                <Name>グランクラス</Name>
                <Type>GranClass</Type>
            </SeatType>
            :
        </Price>
        <Price fareRevisionStatus="none" toLineIndex="2" fromLineIndex="1" kind="Charge" index="4" selected="false">
            <Name>立席(※満席時に発売)</Name>
            <Type>Stand</Type>
            <!-- やまびこは自由席、はやぶさ1号は立席 -->
            <SeatType fromLineIndex="1" toLineIndex="1">
                <Name>自由席</Name>
                <Type>Free</Type>
            </SeatType>
            <SeatType fromLineIndex="2" toLineIndex="2">
                <Name>立席</Name>
                <Type>Stand</Type>
            </SeatType>
            :
        </Price>
        :
    </Course>
</ResultSet>

おわりに

今回は、経路探索結果の座席種別に関するアップデート内容を紹介しました。 経路のナビゲーションサービスなどでは、列車ごとの座席種別を詳細に表示したいケースもあると思います。 是非利用をご検討ください。

引き続き、「駅すぱあと API」をよろしくお願いします。


「駅すぱあと API」を使ってみるには?

「駅すぱあと API スタンダードプラン」は90日間無料でお試しできます。 こちらから申し込みして気軽に触ってみてください!

ekiworld.net