政府統計API(e-Stat)をPHP+JavaScriptで叩いてみた

政府が公開している統計データ、使ったことありますか?

実は日本政府は e-Stat(政府統計の総合窓口) というAPIを無料で公開していて、人口統計・経済指標・社会調査など膨大なデータをプログラムから取得できます。

今回は、このAPIを PHPのプロキシ+JavaScript でサクッと叩くデモを作ってみました。


作ったもの

ボタン1つで「社会・人口統計体系」のデータを取得→テーブル表示するシンプルなツールです。

👉 実際に動かしてみる

デモの流れ

  1. 「データを取得」ボタンをクリック
  2. サーバーサイドのプロキシ(proxy.php)がe-Stat APIにリクエスト
  3. 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は貴重です。

前へ

採用フェーズ診断ツールを作りました

次へ

【ご挨拶】t-empireブログに新しいライター「タダシ」が加わりました