{
  "markdown": "# Gachi Data API — Japan Station & Accessibility Data (API · MCP · Open Datasets)\n\n> **This is a hosted service. You do NOT self-host it.**\n> Get a free API key at **https://api.gachi-tokusuru.com** and connect to the remote endpoint below.\n> The source in this repo is published for transparency; the data lives in the hosted backend, so a local clone will not return data.\n\n**Deep, obscure Japanese data you won't find anywhere else** — stations, accessibility, vacancy, hazards. Hand-verified, English-first, built for AI agents. Available as an **MCP server**, a **REST API**, and free **open datasets**. One key works for both the API and MCP.\n\n- **526 Tokyo stations** — accessible / multipurpose toilets with floor, gender, equipment flags (wheelchair, ostomate, diaper table) and the **nearest station exit** (an original first-party value computed by spatial join — not in any raw dataset).\n- **612 municipalities nationwide** — public toilets with wheelchair / baby-seat / ostomate flags, address and coordinates.\n- **Free open datasets** — Japan Station Master (entity-resolved, 9,145 stations nationwide) & Ridership 2000–2025, sharing one `station_id`: https://github.com/eng213035/gachi-open-datasets (Zenodo DOI `10.5281/zenodo.21199500`).\n\nStation names accept Japanese (新宿) or romaji (Shinjuku, Kita-Senju) for major stations.\n\n## Connect\n\n- **Endpoint:** `https://api.gachi-tokusuru.com/mcp`\n- **Transport:** Streamable HTTP (remote)\n- **Auth:** `Authorization: Bearer <API_KEY>` — free key at https://api.gachi-tokusuru.com\n\n```json\n{\n  \"mcpServers\": {\n    \"gachi-data\": {\n      \"url\": \"https://api.gachi-tokusuru.com/mcp\",\n      \"headers\": { \"Authorization\": \"Bearer YOUR_API_KEY\" }\n    }\n  }\n}\n```\n\n## Tools\n\n| Tool | Argument | Returns |\n|------|----------|---------|\n| `get_toilet_by_station` | `station` (Japanese or romaji) | Accessible toilets in a Tokyo station, with `nearest_exit` |\n| `get_public_toilet_by_city` | `city` (Japanese) | Public toilets in a municipality (top 50 for large cities) |\n| `get_station_hazard` | `station_name` (Japanese or romaji) | Official MLIT hazard categories at a station (flood / liquefaction / storm-surge), relayed live, cached 14 days — no derived score. Landslide & tsunami are license-restricted (`available:false` + link to official maps). Not a substitute for official hazard maps. |\n\n## REST endpoints\n\n- `GET /v1/station-toilets/search?station=Shinjuku` — accessible toilets in a Tokyo station\n- `GET /v1/toilets/nearby?lat=&lng=&radius=&wheelchair=&ostomate=&diaper=` — public toilets near a point\n- `GET /v1/stations/{station_id}/hazard` — **official MLIT hazard categories at a station, relayed live** (flood inundation-depth rank, liquefaction/landform, storm-surge presence). Values are returned verbatim from 国土交通省 不動産情報ライブラリ with attribution, cached 14 days — **no derived score**, and **not a substitute for official hazard maps**. Landslide & tsunami source layers are 一部非商用 (license-restricted), so they return `available:false` with a link to the official hazard maps. Also available as the MCP tool `get_station_hazard(station_name)`. `station_id` comes from the [Japan Station Master](https://github.com/eng213035/gachi-open-datasets) (e.g. `st_00001`); 423 of 425 stations have coordinates (2 remain unlocated → `hazard: null`).\n\nAll endpoints use the same `Authorization: Bearer <key>` and share one monthly quota. Full spec: `/openapi.yaml`, docs: `/docs`.\n\n## Example\n\n```bash\ncurl -X POST https://api.gachi-tokusuru.com/mcp \\\n  -H \"Authorization: Bearer YOUR_API_KEY\" -H \"Content-Type: application/json\" \\\n  -d '{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"tools/call\",\n       \"params\":{\"name\":\"get_toilet_by_station\",\"arguments\":{\"station\":\"Shinjuku\"}}}'\n```\n\n## Pricing\n\nFree 1k · Pro $19/100k · All Access $49/200k · Business $149/500k. Full details: https://api.gachi-tokusuru.com\n\nPaid plans are self-serve: after Stripe checkout the customer is redirected to `/activate?session_id=…`, which verifies payment, resolves the plan from the paid amount, and issues the API key on the page (idempotent per session — reload shows the same key). No manual key handling.\n\n## Operational notes (internal)\n\n- **Subscription cancellation is not yet wired to key revocation** (no Stripe webhook in this build). A cancelled subscriber's key keeps working until manually disabled. **Reconcile monthly**: compare Stripe's active subscriptions against issued `key:*` records and disable keys for lapsed subscribers. A `customer.subscription.deleted` webhook → auto-revoke is the next phase.\n- Plan detection in `/activate` is by paid amount (`AMOUNT_TO_PLAN`: $19/$49/$149). If a new plan reuses an existing amount, add an explicit mapping.\n\n## Licensing (two layers — read carefully)\n\n- **Code** in this repository: MIT (see [LICENSE](LICENSE)). Applies to the server code only.\n- **Data** returned by the API is **NOT MIT.** Each value carries its source in the response `attribution`. It is derived from:\n  - Accessible & public toilets — Tokyo Metropolitan Government, Bureau of Social Welfare & BODIK municipal open data (**CC BY 4.0**): https://portal.data.metro.tokyo.lg.jp/ · https://www.bodik.jp/\n  - Station names & train service status — ODPT, Public Transportation Open Data Center (**CC BY 4.0**): https://developer.odpt.org/\n  - Hazard categories, future population, land price — MLIT 不動産情報ライブラリ (Real Estate Information Library), official values relayed as-is per request (not a government-created dataset): https://www.reinfolib.mlit.go.jp/\n  - River flood forecasts & landslide alerts — JMA (Japan Meteorological Agency, 気象庁), relayed as published, not warnings issued by this service: https://www.jma.go.jp/bosai/\n  - Housing vacancy & municipality codes — Statistics Bureau of Japan (住宅・土地統計調査) via e-Stat & MIC (総務省): https://www.stat.go.jp/data/jyutaku/\n  - Nationwide stations & bus stops — MLIT 国土数値情報 N02/P11; English station names partly via Wikidata (**CC0**): https://nlftp.mlit.go.jp/ksj/ · https://www.wikidata.org/\n- Derived by gachi-tokusuru.com (distinct from the official values above): `nearest_exit`, `nearest_station_km`, and bus-stop counts are computed via spatial join.\n- Attribution is returned in every API response. Timeliness, accuracy and completeness are not guaranteed.\n",
  "bytes": 6283,
  "sha": "8d0113eded8ef6484c7df7b0839f084a278773ecfaad5b203b1f564dd93b19f7",
  "repo_slug": "eng213035/gachi-data-api",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_com_gachi_tokusuru_japan_data_api_256ac626/readme"
}