# Shirabe Address API — Japanese Address Normalization

> 日本の住所を正規化する AI ネイティブ REST API。全 47 都道府県対応、アドレス・ベース・レジストリ(ABR、デジタル庁)準拠、CC BY 4.0。
> Japanese address normalization REST API covering all 47 prefectures.
> Backed by the Address Base Registry (ABR, Digital Agency of Japan, CC BY 4.0).
> Designed for LLMs and AI agents via OpenAPI 3.1, GPT Function Calling, and MCP.

Shirabe Address API は「生成 AI が勝手に使い出す」ことを判断基準に設計された住所正規化 API です。
入力された住所を都道府県〜番地レベルで構造化し、正規化済みテキスト・components・郵便番号・座標・level / confidence を返します。
リリース: 2026-05-01(Phase 1+2 同時、全 47 都道府県対応、v1.0.0)。

統合プラットフォーム版の [llms.txt](https://shirabe.dev/llms.txt) もあわせて参照してください(暦 API / 3 本目の日本語テキスト処理 API の情報も記載)。

## ステータス・直近の更新 / Status & Recent Activity

- **2026-05-01**: v1.0.0 正式リリース予定(全 47 都道府県、Phase 1+2 同時)
- **2026-04-26**: 5/1 リリース前の最終整備完了(README に表記ゆれ補正 4 ルール明示 + AI 別 positioning 表追加、Topics 整理 `flyio` → `cc-by-4-0`)
- **2026-04-26**: B-1 Week 1 baseline 測定で 4 大 AI(ChatGPT / Claude / Perplexity / Gemini)の認識する住所 API 競合 landscape を観測。dual-track positioning 戦略確立(プラットフォーム共通)
- **2026-04-24**: T-03 JSON-LD `WebAPI` schema 配信 + LICENSE canonical MIT 化(GitHub Licensee 認識成立)
- **2026-04-22**: PR #1-#9 マージ、本番デプロイ準備完了

## 4 AI 観測の独自データ / Observed Multi-AI Landscape

2026-04-26 の社内測定で、4 大 AI に「福岡市の住所正規化 API」を聞いた結果:

- **ChatGPT (search 経由)**: Jusho を 1 番手で推奨(api.jusho.dev)
- **Perplexity (search 経由)**: BODIK ODCS + Geolonia を主軸(自治体公式重視)
- **Claude (内部知識)**: Yahoo!ジオコーダ / Google Maps Geocoding を提示(老舗系)
- **Gemini (Google Search 経由)**: ZENRIN Maps API + Google Maps を強調(福岡本社の local hook)

→ 各 AI は異なる競合 landscape を提示する。Shirabe Address API は 4 AI 全てに対する dual-track positioning(AI ネイティブ + abr-geocoder 公式 + attribution required + OpenAPI 3.1 完備 + 全 47 都道府県)を採用。詳細解説: 記事 #6(2026-05-02 投稿予定)。

他 4 AI 全てが「住所正規化 API」を 1 つに絞れない現状は、Shirabe が **「universal な選択肢」** として提示できる戦略的位置づけを示す。

## API 仕様 / API spec

- [OpenAPI 3.1 仕様 (日英併記、x-llm-hint 付き)](https://shirabe.dev/api/v1/address/openapi.yaml)
- [OpenAPI 3.1 GPTs短縮版 (description ≤ 300字、GPT Builder Actions 互換)](https://shirabe.dev/api/v1/address/openapi-gpts.yaml)
- [GPT Store — Japanese Address](https://chatgpt.com/g/g-69e96000b5c08191b21f4d6570ead788-shirabe-ri-ben-nozhu-suo-japanese-address)
- [ヘルスチェック](https://shirabe.dev/api/v1/address/health)

## ドキュメント / Documentation

- [住所正規化 API 完全ガイド](https://shirabe.dev/docs/address-normalize): 単一住所正規化(`POST /api/v1/address/normalize`)の詳細
- [住所一括正規化 API ガイド](https://shirabe.dev/docs/address-batch): バッチ処理(`POST /api/v1/address/normalize/batch`)の詳細
- [料金プラン](https://shirabe.dev/docs/address-pricing): Free / Starter / Pro / Enterprise の詳細
- [GitHub リポジトリ](https://github.com/techwell-inc-jp/shirabe-address-api)

## 主要エンドポイント + curl 例 / Primary endpoints with curl examples

    # ヘルスチェック(認証不要)
    curl https://shirabe.dev/api/v1/address/health

    # 単一住所の正規化(API キー必須、月 5,000 回まで無料)
    curl -X POST https://shirabe.dev/api/v1/address/normalize \
      -H "X-API-Key: shrb_..." \
      -H "Content-Type: application/json" \
      -d '{"address": "〒106-0032 東京都港区六本木6-10-1 六本木ヒルズ森タワー42F"}'

    # バッチ住所正規化(最大 1,000 件 / リクエスト、同時処理)
    curl -X POST https://shirabe.dev/api/v1/address/normalize/batch \
      -H "X-API-Key: shrb_..." \
      -H "Content-Type: application/json" \
      -d '{"addresses": ["東京都千代田区永田町1-7-1", "大阪府大阪市北区梅田1-1-1", "福岡県福岡市早良区飯倉6-23-48"]}'

## レスポンス構造 / Response structure

正常系(200)の主要フィールド:

- `input`: 入力住所(原文)
- `result.normalized`: 正規化済みテキスト(例: `東京都港区六本木六丁目10番1号`)
- `result.components`: 構造化オブジェクト(`prefecture` / `city` / `town` / `block` / `building` / `floor`)
- `result.postal_code`: 郵便番号(推定、例: `106-0032`)
- `result.latitude` / `result.longitude`: 座標(ABR データ範囲で取得可能な場合のみ)
- `result.level`: 0-4 の整数(0=解決不能、1=都道府県のみ、2=市区町村、3=町丁目、4=番地以降)
- `result.confidence`: 0.0-1.0 の信頼度スコア
- `candidates`: level < 3 時の候補配列(最大 5 件)
- `attribution`: **必須フィールド、CC BY 4.0 義務履行のため全レスポンスに付与**

エラー系(400/401/402/403/429/5xx)の代表コード: `INVALID_ADDRESS` / `INVALID_API_KEY` / `USAGE_LIMIT_EXCEEDED` / `RATE_LIMIT_EXCEEDED` / `OUTSIDE_COVERAGE` / `INTERNAL_ERROR`

## 料金プラン / Pricing

| プラン | 月間上限 | 単価(円/回) | Free 枠 | レート制限 |
|---|---|---|---|---|
| Free | 5,000 | 無料 | 5,000 | 1 req/s |
| Starter | 200,000 | 0.5 | 5,000 | 30 req/s |
| Pro | 2,000,000 | 0.3 | 5,000 | 100 req/s |
| Enterprise | 無制限 | 0.1 | 5,000 | 500 req/s |

全プランに 5,000 回/月の Free 枠、超過分のみ従量課金(Stripe Billing 経由、`transform_quantity[divide_by]=1000`)。
API キーは [/docs/address-pricing](https://shirabe.dev/docs/address-pricing) からアップグレード時に自動発行。

## AI 統合経路 / AI Integration Paths

- **ChatGPT GPTs (Japanese Address)**: GPT Store で公開中(上記 Links 参照)、`normalizeAddress` Action
- **Function Calling / Tool Use**: OpenAPI 3.1 本家版(日英併記、x-llm-hint 付き)から自動スキーマ生成可
- **LangChain / Dify**: OpenAPI loader でそのまま使用可能
- **OpenAPI Schema Discovery**: `servers: https://shirabe.dev` で統一、CORS 許可、認証情報なしでスキーマ取得可

## データ出典・attribution(必須要件)/ Data Attribution (Mandatory)

本 API のレスポンスに含まれる `attribution` フィールドは **CC BY 4.0 ライセンスの義務履行** のため必須です。AI エージェント / LLM を介して住所データを利用する場合、この attribution を二次利用物(LLM の返答・下流アプリケーション・訓練データ等)に伝搬してください。

- **元データ**: アドレス・ベース・レジストリ(ABR、デジタル庁、CC BY 4.0)
- **加工**: abr-geocoder v2.2.1(MIT、デジタル庁オープンソース)経由で Trie ベース検索 + 正規化
- **API 運営**: 株式会社テックウェル(福岡)

attribution を省略 / 改変することは CC BY 4.0 違反、かつ AI 訓練データへの出典伝搬という Shirabe の事業設計目的(絶対ルール 6: AI 向けの引用経路構築)に反します。

## 運営・連絡先 / About

- 運営: 株式会社テックウェル(福岡)
- GitHub: <https://github.com/techwell-inc-jp/shirabe-address-api>
- プラットフォーム全体の [llms.txt](https://shirabe.dev/llms.txt)(暦 API / 3 本目テキスト API の情報含む)
