Japanese addresses are written in many formats — full-width digits, kanji prefecture omitted, postal-code prefix, etc. Torify parses raw addresses into structured prefecture/city/town/block components.
https://torify.dev/v1/address/normalize
| Name | Type | Required | Description | Example |
|---|---|---|---|---|
address |
string | Yes | Raw Japanese address string | 東京都千代田区霞が関3丁目1番1号 |
{ "ok": true, "data": { "prefecture": "東京都", "city": "千代田区", "town": "霞が関", "block": "3丁目1番1号" } }
curl "https://torify.dev/v1/address/normalize?address=%E6%9D%B1%E4%BA%AC%E9%83%BD%E5%8D%83%E4%BB%A3%E7%94%B0%E5%8C%BA%E9%9C%9E%E3%81%8C%E9%96%A23%E4%B8%81%E7%9B%AE1%E7%95%AA1%E5%8F%B7"
import { wrapFetchWithPayment } from 'x402-fetch';
import { privateKeyToAccount } from 'viem/accounts';
const account = privateKeyToAccount(process.env.PRIVATE_KEY as `0x${string}`);
const fetchWithPayment = wrapFetchWithPayment(fetch, account);
const res = await fetchWithPayment(
'https://torify.dev/v1/address/normalize?address=%E6%9D%B1%E4%BA%AC%E9%83%BD%E5%8D%83%E4%BB%A3%E7%94%B0%E5%8C%BA%E9%9C%9E%E3%81%8C%E9%96%A23%E4%B8%81%E7%9B%AE1%E7%95%AA1%E5%8F%B7'
);
const data = await res.json();
console.log(data); // { ok: true, data: { ... } }
import requests
# Free MCP tier (no auth) or API key (X-API-Key header)
res = requests.get(
"https://torify.dev/v1/address/normalize?address=%E6%9D%B1%E4%BA%AC%E9%83%BD%E5%8D%83%E4%BB%A3%E7%94%B0%E5%8C%BA%E9%9C%9E%E3%81%8C%E9%96%A23%E4%B8%81%E7%9B%AE1%E7%95%AA1%E5%8F%B7",
headers={"X-API-Key": "your_torify_pro_key"}
)
print(res.json())
/v1/postal/lookup — Japan Postal Code Lookup: Zipcode → Address API
/v1/region/lookup — Japan Region Code Lookup: JIS X 0402 API
/v1/coordinate/convert — Japan Coordinate Conversion API: WGS84 ↔ JGD2011