
はじめに
OpenPOI API は、日本全国 3,372,487 件の施設(POI)をキーワードと位置で検索できる無料のAPIです。APIキーも登録も要らず、curl を1行叩けば結果が返ってきます。
地図アプリや店舗検索を作ろうとすると、施設データの調達がいちばんの壁になります。商用の Places API は従量課金で、しかも取得結果を自分のDBに保存することが規約で禁じられていることが多い。OpenPOI API はオープンデータだけで組まれているので、取得した結果を自分のデータベースに保存してよいというのが最大の違いです。
この記事では、実際に叩いてみた結果を交えながら、何ができて何に気をつければいいかをまとめます。
特徴まとめ
要点は「無料・キー不要・保存OK・商用OK・AIから直接呼べる」の5つです。
| 項目 | 内容 |
|---|---|
| 収録件数 | 3,372,487 件(Overture Maps 約249万件 + 食品営業許可・届出オープンデータ約88万件) |
| 対象 | 日本全国。飲食店のほか、美容室・薬局・公園・郵便局・ATM など |
| 認証 | 不要(APIキーの発行自体がない) |
| CORS | 全オリジン許可。ブラウザから直接呼べる |
| レート制限 | 利用者単位の制限なし。API全体で定常 200 req/s・バースト 600 req/s |
| エンドポイント | /v1/search(検索)、/v1/suggest(入力補完)、/mcp(MCPサーバー) |
| 仕様 | OpenAPI 3.1 を公開 |
| 商用利用 | 可(データソースごとの出典表示は必要) |
| データ更新 | 食品営業許可データは毎週月曜 4:00 JST に再構築。Overture はリリース単位(現行 2026-08-19.0) |
2つのデータソースは名寄せされていて、同じ店が両方に載っている場合は1件に統合されます。その場合 licenses と attributions には両方の出典が入ります。
1分で試す
ターミナルで次を叩くだけです。日本語は URL エンコードしてください。
# 「ラーメン」で全国検索(3件)
curl 'https://api.openpoiapi.com/v1/search?q=%E3%83%A9%E3%83%BC%E3%83%A1%E3%83%B3&limit=3'
返ってくるのはこんな JSON です(実際のレスポンスから1件抜粋)。
{
"count": 3,
"results": [
{
"name": "090ラーメン けんのすけ 本店",
"city": "福岡市東区",
"category": "restaurant",
"lat": 33.64083108,
"lng": 130.44781776,
"source": "overture",
"licenses": ["CDLA-Permissive-2.0"],
"attributions": ["Overture Maps Foundation, overturemaps.org"]
}
]
}
「今いる場所の近く」で探すなら center と radius を付けます。center は 経度,緯度 の順なので注意してください(逆にすると400が返ります)。
# 東京駅の半径300m以内を、近い順に
curl 'https://api.openpoiapi.com/v1/search?center=139.767052,35.681236&radius=300&limit=3'
矩形で絞りたいときは bbox=minLng,minLat,maxLng,maxLat が使えます。地図の表示範囲をそのまま渡せるので、地図アプリとは相性がいいです。
ブラウザで触りたいだけなら、公式のプレイグラウンドで地図上の検索をそのまま試せます。
search と suggest の使い分け
一覧を取るなら /v1/search、検索ボックスの入力補完なら /v1/suggest です。地味に効くのが suggest の作り込みで、ここがこのAPIのいちばん「すごい」ところだと感じました。
/v1/search | /v1/suggest | |
|---|---|---|
| 用途 | キーワード・範囲で施設を一覧取得 | 入力途中の候補表示 |
| 複数語 | OR で広く拾う | AND で絞る |
| 表記ゆれ | ひらがな/カタカナは同一視 | 全角半角・大小文字・ひら/カタを吸収 |
| 並び順 | center 指定時のみ近い順 | サーバー側で並べ済み(そのまま描画可) |
| 件数上限 | 既定50・最大200 | 既定8・最大20 |
たとえば「すたーば」と打つだけで「スターバックスコーヒー用賀店」などが返ってきます。候補のほかに、ブランド・カテゴリ・地名の語彙(vocabulary)や、入力欄に薄く重ねて出すゴーストテキスト用の completion まで返してくれます。
# 「すたーば」で、地図の表示範囲(東京都心)を優先して候補を出す
curl 'https://api.openpoiapi.com/v1/suggest?q=%E3%81%99%E3%81%9F%E3%83%BC%E3%81%B0&bbox=139.6,35.5,139.9,35.8&limit=2'
表示範囲で0件だったら自動で全国に広げ、どちらで見つけたかを scope(view / nationwide)で教えてくれます。フロント側で並び替えや重複除去を書かなくていいのはかなり楽です。
AIから直接呼べる(MCP対応)
https://api.openpoiapi.com/mcpが MCP サーバーになっていて、Claude などの AI クライアントにツールとして登録できます。Claude Code なら1行です。
claude mcp add --transport http japan-facilities https://api.openpoiapi.com/mcp
公開されているツールは2つだけです。
search_facilities:/v1/searchと同じ検索dataset_info:データセットの概要と出典
登録しておけば「渋谷駅の近くのカフェを探して」のような依頼で、AI が座標とキーワードを組み立てて検索してくれます。ステートレスな Streamable HTTP で、セッション管理も要りません。
MCP に対応していない環境でも、https://api.openpoiapi.com/openapi.json を ChatGPT の Custom GPT(Actions)やコード生成エージェントにそのまま渡せます。
ライセンスと出典表示
商用・非商用を問わず使えますが、出典表示は必要です。やることは基本的に1つで、「OpenPOI API」と書いて出典・ライセンスページにリンクするだけです。
<a href="https://openpoiapi.com/attribution.html">OpenPOI API</a>
中身のデータはソースごとにライセンスが違います。
| データソース | ライセンス |
|---|---|
| Overture Maps Places(Meta・Microsoft など提供分) | CDLA-Permissive-2.0 |
| Overture Maps Places(Foursquare 提供分) | Apache-2.0 |
| Overture Maps Places(AllThePlaces 提供分) | CC0-1.0 |
| Japan Food Facilities(自治体・厚労省の81ソース) | CC BY 系 / 公共データ利用規約 PDL1.0 / CC0 |
レスポンスの各レコードに licenses と attributions が付いてくるので、どのライセンスが適用されるかはプログラムで判定できます。画面に表示する必要はありません。
DBに保存するときの注意
保存は自由ですが、licenses と attributions を配列のまま一緒に保存しておくのがルールです。保存しただけでは追加の義務はほぼ生じませんが、第三者への再配布や加工しての公開をする段階で、ライセンスごとの条件(ライセンス本文の同梱、加工した旨の記載など)がかかってきます。そのとき出典を示せるようにしておくためです。
このあたりの整理がドキュメントでかなり丁寧に書かれていて、Foursquare の NOTICE 全文の転記や、自分たちが加えた加工の明記まで対応しています。オープンデータを扱うサービスとして誠実な作りだと感じました。
気になった点・制約
商用の Places API の完全な代替ではありません。使う前に知っておきたい点を挙げます。
- カテゴリの半分以上が
unknown:公式に 1,840,570 件(約54.6%)と明記されています。カテゴリで絞り込む用途にはまだ弱いです。 - 住所が空のレコードがある:Overture 由来のデータは
prefectureやaddressが空のことが多く、市区町村と座標だけというケースもあります。 - キーワードだけの全国検索は関連度順ではない:「ラーメン」で叩くと「#ラーメン」「090ラーメン…」のように名前順っぽく並びました。実用では
centerかbboxを併用するのが前提です。 - 営業時間・電話番号・評価はない:返るのは名前・住所・カテゴリ・座標・出典が中心です。
- 同じ施設が複数件出ることがある:食品営業許可は業種ごとの許可なので、1施設が業種違いで複数レコードになる場合があります。
/v1/searchは半角カナを吸収しない:表記ゆれに強くしたいなら/v1/suggestを使います。- 将来の提供形態は未確定:今はキー不要ですが、レート制限やAPIキー登録を導入する場合は利用規約で告知するとされています。サポートもベストエフォートです。
まとめ
OpenPOI API は、日本の施設データを「キーなし・保存OK・商用OK」で使える貴重な選択肢です。データの粒度は商用 API に及ばないものの、地図アプリの試作、ハッカソン、社内ツール、AI エージェントへの組み込みなら十分に戦えます。特に入力補完の作り込みと、ライセンス周りの誠実な整理は一見の価値があります。
まずはプレイグラウンドで地図を動かしてみるのがおすすめです。
リンク
※ 本記事の内容は 2026年10月3日時点のドキュメントと実際の API レスポンスに基づいています。