3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ZENRIN Maps API 住所正規化API(ac_standard)- 仕様・実装・活用・UX向上ガイド

Last updated at Posted at 2025-07-10

はじめに

「ユーザーの入力した住所がバラバラで困る」「地図や配送サービスと連携したいのに、住所データが揃わない」——そんな悩み、ありませんか?

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は、建物名・テナント名・部屋番号・階数など、より詳細な住所情報や過去住所・地番変換が必要な業務用途に適しています。
  • 住所の粒度や必要な情報に応じて、適切なエンドポイントを選択してください。

関連記事


※本記事で使用しているAPIキーやURLはサンプルです。実際の導入時には、公式サイトから取得した正式なAPIキーを使用してください。

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?