サービス概要
駅・路線情報APIは、日本全国の鉄道駅・路線データを無料で提供するAPIサービスです。2015年の提供開始以来、不動産サイト、交通費精算システム、地域情報アプリなど、多様な分野でご利用いただいています。
国内の174鉄道事業者、622路線、10,937駅という膨大なデータを、完全無料・無制限でご利用いただけます。各駅の緯度経度情報も含まれているため、距離計算やマップ表示との連携も容易です。
駅名や路線名で検索できるのはもちろん、緯度経度から最寄り駅を検索する逆引き機能も実装可能。あらゆる鉄道データ活用シーンに対応します。
なぜ無料で提供しているのか
鉄道は日本の重要な社会インフラであり、駅・路線情報は多くのサービスで必要とされます。しかし、包括的な鉄道データAPIは高額であったり、利用制限が厳しかったりするのが現状でした。
テラレンは「テクノロジーで人々の体験を最適化する」というミッションのもと、誰もが自由に使える鉄道データを提供すべきだと考えました。開発者が鉄道データを活用した革新的なサービスを生み出せるよう、完全無料で提供しています。
データの規模と網羅性
対応鉄道事業者(174社)
- JR各社: JR東日本、JR西日本、JR東海、JR北海道、JR九州、JR四国
- 大手私鉄: 東武、西武、京成、京王、小田急、東急、京急、相鉄、名鉄、近鉄、南海、京阪、阪急、阪神など
- 地下鉄: 東京メトロ、都営地下鉄、大阪メトロ、名古屋市営地下鉄、福岡市営地下鉄など
- 地方鉄道: 第三セクター鉄道、路面電車、モノレールなど
路線データ(622路線)
各路線の以下の情報を提供:
- 路線名(正式名称・略称)
- 路線カラー(HTML/HEXコード)
- 運営事業者
- 路線タイプ(在来線・新幹線・地下鉄・モノレールなど)
駅データ(10,937駅)
各駅の以下の情報を提供:
- 駅名(漢字・かな・ローマ字)
- 所在地(都道府県・市区町村)
- 緯度経度(WGS84)
- 所属路線
- 駅番号(路線記号)
使い方
駅名で検索
// JavaScript (Fetch API)
const stationName = '東京';
fetch(`https://train.teraren.com/stations.json?name=${encodeURIComponent(stationName)}`)
.then(response => response.json())
.then(data => {
console.log(data);
// [
// {
// "id": "1130101",
// "name": "東京",
// "kana": "とうきょう",
// "lat": 35.681236,
// "lon": 139.767125,
// "prefecture": "東京都",
// "lines": ["山手線", "中央線", "東海道線", ...]
// }
// ]
});
路線から駅一覧を取得
const lineId = '11302'; // 山手線のID
fetch(`https://train.teraren.com/lines/${lineId}/stations.json`)
.then(response => response.json())
.then(data => {
console.log(data);
// [
// { "name": "東京", "lat": 35.681236, "lon": 139.767125 },
// { "name": "有楽町", "lat": 35.675441, "lon": 139.763806 },
// { "name": "新橋", "lat": 35.665498, "lon": 139.758749 },
// ...
// ]
});
緯度経度から最寄り駅を検索
const lat = 35.681236;
const lon = 139.767125;
const radius = 1000; // 半径1km
fetch(`https://train.teraren.com/stations.json?lat=${lat}&lon=${lon}&radius=${radius}`)
.then(response => response.json())
.then(data => {
console.log(data);
// [
// {
// "name": "東京",
// "distance": 0,
// "lat": 35.681236,
// "lon": 139.767125
// },
// {
// "name": "京橋",
// "distance": 650,
// "lat": 35.679190,
// "lon": 139.770883
// },
// ...
// ]
});
不動産サイトでの実装例(React)
import { useState, useEffect } from 'react';
function NearestStation({ propertyLat, propertyLon }) {
const [stations, setStations] = useState([]);
const [loading, setLoading] = useState(true);
useEffect(() => {
const fetchStations = async () => {
const response = await fetch(
`https://train.teraren.com/stations.json?lat=${propertyLat}&lon=${propertyLon}&radius=1000`
);
const data = await response.json();
setStations(data.slice(0, 3)); // 最寄り3駅
setLoading(false);
};
fetchStations();
}, [propertyLat, propertyLon]);
if (loading) return <div>読み込み中...</div>;
return (
<div>
<h3>最寄り駅</h3>
<ul>
{stations.map((station, index) => (
<li key={index}>
{station.name}駅 徒歩約{Math.ceil(station.distance / 80)}分
({station.distance}m)
</li>
))}
</ul>
</div>
);
}
レスポンス形式
駅検索の成功時(200 OK)
[
{
"id": "1130101",
"name": "東京",
"kana": "とうきょう",
"romaji": "tokyo",
"lat": 35.681236,
"lon": 139.767125,
"prefecture": "東京都",
"city": "千代田区",
"postal_code": "1000005",
"lines": [
{
"name": "山手線",
"operator": "JR東日本",
"color": "#9ACD32"
},
{
"name": "中央線",
"operator": "JR東日本",
"color": "#FF6600"
}
]
}
]
最寄り駅検索の成功時(200 OK)
[
{
"name": "東京",
"distance": 120,
"lat": 35.681236,
"lon": 139.767125,
"lines": ["山手線", "中央線", "東海道線"]
}
]
データの信頼性と更新
駅・路線情報APIは、以下の公的データソースを使用しています:
- 国土交通省 国土数値情報: 鉄道データの基礎情報
- 各鉄道事業者の公式サイト: 路線図、駅一覧、駅番号
- 地理院地図: 緯度経度の正確性検証
新駅開業や駅名変更があった場合、通常1〜2ヶ月以内にデータを更新します。大規模な路線開業(新幹線延伸など)は早期対応します。
パフォーマンスとインフラ
- Cloudflare Workers: エッジコンピューティングで高速レスポンス
- PostGIS: 地理空間データベースで高精度な距離計算
- インデックス最適化: 10,937駅を高速検索
緯度経度による最寄り駅検索は、PostGISの空間インデックスを活用し、1km圏内の駅を数十ミリ秒で検索できます。
活用事例
不動産業界
- 物件詳細ページでの最寄り駅表示
- 駅からの徒歩時間自動計算
- 沿線検索機能
交通費精算
- 駅名入力の自動補完
- 経路検索APIとの連携
- 定期券区間の管理
地域情報サービス
- 駅周辺のグルメ・観光スポット検索
- 商圏分析
- 駅前再開発情報
観光アプリ
- 観光地の最寄り駅案内
- 駅を起点とした周遊ルート
- 路線図の可視化
トラブルシューティング
検索しても結果が出ない
- 駅名は正式名称で検索してください(例: 東京駅 → 東京)
- 旧駅名では検索できない場合があります
- あいまい検索を利用すると候補が表示されます
緯度経度が正確でない
- 駅の代表点(改札口付近)を基準としています
- 大規模駅では実際の改札口と数十メートル異なる場合があります
- より高精度な位置情報が必要な場合はお問い合わせください
最寄り駅検索で期待した駅が出ない
- 検索半径(radius)を大きくしてみてください
- 駅が非常に近い場合、同じ距離で複数の駅が返ることがあります
競合サービスとの比較
| 項目 | 駅・路線情報API | 某APIサービスA | 某APIサービスB |
|---|---|---|---|
| 料金 | 完全無料 | 月額15,000円〜 | 無料枠あり(月1万回) |
| 駅数 | 10,937駅 | 約9,000駅 | 約11,000駅 |
| 路線数 | 622路線 | 約500路線 | 約650路線 |
| 緯度経度 | ○ | ○ | × |
| 最寄り駅検索 | ○ | ○ | × |
| 認証 | 不要 | APIキー必須 | APIキー必須 |
今後の予定
- 駅の乗降客数データ追加
- バリアフリー情報(エレベーター・エスカレーター)
- 駅周辺の施設情報(コンビニ・ATMなど)
- 廃線・廃駅の歴史データ
- GraphQL対応
皆様のサービス開発にお役立ていただけるよう、今後も機能拡充を続けていきます。ご要望やフィードバックをお待ちしています。