住所正規化 API ドキュメント

エンドポイント仕様・レスポンス・エラー・レート制限

ベース URL: https://shirabe.dev。キーなしで月 5,000 回まで利用できます。 製品概要と料金はこちら

クイックスタート

curl -X POST https://shirabe.dev/api/v1/address/normalize \
  -H "Content-Type: application/json" \
  -d '{"address": "東京都港区六本木6-10-1"}'

有料プランのキーは X-API-Key ヘッダーで渡します(キーなし = 匿名 Free 扱い):

curl -X POST https://shirabe.dev/api/v1/address/normalize \
  -H "Content-Type: application/json" \
  -H "X-API-Key: shrb_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
  -d '{"address": "東京都港区六本木6-10-1"}'

エンドポイント

メソッドパス説明
POST/api/v1/address/normalize住所 1 件の正規化
POST/api/v1/address/normalize/batch一括正規化(1 回で最大 100 件)
GET/api/v1/address/healthヘルスチェック(認証不要・カウント対象外)

POST /api/v1/address/normalize

リクエスト:

{ "address": "東京都港区六本木6-10-1" }

レスポンス(実例):

{
  "input": "東京都港区六本木6-10-1",
  "result": {
    "normalized": "東京都港区六本木6丁目10",
    "components": {
      "prefecture": "東京都",
      "city": "港区",
      "town": "六本木6丁目",
      "block": "10番",
      "building": null,
      "floor": null,
      "jis_code": "13103",
      "lg_code": "131032",
      "machiaza_id": "0028006"
    },
    "postal_code": null,
    "latitude": null,
    "longitude": null,
    "level": 4,
    "confidence": 0.93
  },
  "candidates": [],
  "attribution": {
    "source": "アドレス・ベース・レジストリ(住所データ)",
    "provider": "デジタル庁",
    "license": "CC BY 4.0",
    "license_url": "https://creativecommons.org/licenses/by/4.0/"
  }
}

主要フィールド

フィールド意味
result.normalized正規化済み住所文字列
result.components都道府県〜建物の構造化分解。lg_code は市区町村レベル(level 2)以上、machiaza_id は町字レベル(level 3)以上で付与
result.level正規化の到達レベル(1=都道府県 〜 8=建物)。値が大きいほど詳細まで確定
result.confidenceマッチ信頼度(0〜1)。しきい値でのフィルタに使えます
result.latitude / longitude代表点座標。レジストリに座標がない住所では null
attribution出典(CC BY 4.0)。必須フィールドとして常に同梱。表示・再配布時はこの出典を伝搬してください

POST /api/v1/address/normalize/batch

リクエスト(最大 100 件。超過は 400):

{ "addresses": ["東京都港区六本木6-10-1", "大阪府大阪市北区梅田1-1-3"] }

レスポンスは results 配列(入力順)で、各要素は単発 normalize と同じ形です。 カウントは要素数 N = N 回分です(1 リクエスト扱いにはなりません)。

エラー

エラーは全て次の形で返ります:

{ "error": { "code": "...", "message": "..." } }
HTTPcode意味と対処
400INVALID_REQUESTbody 不正・batch 上限超過など。カウントされません
200OUTSIDE_COVERAGE(result 内)日本の住所として解釈できない入力。エラーではなく結果として返ります(カウント対象)
401INVALID_API_KEY形式不正・未登録のキー。キーを外すと匿名 Free で通ります
429RATE_LIMIT_EXCEEDED / USAGE_LIMIT_EXCEEDED秒間または月間上限。Retry-After ヘッダーと、次プランへの next_plan.checkout_path(→ /address/buy)を同梱
503SERVICE_UNAVAILABLEバックエンド一時障害。カウントされません。リトライしてください

レート制限とカウント規則

プラン月間上限秒間レート
Free5,000 回1 req/s
Starter200,000 回30 req/s
Pro2,000,000 回100 req/s
Enterprise無制限500 req/s
  • 単発 normalize = 1 カウント、batch = 要素数 N カウント
  • 400 系・401・503 はカウントされません(無料枠を消費しない)
  • 残量はレスポンスヘッダー X-RateLimit-Limit / X-RateLimit-Remaining で確認できます
  • 月間カウントは毎月 1 日 0:00 UTC にリセット

AI 統合・機械可読仕様

  • OpenAPI 3.1(完全版): https://shirabe.dev/api/v1/address/openapi.yaml
  • OpenAPI(GPTs Actions 用短縮版): https://shirabe.dev/api/v1/address/openapi-gpts.yaml

→ 製品概要・料金 / → 申し込み / → API キー再発行