はじめに
「ユーザーの入力した住所がバラバラで困る」「地図や配送サービスと連携したいのに、住所データが揃わない」——そんな悩み、ありませんか?
ZENRIN Maps APIのac_standardなら、住所の表記揺れや略称も一発で正規化。APIを呼ぶだけで、都道府県から番地まで分割された“きれいな住所データ”が手に入ります。
この記事では、ac_standard APIの魅力や使い方、導入のポイントをわかりやすく紹介します。
ZENRIN Maps API 2ヶ月無料お試しID
ZENRIN Maps APIを実際に試してみたい方は、2ヶ月無料のお試しIDをご利用いただけます!
📝 お申し込みはこちら
👉 ZENRIN Maps APIの始め方
お試し期間中は、本記事で紹介する機能をはじめ、ZENRIN Maps APIの豊富な機能をご利用いただけます。
「ac_standard」APIの特徴
- 住所の表記揺れや略称、全角・半角の違いも吸収し、都道府県・市区町村・町域・番地まで正規化して分割取得可能
- 住所コードや緯度経度も取得でき、地図や他APIとの連携が容易
- サジェストやバリデーションと組み合わせてUX向上が可能
API仕様
エンドポイント
GET/POST https://[domain]/data-coding/ac_standard
Content-Type: application/x-www-form-urlencoded
リクエストパラメータ
パラメータ名 | 型 | 必須 | 内容・例・補足 |
---|---|---|---|
word | string/array | ○ | 正規化したい住所(例: "東京都港区芝浦3-1-1")。カンマ区切りで最大100件まで指定可能。1件あたり最大255文字。 |
enc | integer | エンコーディング指定(0:UTF-8, 1:EUC-JP, 2:Shift-JIS)。省略時は0(UTF-8)。 | |
use_kana | boolean | カナ住所マッチング機能の使用(true/false)。省略時はfalse。 | |
use_multi_addr | boolean | 重複住所出力機能(true/false)。省略時はfalse。 | |
match_level | string | マッチングの下限階層を指定(例:TOD:都道府県, SHK:市区町村, OAZ:大字, AZC:字丁目, GIK:街区, TBN:地番・戸番)。省略時はTBN。 | |
datum | string | 座標系(JGD, TOKYO, TOKYO_NAVI)。省略時はJGD。 |
- ヘッダー例:
Content-Type: application/x-www-form-urlencoded
x-api-key: <あなたのAPIキー>
Authorization: ip
レスポンスデータの構成
{
"status": "OK",
"result": {
"info": {
"hit": 1
},
"item": [
{
"input_word": "東京都千代田区淡路町2-101",
"address_code": "131010100020000000007",
"address": "東京都千代田区神田淡路町2丁目101",
"address_read_through": "トウキョウトチヨダクカンダアワジチョウニチョウメヒャクイチ",
"address2": "東京都",
"address_read_through2": "トウキョウト",
"address3": "千代田区",
"address_read_through3": "チヨダク",
"address4": "神田淡路町",
"address_read_through4": "カンダアワジチョウ",
"address5": "2丁目",
"address_read_through5": "ニチョウメ",
"address_detail1": null,
"address_detail_read_through1": null,
"address_detail2": "101",
"address_detail_read_through2": "ヒャクイチ",
"post_code": "101-0063",
"address_name_type": 1,
"child_level_flag": 0,
"match_level": "TBN1",
"match_flag": 0,
"match_position": [
139.767126193576,
35.6975523546007
],
"match_kana": null,
"multi_addr_count": null,
"building_info": null
}
]
}
}
各項目の説明
フィールド名 | 型 | 説明 |
---|---|---|
status | string | レスポンスステータス(例: "OK") |
result.info.hit | integer | ヒット件数(該当する住所情報の総数) |
result.item | array | 住所情報の配列 |
input_word | string | 入力文字列 |
address_code | string | 住所コード |
address | string | 正規化された住所 |
address_read_through | string | 住所読み下し(全体) |
address2 | string/null | 都道府県名 |
address_read_through2 | string/null | 都道府県名の読み下し |
address3 | string/null | 市区町村名 |
address_read_through3 | string/null | 市区町村名の読み下し |
address4 | string/null | 大字名 |
address_read_through4 | string/null | 大字名の読み下し |
address5 | string/null | 字丁目名 |
address_read_through5 | string/null | 字丁目名の読み下し |
address_detail1 | string/null | 街区名 |
address_detail_read_through1 | string/null | 街区名の読み下し |
address_detail2 | string/null | 地番・戸番名 |
address_detail_read_through2 | string/null | 地番・戸番名の読み下し |
post_code | string | 郵便番号 |
address_name_type | integer | 1=正式名称(公称)、2=略式名称 |
child_level_flag | integer | 0=子階層なし、1=子階層あり |
match_level | string | マッチした階層レベル(NOM, TOD, SHK, OAZ, AZC, GIK, TBN2, TBN1) |
match_flag | integer | 0=部分一致、1=完全一致 |
match_position | array[number] | マッチした座標 [経度, 緯度] |
match_kana | string/null | マッチしたカナ住所(カナマッチ時のみ) |
multi_addr_count | integer/null | 重複住所件数 |
building_info | object/null | 建物情報(building_type, zid, zid_attr, position など。該当時のみ返却) |
仕様・注意点
- 住所の表記揺れや一部欠損も補完・正規化される。
- 住所の階層ごとに分割された情報が返るため、都道府県・市区町村・大字・字丁目・街区・地番など細かく取得可能。
-
use_multi_addr
をtrueにすると、同一住所で複数候補がある場合も全て返却。 -
match_level
で指定した階層より粗い一致のみ返却される(例:OAZ指定なら都道府県・市区町村・大字まで)。 - 住所の一部しか入力されていない場合は、最も近い階層でマッチした情報が返る。
実装例
JavaScript(fetch)によるリクエスト例
const apiPath = 'https://test-web.zmaps-api.com/data-coding/ac_standard';
const apiParams = {
word: '東京都千代田区淡路町2-101',
match_level: 'TBN',
use_kana: true,
use_multi_addr: true,
datum: 'JGD'
};
const queryString = new URLSearchParams(apiParams).toString();
const header = {
'Content-Type': 'application/x-www-form-urlencoded',
'x-api-key': 'あなたのAPIキー',
'Authorization': 'ip',
};
fetch(`${apiPath}?${queryString}`, {
method: 'GET',
headers: header,
})
.then(res => res.json())
.then(data => {
// 正規化された住所情報を取得
console.log(data.result.item);
});
Vue.jsを使った住所正規化例
const getStandardizedAddress = async () => {
if (!state.form.address) return;
const apiPath = state.api.domain + state.api.address_cleansing.which.ac_standard.path;
const apiParams = { ...state.api.address_cleansing.which.ac_standard.params };
apiParams.word = state.form.address;
const queryString = new URLSearchParams(apiParams).toString();
const header = { ...state.api.header, 'x-api-key': state.api.key };
try {
const response = await fetch(apiPath + '?' + queryString, {
method: 'GET',
headers: header,
});
const result = await response.json();
if (result.result && result.result.item && result.result.item.length >= 1) {
// 正規化住所をフォームに反映
state.form.address = result.result.item[0].address;
}
} catch (error) {
console.log('[error]getStandardizedAddress:', error);
}
};
運用・UXのポイント
- ユーザーが入力した住所の表記揺れや略称、全角・半角の違いを自動で補正
- 住所候補が複数ある場合はサジェスト表示で選択肢を提示
- 住所コードや緯度経度を活用し、地図表示や他API(建物名補完など)と連携可能
- 入力補助やバリデーションと組み合わせて、入力ミスや不完全な住所を防止
導入のメリット
ユーザーにとってのメリット
- 住所入力の手間やミスが大幅に削減
- 正規化された正確な住所情報を簡単に入力
サービス提供者にとってのメリット
- 住所データの精度向上
- 不正確な住所による業務トラブルの減少
- 顧客体験の向上
まとめ
ZENRIN Maps APIの住所正規化API(ac_standard)を使えば、ユーザーが入力した住所を自動で正規化し、精度の高い住所データを取得できます。
フロントエンドフレームワークと組み合わせることで、ユーザー体験の良い住所入力フォームを実現できます。
- 住所入力→API呼び出し→正規化住所自動入力
- サジェストやバリデーションでUX向上
- 住所コードや緯度経度を活用し、他のAPIと連携することで、建物名・部屋番号まで自動補完も可能
ECサイトや会員登録フォームなど、正確な住所入力が必要な場面で活用できます。
ZENRIN Maps API 2ヶ月無料お試しIDのご案内
本記事でご紹介したZENRIN Maps APIの機能を実際にお試しいただけます!
📝 お申し込みはこちら
👉 ZENRIN Maps APIの始め方
お試し期間中は、ZENRIN Maps APIの豊富な機能をご利用いただけるので、本格導入前の検証にぜひご活用ください。
【補足】ac_standardとac_premiumの違い・比較
ZENRIN Maps APIの住所正規化には「ac_standard(標準)」と「ac_premium(高機能)」の2つのエンドポイントがあります。
それぞれの主な違いは以下の通りです。
項目 | ac_standard | ac_premium |
---|---|---|
主な用途 | 標準的な住所正規化 | 高精度な住所正規化・建物/テナント名・部屋番号まで対応 |
入力パラメータ | word, use_kana, use_multi_addr, match_level, datum など | word, building_name, tenant_name, tenant_room_name, building_top_floor_num, tenant_floor, use_kana, use_multi_addr, use_pastmap, use_bluemap, match_level, datum など(建物・テナント・部屋番号等も指定可) |
住所表記揺れ補正 | ○ | ◎(より柔軟・高精度) |
建物名・部屋番号対応 | × | ○(建物名・テナント名・部屋番号・階数まで指定・検索可) |
過去住所・地番変換 | × | ○(use_pastmap, use_bluemapで過去住所・地番変換も可能) |
レスポンス詳細 | 標準的な住所分割・座標 | 住所分割+建物/テナント/部屋/階数/用途/過去住所/地番等も返却 |
利用シーン | ECサイト、会員登録、一般的な住所入力補正 | 不動産、物流、建物管理、B2B業務など高精度な住所・建物情報が必要な場合 |
契約 | 標準プラン | 別途契約が必要 |
選択のポイント
- ac_standardは、一般的な住所入力補正や標準的な住所正規化用途に最適です。
- ac_premiumは、建物名・テナント名・部屋番号・階数など、より詳細な住所情報や過去住所・地番変換が必要な業務用途に適しています。
- 住所の粒度や必要な情報に応じて、適切なエンドポイントを選択してください。
関連記事
- ZENRIN Maps APIのジオコーディングでマンション名やテナント名まで取得できる!住所入力の精度向上とUX改善
- ZENRIN Maps API 郵便番号検索API(postcode) - 仕様・実装・活用・UX向上ガイド
- ZENRIN Maps API 建物・テナント名検索API(building_name) - 仕様・実装・活用・UX向上ガイド
- ZENRIN Maps API 建物座標検索API(building_pos)- 仕様・実装・活用・UX向上ガイド
- ZENRIN Maps APIとGoogle Maps APIのジオコーディング機能比較 - 初心者向け実装・活用ガイド
※本記事で使用しているAPIキーやURLはサンプルです。実際の導入時には、公式サイトから取得した正式なAPIキーを使用してください。