重要なお知らせ吸収分割公告 — ケンオール事業の権利義務承継についてお知らせ一覧 →

郵便番号データダウンロードAPI リファレンス

要約: 郵便番号→住所API と同一スキーマの全データを、xz圧縮 JSON 形式で一括ダウンロードするための REST API。2エンドポイント (ファイル一覧 / ダウンロードURL発行)。社内DB同期・バッチ ETL・オフライン検索インデックス構築に最適。プラン詳細は 料金ページ を参照。

警告

シークレットAPIキー専用のAPIです。公開キー=フロントエンドJSで埋め込む用途のキーからは呼び出せません。また、データダウンロードオプション購読のお客様のみご利用可能です。

このAPIを使うべきケースこの見出しへのリンク

ユースケースこのAPI / 都度API
社内DB / Elasticsearch / Redis に郵便番号マスタを取り込みたいこのAPI
オフライン検索インデックスを構築したい (オンプレ・閉域網)このAPI
毎月の差分のみ取り込みたい郵便番号→住所API の /updates/
ユーザ入力に応じて1件だけ引く郵便番号→住所API
住所からピンポイント引く住所→郵便番号API

エンドポイント一覧この見出しへのリンク

メソッドパス用途
GET/v1/download/postalcode/ダウンロードファイル一覧取得
GET/v1/download/postalcode/{ファイルパス}ダウンロードURL発行

共通仕様この見出しへのリンク

項目内容
認証Authorization: Token YOUR_SECRET_API_KEYシークレットキーのみ。公開キーは 401 になります
プランデータダウンロードオプション購読者
Content-Typeレスポンス: application/json(一覧) / 303 See Other + Location ヘッダ (DL)
ファイル形式.json.xz(xz圧縮された JSON)
JSONスキーマ郵便番号→住所API完全同一

GET /v1/download/postalcode/ (ファイル一覧)この見出しへのリンク

ダウンロード可能なファイルパスの一覧を取得します。

リソースURLこの見出しへのリンク

https://api.kenall.jp/v1/download/postalcode/

パラメータこの見出しへのリンク

なし

curl サンプルこの見出しへのリンク

curl -H "Authorization: Token YOUR_SECRET_API_KEY" \
  https://api.kenall.jp/v1/download/postalcode/

レスポンス例この見出しへのリンク

{
  "json": [
    "latest/kenall.json.xz",
    "2026-04-01/kenall.json.xz",
    "2026-03-01/kenall.json.xz",
    "2026-02-01/kenall.json.xz",
    "2021-06-30/kenall.json.xz"
  ]
}

レスポンスフィールドこの見出しへのリンク

名前説明
jsonarray<string>ダウンロード可能なファイルパスの一覧。 形式: {バージョン}/{ファイル名}latest は最新版を指す特殊バージョン文字列

ダウンロードファイルパスの形式この見出しへのリンク

ダウンロードファイルパスは {バージョン}/{ファイル名} というフォーマットで構成されています。バージョン latest は特殊なバージョン表記で、一覧内の最新のバージョンを参照します。

GET /v1/download/postalcode/{ファイルパス}(DL URL発行)この見出しへのリンク

指定ファイルの一時ダウンロードURLを発行します。HTTP 303 リダイレクトで、Location ヘッダにダウンロードURLが返ります。

リソースURLこの見出しへのリンク

https://api.kenall.jp/v1/download/postalcode/{ファイルパス}

パスパラメータこの見出しへのリンク

名前必須説明
{ファイルパス}string必須形式: {バージョン}/{ファイル名}ファイル一覧API で取得した値を使用。latest/kenall.json.xz を指定すると常に最新版"2026-04-01/kenall.json.xz" / "latest/kenall.json.xz"

curl サンプル (リダイレクトを自動追跡)この見出しへのリンク

curl -L -H "Authorization: Token YOUR_SECRET_API_KEY" \
  https://api.kenall.jp/v1/download/postalcode/latest/kenall.json.xz \
  -o kenall.json.xz

-L オプションで 303 リダイレクトを自動追跡。-o でファイル保存先指定。

リダイレクト動作この見出しへのリンク

項目内容
HTTP ステータス303 See Other
Location ヘッダ一時ダウンロードURL (CDN署名URL等)
URL有効期間一時的に有効なURL。再利用不可。毎回 GET /v1/download/postalcode/{path} を叩いて取得し直してください

ダウンロードファイルの中身この見出しへのリンク

