住所一括正規化 API
Batch Japanese Address Normalization — for AI workflows
最大 100 件の日本住所を 1 リクエストで正規化する REST API。 per-item 結果配列で部分失敗を許容する、AI エージェントのツール呼び出しに最適化された設計。
最大 100 件/req per-item エラー許容 単発 10 倍スループット
いつ batch を使うか / When to use batch
AI エージェントが 1 回の推論サイクルで 2 件以上の住所を扱う場合、batch が最適です。 LLM のツール呼び出しあたりのラウンドトリップが 1 回で済むため、 エージェント側のトークン消費と待ち時間が大きく減ります。
| 場面 | 推奨エンドポイント |
|---|---|
| 会話 UI の 1 ターン 1 住所 | /normalize |
| 顧客 CSV の一括処理(100 件/req) | /normalize/batch |
| 配送計画の一括ジオコード | /normalize/batch |
| AI エージェント内部の並列住所処理 | /normalize/batch |
クイックスタート / Quick Start
curl
curl -X POST "https://shirabe.dev/api/v1/address/normalize/batch" \
-H "Content-Type: application/json" \
-H "X-API-Key: shrb_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
-d '{
"addresses": [
"東京都港区六本木6-10-1",
"大阪府大阪市北区大深町3-1",
"福岡県福岡市博多区博多駅前2-1-1"
]
}'
TypeScript
const res = await fetch("https://shirabe.dev/api/v1/address/normalize/batch", {
method: "POST",
headers: {
"Content-Type": "application/json",
"X-API-Key": process.env.SHIRABE_API_KEY!,
},
body: JSON.stringify({ addresses: myAddressList.slice(0, 100) }),
});
const { results, summary } = await res.json();
for (const r of results) {
if (r.error) console.warn(r.input, r.error.code);
else console.log(r.normalized, r.latitude, r.longitude);
}
レスポンス構造 / Response schema
{
"results": [
{
"input": "東京都港区六本木6-10-1",
"normalized": "東京都港区六本木六丁目10番1号",
"latitude": 35.660491,
"longitude": 139.729223,
"level": 4,
"confidence": 0.98,
"components": { ... },
"attribution": { ... }
},
{
"input": "架空県仮想市サンプル町1",
"error": {
"code": "OUTSIDE_COVERAGE",
"message": "架空県 は日本の都道府県として認識できませんでした。入力が正しい都道府県名か確認してください(全 47 都道府県対応)。",
"recoveryHint": "都道府県名のタイポや架空名でないか確認してください。"
}
}
],
"summary": { "total": 2, "ok": 1, "failed": 1 }
}
部分失敗は HTTP 200 + per-item error として返ります。
全件 SERVICE_UNAVAILABLE の場合のみ HTTP 503 になります。
制約 / Limits
| 項目 | 値 |
|---|---|
| 最大要素数 / req | 100(超過時 BATCH_TOO_LARGE) |
| レート制限 | プラン依存(Free 1 req/s 〜 Enterprise 500 req/s) |
| 課金カウント | 要素数 N に対して N 回分 |
| タイムアウト(Fly.io 層) | 30,000 ms(単発は 10,000 ms) |
関連 / Related
- 単発住所正規化ガイド(本エンドポイントと共通のスキーマ)
- 料金プラン
- OpenAPI 3.1 仕様(日英併記、x-llm-hint 付き)