Docs
座標を渡すと、
その場所の街の様子が言葉で返ってきます。
みちよみは、市民が撮った東京の街路写真 1,914,490 枚を、AIが1枚ずつ日本語にした公開データです。座標・通り・町丁目から、REST API と MCP サーバーで引けます。
- 登録・APIキー不要
- 読み取り専用
- 言葉は CC BY 4.0(回答・アプリに表示不要)
- 本文は日本語
クイックスタート
銀座四丁目の交差点(緯度 35.6717・経度 139.7647)から半径150m以内の写真を、近い順に3件引きます。キーは要りません。
curl "https://michiyomi.dev/v1/scenes/nearby?lat=35.6717&lon=139.7647&radius_m=150&limit=3"
返ってくるもの(抜粋)そのまま開く ↗
{
"snapshot": "2026-09-13-r2",
"license": { "id": "LicenseRef-michiyomi-layered", "attribution": "出典: みちよみ(michiyomi.dev、Mapillary の街路写真より)…", … },
"count": 3,
"results": [
{
"id": "964535250779795",
"distance_m": 3,
"capture_year": 2019,
"ward": "中央区",
"generation": { "id": "gen1-codex", … },
"summary": "施設: 一般道路 / 歩道: 左=あり(分離歩道,5m), 右=あり(分離歩道,4m), 有効幅約4m, 点字ブロックあり, 車道幅約12m / …",
"image_page": "https://www.mapillary.com/app/?pKey=964535250779795"
},
… ほか 2 件
]
}
const url = "https://michiyomi.dev/v1/scenes/nearby?lat=35.6717&lon=139.7647&radius_m=150&limit=3";
const data = await (await fetch(url)).json();
for (const s of data.results) {
console.log(s.capture_year, `${s.distance_m}m`, s.summary);
}
出力(抜粋)ブラウザ・Node.js 18 以降
2019 3m 施設: 一般道路 / 歩道: 左=あり(分離歩道,5m), 右=あり(分離歩道,4m), 有効幅約4m, 点字ブロックあり, 車道幅約12m / 舗装: アスファルト・補修跡あり(旧)・標示摩耗進行方向矢印20% / … 2018 4m 施設: 一般道路 / 歩道: 左=あり(分離歩道,3m), 右=あり(分離歩道,4m), 有効幅約2.5m, 車道幅約10.5m / 舗装: アスファルト・標示摩耗車線境界線20% / … 2018 6m 施設: 一般道路 / 歩道: 左=あり(分離歩道,3.5m), 右=あり(分離歩道,4m), 車道幅約10.5m / 舗装: アスファルト・標示摩耗外側線15% / …
import json, urllib.request
url = "https://michiyomi.dev/v1/scenes/nearby?lat=35.6717&lon=139.7647&radius_m=150&limit=3"
with urllib.request.urlopen(url) as r:
data = json.load(r)
for s in data["results"]:
print(s["capture_year"], f'{s["distance_m"]}m', s["summary"])
出力(抜粋)標準ライブラリだけで動きます
2019 3m 施設: 一般道路 / 歩道: 左=あり(分離歩道,5m), 右=あり(分離歩道,4m), 有効幅約4m, 点字ブロックあり, 車道幅約12m / 舗装: アスファルト・補修跡あり(旧)・標示摩耗進行方向矢印20% / … 2018 4m 施設: 一般道路 / 歩道: 左=あり(分離歩道,3m), 右=あり(分離歩道,4m), 有効幅約2.5m, 車道幅約10.5m / 舗装: アスファルト・標示摩耗車線境界線20% / … 2018 6m 施設: 一般道路 / 歩道: 左=あり(分離歩道,3.5m), 右=あり(分離歩道,4m), 車道幅約10.5m / 舗装: アスファルト・標示摩耗外側線15% / …
claude mcp add --transport http michiyomi https://michiyomi.dev/mcp
つないだら、AIにこう頼みます(例)
銀座四丁目の交差点(緯度35.6717・経度139.7647)のまわりの歩道の様子を、撮影年と出典をつけて教えて
AIが受け取るもの: describe_location の結果(抜粋)ほかのAI・ツール一覧 →
{
"count": 2,
"years": [2018, 2019],
"scenes": [
{
"id": "964535250779795",
"distance_m": 3,
"capture_year": 2019,
"coordinate_role": "image_capture_position",
"summary": "施設: 一般道路 / 歩道: 左=あり(分離歩道,5m), 右=あり(分離歩道,4m), 有効幅約4m, 点字ブロックあり, 車道幅約12m / …"
},
… ほか 1 件
]
}
記述は撮影した年の様子です(capture_year)。幅などの数値は写真からの推定で、測った値ではありません。読み方はデータの読み方へ。
次の一歩: 収録を確かめてから、中身を引く
- 収録があるか確かめるその場所に写真が何枚あるか、何年に撮られたかを返します。0件は「撮影がない」という意味で、「何もない」ではありません。
curl "https://michiyomi.dev/v1/coverage?lat=35.6717&lon=139.7647"
- 近くの写真を引く上のクイックスタートと同じです。近い順に、要約・撮影年・元の写真へのリンクが返ります。
- 1枚の全文を読む
includeで、撮影の記録(metadata)・計算した値(machine)・AIの読み取り(analysis)を選べます。curl "https://michiyomi.dev/v1/scenes/964535250779795?include=metadata,machine,analysis" - 通り・町丁目・経年変化を見る同じ座標から、通りと町丁目のカルテ、確かめた経年変化を引けます。
curl "https://michiyomi.dev/v1/streets/nearby?lat=35.6717&lon=139.7647" curl "https://michiyomi.dev/v1/areas/at?lat=35.6717&lon=139.7647" curl "https://michiyomi.dev/v1/changes/nearby?lat=35.6717&lon=139.7647&radius_m=500"
すべてのエンドポイントとパラメータは APIリファレンス にあります。
3つの使い方
どれも同じ公開データで動いています。
01 画面で言葉で探す・地図で見る「懐かしい路地」のような言葉で風景を探すか、地図で写真・通り・町丁目・変化を見ます。風景を探す →
02 APIで座標から引く座標・通り名・町丁目名から、JSON で引きます。REST と OpenAPI。APIリファレンス →
03 AIでエージェントにつなぐClaude・Codex・Cursor などに MCP サーバーを足します。場所で引くものと、言葉の印象で探すものの2つ。貼る1文で設定できます。AIから使う →
地図は /map/。まとめて分析するなら、同じ release の Hugging Face のデータセット(Parquet) を使ってください。
このドキュメントの並び
| 種類 | ページ | こんなときに |
|---|---|---|
| はじめに | クイックスタート(このページ) | まず1回呼んでみる。提供条件を知る |
| 使い方 | AIから使う(MCP) | Claude・Codex などにつなぐ。ツールと使う順番 |
| 出典・ライセンス | 使う場面ごとの条件を知る。配り直すときの出典文をコピーする | |
| リファレンス | APIリファレンス | エンドポイント・パラメータ・応答の形を調べる |
| 解説 | データの読み方 | 3つの層、世代、確度、「不明」、被覆、カルテ、経年変化の意味 |
| 言語化モデル OddEye | 街路写真を読むために作ったモデルのこと | |
| 技術白書・開発の記録 | 設計の考え方と、いつ・何から作ったか |
提供条件
- 料金・登録
- 無償。登録・APIキーは要りません。
- できること
- 読み取りだけ。書き込みのエンドポイントはありません(MCP と、検索のための POST を除いて GET のみ)。
- 回数の上限
- IP アドレスごとに、REST は60秒あたり300回、MCP(
/mcp)は60秒あたり120回。超えると429とretry-after: 60が返ります。言葉の印象で探す検索(/explore/mcpと風景を探す)は1分あたり20回です。 - 形式
- JSON(UTF-8)。観測の文章は日本語です(
data_language: "ja")。 - ブラウザから
- CORS はすべてのオリジンに開いています(
access-control-allow-origin: *)。 - ライセンス
- 観測データは CC BY 4.0。AIの回答・アプリの表示・転記に出典は要りません。データとして配り直すときだけ出典を表示します。座標・写真・通りの骨格(OpenStreetMap)は元の条件です(出典・ライセンス)。
- 稼働の保証
- ありません(SLAなし)。
- 一括の分析
- APIは近くを引くためのものです。全件を使うなら Hugging Face の Parquet を使ってください。
無いもの
先に知っておくと、読み違えずに済みます。
- 東京都の外収録は東京都全域(23区・多摩・島しょ)だけです。
- いまの様子記述は撮影した時点のものです。リアルタイムの情報ではありません。
- 測った値幅や車線数は写真1枚からの推定(確度つき)で、実測ではありません。
- 撮影がない場所の情報0件は「撮影がない」で、「何もない」ではありません。
- 写真そのものAPIの応答に写真は入りません。
image_pageから Mapillary の元の写真を開けます。 - ページ送りありません。近くを引くときは1回50件までで、広い範囲は中心や半径を変えて引きます。
- 英語の本文観測の文章は日本語だけです。項目名と定義書は英語でも読めます。
- 稼働の保証SLA はありません。止まることもあります。