The problem this solves

If you are building anything that needs to know where Japanese shops, clinics, hotels, or stations actually are, you have three options and all of them hurt:

  • Google Places — accurate, but its terms forbid storing or caching results, and pricing starts at $200/month for real usage. Anything with a database is out.
  • OpenStreetMap — storable and free, but coverage in Japan is patchy outside major cities, and you do the POI hygiene yourself.
  • OpenPOI — genuinely good raw data (Overture Maps plus 81 municipal food-facility datasets), but it ships records as-is: 11.3% have no category at all, and many coordinates drift.

This API sits on top of that raw corpus and does the hygiene work for you, then sells the aggregate signals rather than the raw lookups.

What you actually get

SignalWhat it containsPrice
Municipality censusPOI counts by prefecture 16 categories. 105 prefectures, 124,821 records reverse-geocoded into a prefecture where the source had none.Free
Geocode quality0–100 score per record from coordinate plausibility, address completeness, and category resolution. Corpus mean 84.9.Free
Station catchmentFacility count, category mix, and density within 500m of 1,917 rail stations. Odawara is the densest at 594 facilities.$0.05/call
Chain detection16,064 chain stores with facility counts, prefecture coverage, and category breakdown. Top: Lawson at 18,048 sites across 109 prefectures.$0.03/call
Aliveness index0–100 open/closed probability for all 2.63M records, from source recency, category stability, and temporal signals.$0.02/call

Free, right now, no key

curl "https://japan-places.local-connect-design.trade/api/v1/poi/municipality?prefecture=tokyo"

{
  "census": {
    "\u6771\u4eac": {
      "restaurant": 41288,
      "cafe": 4391,
      "retail": 18204,
      "service_medical": 6122
    }
  },
  "extra": { "prefectures": 105, "backfilled": 124821, "total": 2629417 },
  "attribution": "Source: koteihi-lab Japan Data Foundry, derived from OpenPOI"
}

Paid endpoints answer the same way, with a 402 first:

curl -i "https://japan-places.local-connect-design.trade/api/v1/poi/catchment?limit=3"

HTTP/2 402
PAYMENT-REQUIRED: eyJ4NDAyVmVyc2lvbiI6MiwiYWNjZXB0cyI6W3sic2NoZW1lIjoiZXhhY3Qi...

{"x402Version":2,"error":"payment_required","accepts":[
  {"scheme":"exact","network":"eip155:8453","amount":"50000",
   "asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
   "payTo":"0x...","resource":{"serviceName":"Japan Places",...},
   "extra":{"priceUsd":0.05,"creditPacks":[{"usd":5,"calls":100}]}}
]}

Paying without an account

There is no signup anywhere in this flow. The 402 body states the exact amount, the asset, the network, and the address it goes to. You sign a USDC transfer authorization on Base, retry with the PAYMENT-SIGNATURE header, and the facilitator settles it. If you would rather not sign per call, per-call x402 payments are $0.02-$0.05 and monthly plans start at $25 on RapidAPI.

Nothing is charged before you sign, and the amount cannot change between the 402 and the settlement because it is fixed in the requirements.

If you are building an agent

The MCP endpoint at /mcp exposes the same five signals. Paid tools return a payment_required result that includes the PAYMENT-REQUIRED header, so the agent can build and sign the payment without a second request:

claude mcp add --transport http japan-places https://japan-places.local-connect-design.trade/mcp

For a fully offline install (data bundled inside the package):

npx -y @modelcontextprotocol/server-japan-places

The licence, stated plainly

  • Free tier is CC BY 4.0. Commercial use, storage, caching, modification, and redistribution are all permitted.
  • You may put the results in your own database. This is the part most place APIs forbid.
  • Keep the per-record licenses and attributions arrays when you store records, and show the attribution link wherever the data is displayed.
  • Paid tier is the same data and the same permissions with higher limits.

Upstream licence chain (Overture Maps under CDLA-Permissive-2.0 and Apache-2.0, 81 municipal datasets under CC BY and PDL-1.0, MLIT under CC BY 4.0) and the list of modifications we made are on the attribution page.

What it cannot do

Published on the limitations page, but the short version: 11.3% of source records have no category, some coordinates drift, closed shops persist until the weekly rebuild, and this is not a complete census of Japanese businesses. Use the quality signal to filter and the aliveness index to prioritise.

Start