項目内容
圧縮形式xz 形式 (LZMA2)。標準ツールで展開可能
展開後形式JSON (UTF-8)
スキーマ郵便番号→住所API のレスポンスと同一構造
展開コマンド例xz -d kenall.json.xz(Linux/macOS) / tar -xf kenall.json.xz(Windows 10+ 標準)

HTTPステータス・エラーこの見出しへのリンク

HTTPステータス意味典型的な原因
200OK一覧取得成功
303See OtherDL URL 発行成功 (Location ヘッダを参照)
401Unauthorizedシークレットキー未設定/公開キーで叩いた/無効キー
403Forbiddenデータダウンロードオプション未購読
404Not Found指定ファイルパスが存在しない/バージョン削除済み
429Too Many Requestsリクエスト量の制限超過

SDK で呼び出すこの見出しへのリンク

Python (毎月バッチ用サンプル)この見出しへのリンク

import os, lzma, json, requests
 
SECRET = os.environ["KENALL_SECRET_KEY"]
HEADERS = {"Authorization": f"Token {SECRET}"}
 
# 1. 最新ファイルのリダイレクトURLを取得し、ダウンロード保存
res = requests.get(
    "https://api.kenall.jp/v1/download/postalcode/latest/kenall.json.xz",
    headers=HEADERS, allow_redirects=True, timeout=60,
)
res.raise_for_status()
with open("kenall.json.xz", "wb") as f:
    f.write(res.content)
 
# 2. 展開してメモリに読み込み
with lzma.open("kenall.json.xz", "rt", encoding="utf-8") as f:
    data = json.load(f)
 
print(f"version: {data['version']}, records: {len(data['data'])}")

シェルスクリプト (cron 用)この見出しへのリンク

#!/usr/bin/env bash
set -euo pipefail
TOKEN="${KENALL_SECRET_KEY:?}"
DEST="${1:-./kenall.json.xz}"
curl -fSsL -H "Authorization: Token $TOKEN" \
  "https://api.kenall.jp/v1/download/postalcode/latest/kenall.json.xz" \
  -o "$DEST"
echo "Downloaded: $(du -h "$DEST" | cut -f1)"

注意事項・制限事項この見出しへのリンク

シークレットキー専用この見出しへのリンク

公開キーでは 401 が返ります。 シークレットキーはサーバサイドに保管し、フロントエンドJSには絶対に埋め込まないでください。漏洩した場合はダッシュボードから即時ローテーションしてください。

ダウンロードURLの一時性この見出しへのリンク

Location ヘッダで返るダウンロードURLは一時的に有効なURLで、再利用できません。保存はせず、毎回 /v1/download/postalcode/{path} を叩いてURLを取得し直してください。

ファイルサイズについてこの見出しへのリンク

全件スナップショットのため展開後のサイズは大きくなります。ストリーミング展開 (xz のパイプ) を活用するとメモリ消費を抑えられます。

更新頻度とバージョンこの見出しへのリンク

月次更新が基本。日本郵便の更新タイミングに合わせて新バージョンが公開されます。古いバージョンは一定期間保持後、削除される可能性があります。長期保存が必要な場合は自前で保管してください。

このAPIに関する技術FAQこの見出しへのリンク

都度API (/v1/postalcode/) との使い分けは?

都度APIは「ユーザ入力に応じて1件引く」向け、本APIは「全件を社内DBに取り込む / オフライン処理する」向けです。全件を定期的に取り込む用途では一括ダウンロードの方が効率的です。

差分のみダウンロードできますか?

本APIは「全件スナップショット」です。差分のみが必要な場合は 郵便番号→住所API の GET /v1/postalcode/updates/ を利用してください (update_status: 2 で廃止レコードも含む)。

xz が解凍できない環境です

Windows 10 以降は標準 tar -xf で展開可能。古い環境では XZ Utils をインストール。Python なら標準ライブラリの lzma モジュールでストリーム展開できます。

レスポンス JSON のスキーマは郵便番号→住所APIと同じ?

はい、完全同一です。トップレベルに versiondatadata 配列内のフィールド構成は 郵便番号→住所API と同じ (30+ フィールド、ローマ字・郡・行政区・corporation オブジェクト 含む)。

シークレットキーを誤って公開してしまいました

ダッシュボードの「APIキー管理」から即時ローテーションしてください。古いキーは即座に無効化されます。Git にコミットしてしまった場合は履歴の rewrite + 全リポジトリの該当値検索も必須。

関連リファレンスこの見出しへのリンク

最終更新: 2026-07-14