政府統計API(e-Stat)をPHP+JavaScriptで叩いてみた
政府が公開している統計データ、使ったことありますか?
実は日本政府は e-Stat(政府統計の総合窓口) というAPIを無料で公開していて、人口統計・経済指標・社会調査など膨大なデータをプログラムから取得できます。
今回は、このAPIを PHPのプロキシ+JavaScript でサクッと叩くデモを作ってみました。
作ったもの
ボタン1つで「社会・人口統計体系」のデータを取得→テーブル表示するシンプルなツールです。
デモの流れ
- 「データを取得」ボタンをクリック
- サーバーサイドのプロキシ(proxy.php)がe-Stat APIにリクエスト
- JSONで返ってきたデータをテーブル表示
APIキーはブラウザから見えないよう、サーバーサイドで隠蔽しています。
e-Stat API の使い方
1. APIキーを取得する
e-Statのマイページ から、無料でAPIキー(appId)を発行できます。
2. エンドポイント
GET https://api.e-stat.go.jp/rest/3.0/app/json/getStatsData
?appId={APIキー}
&statsDataId={統計表ID}
レスポンス形式はXML・JSONから選べます。
3. statsDataId(統計表ID)の調べ方
e-Statの統計表一覧 から欲しいデータを検索し、URLに含まれるIDを指定します。
コード解説
クライアント側(ブラウザ)はサーバーのプロキシ経由でAPIを呼びます。APIキーはプロキシ側だけに保持します。
プロキシ(proxy.php)
<?php
define('ESTAT_API_KEY', 'ここにAPIキー');
$url = 'https://api.e-stat.go.jp/rest/3.0/app/json/getStatsData'
. '?appId=' . ESTAT_API_KEY
. '&statsDataId=' . $statsDataId;
$response = file_get_contents($url);
echo $response;
?>
フロント側(抜粋)
fetch('proxy.php?statsDataId=0000010101')
.then(response => response.json())
.then(data => {
const values = data.GET_STATS_DATA
.STATISTICAL_DATA
.DATA_INF.VALUE;
// 値をテーブル表示...
});
ポイント:
- フロントは proxy.php にリクエストするだけ → APIキーは見えない
- レスポンスのJSON構造は
GET_STATS_DATA > STATISTICAL_DATA > DATA_INF > VALUEにデータが格納 - VALUE配列の各要素に
@area(地域コード)と$(値)が入っています
活用アイデア
| 活用例 | 内容 |
|---|---|
| 市区町村の人口推移グラフ | 各年の人口データを取得してChart.jsで可視化 |
| 都道府県別の経済指標比較 | 県民所得や事業所数をマップ表示 |
| 教育・医療統計の分析 | 学校数や病院数のデータを地域ごとに比較 |
| ダッシュボード作成 | 複数の統計をまとめた経営・行政用ダッシュボード |
注意点
- APIキーはソースコードに直書きしないことを推奨(悪用防止)
- 本番運用するならサーバーサイドでAPIキーを隠蔽しましょう
- 利用規約を確認して、適切な範囲で使いましょう
興味があれば、ぜひe-StatのAPIを触ってみてください。無料でここまで使える公共データAPIは貴重です。
フォローしませんか?


