e-Stat APIで何が取れるか早わかり
e-Stat(政府統計の総合窓口)は、各府省が公表する統計表を横断的に提供する日本最大の統計データベースです。人口や物価から自治体別の細かな指標まで、およそ日本の公式統計はここに集約されています。ただし表の数が膨大なため、いきなり数値を引こうとすると「どの表を見ればいいのか」で迷いがちです。このガイドでは、APIで何が取れて、検索からメタ情報、数値取得までをどう辿るのかを、実際のパラメータの渡し方まで含めて最短で把握できるように整理しました。
e-Stat APIで取れるデータ
国勢調査(人口・世帯)、人口推計、GDP・国民経済計算、消費者物価指数(CPI)、家計調査、労働力調査、事業所・企業統計、社会・人口統計体系(SSDS)の自治体別指標など、各府省が公表する統計表をまとめて検索・取得できます。省庁ごとにサイトを巡る必要がなく、一つの窓口から横断的に辿れるのが最大の利点です。
取得できるのは数値そのものだけではありません。統計表のメタ情報(調査名・提供機関・調査年・分類軸・単位・最終更新日)も取得できるため、「どの表の、どの地域・どの分類の、どの年の値か」を特定してから数値を引く、という順序で設計されています。この二段構えを理解しておくと、意図しない数字を掴む事故を防げます。
分類軸には地域(都道府県・市区町村)、時間(年次・四半期・月次)、表章事項(男女・年齢階級・産業分類など)があり、表によって持っている軸が異なります。まず表を選び、その表が持つ軸を確認してから絞り込む、というのが基本の作法です。
取得の流れ(検索 → メタ → 数値)
基本は3段階です。① 統計表を検索(キーワード・分野・調査年で候補を絞る)→ ② その表のメタ情報で分類軸(地域・年齢・産業など)と各軸のコードを確認 → ③ 分類コードを指定して時系列・数値を取得、という流れです。いきなり③から入ると、正しいコードが分からず空振りしやすいので、必ず①②を経由します。
この3段構えは一見まわりくどく見えますが、統計表は同じテーマでも複数存在し、分類の切り方も表ごとに違うため、メタ情報を挟むことで「この表のこの軸のこのコード」を確実に指定できます。結果として、後工程での数字の取り違えや再取得の手戻りが大きく減ります。
自治体比較や時系列の整列、市町村合併をまたいだ接続など、分析で特につまずきやすい処理は、図鑑側のユーティリティ系ツールでも補助しています。生の統計表を自前で加工する前に、これらの補助ツールで済むかを確認すると効率的です。
取得の具体例(パラメータの渡し方)
まず estat_search に searchWord(例:「消費者物価指数」)と surveyYears(例:2020)を渡すと、条件に合う統計表の一覧が statsDataId(統計表ID)つきで返ります。分野で絞りたいときは statsField(統計分野コード)、特定調査に限定したいときは statsCode(政府統計コード)を併用します。件数が多いときは limit で件数を、lang で言語を指定できます。
次に、得た statsDataId を estat_meta に渡すと、その表が持つ分類軸のコード表が返ります。地域は cdArea、分類事項は cdCat01 / cdCat02、時間軸は cdTime に対応し、ここで「全国=00000」「東京都=13000」のような地域コードや、品目・年齢階級などの分類コードを確認します。このコードを控えることが③の前提になります。
最後に estat_data へ statsDataId と、確認済みのコードを cdArea・cdCat01・cdTime として渡すと、絞り込んだ数値本体が返ります。1回あたり最大10万件まで取得でき、それを超える場合は startPosition と limit でページ送りします。年次推移だけが欲しい場合は、estat_time_series に指標コードと yearFrom / yearTo を渡すと、年×指標の整った表として返るため、自前で行を並べ替える手間が省けます。
よくあるつまずき
同じ「人口」でも、国勢調査・人口推計・住民基本台帳と出典が複数あり、定義(常住地か住民登録か、10月1日時点か年度末か)が異なります。表を取り違えると数値が接続せず、増減の理由を誤読しかねません。estat_search の段階で調査名と調査年を必ず確認し、時系列の途中で出典を切り替えないようにしてください。
地域コードは5桁(都道府県2桁+市区町村3桁)が基本ですが、市町村合併で欠番・付け替えが発生します。過去と現在をつなぐ時系列を作るときは、estat_merger_check で合併の有無を先に確認してから接続しないと、合併前後で自治体が突然消える・二重計上される、といった不整合が起きます。
最新値は公表スケジュール依存で遅延します。速報値と確報値で数字が変わることもあるため、分析の再現性を保つなら取得日と統計表IDを記録しておくのが安全です。大量取得時はレート制限とキャッシュにも配慮し、同じ表を何度も引かない設計にしてください。
分析ユースケースと関連ツールの使い分け
①自治体ランキング:estat_compare_municipalities に複数の市区町村コードと指標を渡すと、指標×自治体のマトリクスと、必要に応じて偏差値・人口あたり比率まで計算して返るので、「近隣自治体と比べて子育て支援は手厚いか」「高齢化率はどの位置か」といった比較記事や表がすぐ作れます。自前で人口割りを計算する必要がありません。
②相関分析:estat_correlation に自治体別データと指標キー(metricKeys)を渡すと、指標ペアの相関係数(r値・強さ・向き)を全ペアについて算出します。「高齢化率と一人当たり医療費」「平均所得と出生率」などの関係を数値で確かめ、可視化する材料になります。
③SSDS指標の探索:どの指標があるか分からないときは estat_browse_indicators に keyword や section を渡してSSDS(社会・人口統計体系)の指標コードを引き当てられます。検索・メタ確認・数値取得の各段は estat_search / estat_meta / estat_data が担い、年次推移は estat_time_series、複数指標のセッション初期化は estat_session_init、指標の提供有無チェックは estat_check_availability が受け持ちます。用途に応じて組み合わせてください。
APIキーの要否と注意点
e-Stat APIの利用には無料のアプリケーションID(appId)が必要です。取得は数分で完了し、商用・非商用を問わず利用できます。政府APIの中でも e-Stat・EDINET・gBizINFO・法人番号などはキー登録が前提で、気象庁や法令などのキー不要APIとは扱いが異なる点に注意してください。
大量取得時はレート制限とキャッシュに配慮し、各統計の利用規約(出典表示)に従ってください。最新値は公表スケジュールにより遅延する場合があり、速報から確報への改定で数値が動くこともあります。取得したデータには統計表IDと取得日を添えて保存しておくと、後から出典と時点をたどれて安心です。
リクエスト例(appId が必要)と取得の3ステップ
e-Stat API は無料の appId(アプリケーションID)が必要です。統計表を検索(getStatsList)→分類軸を確認(getMetaInfo)→数値取得(getStatsData)の順に辿ります。数値取得では statsDataId と絞り込みコード(cdArea 地域・cdTime 時間・cdCat 分類)を渡して、必要な地域・年・分類だけを取り出します。
# 統計表ID(statsDataId)を指定して数値を取得。JSON形式
curl -s "https://api.e-stat.go.jp/rest/3.0/app/json/getStatsData?appId=$ESTAT_APP_ID&statsDataId={統計表ID}&cdArea=13000&limit=5"
# 表を探すには getStatsList、分類軸(使えるコード)を知るには getMetaInfo を先に叩く| # | API | 役割 |
|---|---|---|
| 1 | getStatsList | キーワードで統計表を検索し statsDataId を得る |
| 2 | getMetaInfo | その表の分類軸(地域・時間・分類)と使えるコードを確認 |
| 3 | getStatsData | statsDataId+絞り込みコードで数値を取得 |
出典
元システムエンジニア。Web系アプリ開発6年+ソリューション9年、IT実務およそ15年。個人開発者として、政府オープンデータや各府省のAPIを実際に叩いて検証し、「何が取れるか」「実装時にどこで詰まるか」「どう活用するか」を一次検証にもとづいて記録しています。
運営者・検証方針について →