郵便番号検索APIの重要性
Webサービスのフォームで住所入力を求める場面では、郵便番号からの住所自動補完は必須のUX改善施策です。ユーザーの入力手間を大幅に削減し、住所の入力ミスによる配送エラーも防止できます。日本では複数の無料・有料APIが利用可能です。
主要な郵便番号API
zipcloud(無料・商用利用可)
- URL:https://zipcloud.ibsnet.co.jp/api/search
- 特徴:完全無料・登録不要・JSONレスポンス
- データ元:日本郵便の郵便番号データ
HeartRails Geo API(無料)
- URL:https://zip.cgis.biz/
- 特徴:JSONPとXMLに対応
消費税率APIとの組み合わせ
郵便番号APIで取得した住所情報を利用して、軽減税率の適用判定など地域に依存する処理を自動化できます。
zipcloud APIの使い方
// 郵便番号から住所を取得
GET https://zipcloud.ibsnet.co.jp/api/search?zipcode=1000001
// レスポンス
{
"message": null,
"results": [
{
"address1": "東京都",
"address2": "千代田区",
"address3": "千代田",
"kana1": "トウキョウト",
"kana2": "チヨダク",
"kana3": "チヨダ",
"prefcode": "13",
"zipcode": "1000001"
}
],
"status": 200
}
住所自動入力フォームの実装(React)
import { useState } from 'react';
const AddressForm = () => {
const [zipcode, setZipcode] = useState('');
const [address, setAddress] = useState({ pref: '', city: '', town: '' });
const [loading, setLoading] = useState(false);
const handleZipcodeChange = async (e) => {
const value = e.target.value.replace(/-/g, '');
setZipcode(value);
if (value.length === 7) {
setLoading(true);
try {
const res = await fetch(
`https://zipcloud.ibsnet.co.jp/api/search?zipcode=${value}`
);
const data = await res.json();
if (data.results) {
const result = data.results[0];
setAddress({
pref: result.address1,
city: result.address2,
town: result.address3
});
} else {
alert('郵便番号が見つかりませんでした');
}
} catch (e) {
console.error('住所取得エラー:', e);
} finally {
setLoading(false);
}
}
};
return (
<form>
<input
type="text"
placeholder="郵便番号(ハイフンなし)"
value={zipcode}
onChange={handleZipcodeChange}
maxLength={7}
/>
{loading && <span>検索中...</span>}
<input type="text" value={address.pref} placeholder="都道府県" />
<input type="text" value={address.city} placeholder="市区町村" />
<input type="text" value={address.town} placeholder="町名" />
<input type="text" placeholder="番地・建物名" />
</form>
);
};
日本郵便の公式郵便番号データを使う方法
日本郵便のWebサイトから無料でダウンロードできる郵便番号CSV(ken_all.csv)を独自サーバーに取り込んで自前の郵便番号検索APIを構築することもできます。大量アクセスが見込まれるサービスでは自前DBの方が安定性・コスト面で有利です。
まとめ
郵便番号検索APIはフォームのUX改善に最も効果的な施策の一つです。zipcloudは無料・登録不要で導入が簡単なため、まずはこのAPIから試してみてください。大規模サービスでは自前DBの構築を検討し、信頼性と応答速度を確保してください。