Code-Based Manifesto: Auditing Fukuoka's Public Facility Reservation Data

IT Policy Proposals
Code-Based Manifesto: Auditing Fukuoka's Public Facility Reservation Data

どうも〜おかむーです! Today I'm doing a short, engineer-y audit of municipal public facility data, with Fukuoka City's reservation system as the case study — code-first critique, practical fixes.

  • Fukuoka runs a public facility guide & reservation portal (city page + third-party service host).
  • Tokyo provides a PublicFacility API that shows a machine-readable model we can reuse.
  • Goal: push local systems from HTML/PDF portals to an interoperable OpenAPI + JSON/CSV-first flow.

結論

Fukuoka's front-end works for citizens, but from a data-engineering perspective it's half-baked: a human-friendly portal exists, yet there's no clear, standardized, machine-readable API or open CSV download. エンジニア的に言うと、API一本で解決する話なんですよ。要するに、データフォーマットと公開インターフェースを揃えれば利活用が一気に進む、ということです。

Report: what I checked and why it matters

What I looked at

  • Fukuoka City public facility pages and the reservation portal (city page and hosted service at www3.11489.jp).
  • e-Gov API catalog (administrative APIs that central gov provides).
  • Tokyo Open Data API (PublicFacility endpoint) as a pragmatic reference implementation.
  • National guidance on local system standardization (Digital Agency / Soumu efforts).

これ見てくださいよ。Tokyo's /PublicFacility endpoint returns JSON with fields like facility name, coordinates, accessibility flags. That's exactly the shape a municipal dataset should publish. Fukuoka currently publishes facility lists and a reservation UI, but there's no obvious open JSON/CSV API linked from the municipal page.

Technical gaps

  • Machine-readability: limited or absent. Data is embedded in HTML or behind the reservation UI.
  • Standardization: no explicit schema or OpenAPI spec; fields and codes are local.
  • Licensing & update cadence: not clearly declared on the portal.
  • Reuse friction: third-party hosted service suggests lock-in; export options unclear.

Concrete code example: how to bridge quickly

Use Tokyo's API model, then normalize. Example fetch + normalize in Python:

import requests

r = requests.get('https://portal.data.metro.tokyo.lg.jp/api/PublicFacility')

for f in r.json()['facilities']:

print(f['name'], f['lat'], f['lon'], f.get('barrier_free'))

要するに、まずはJSONエンドポイントを1つ公開して、CSVエクスポートをつける。OpenAPIで仕様書を出しておけば他自治体と互換性が生まれます。

Policy alignment and systems plan

Digital Agency and Soumu are pushing standardization and cloud migration for local core systems. That means municipalities should:

  • Adopt a canonical facility schema (use Tokyo's as baseline).
  • Provide open, unauthenticated GET endpoints for read-only data; provide API keys for rate-limited heavy use.
  • Publish OpenAPI + example CSVs and machine-readable metadata (DCAT or schema.org).
  • Migrate backend to containerized microservices on Government Cloud for maintainability.

Recommendations (practical roadmap)

  • Publish a /api/facilities JSON endpoint mirroring Tokyo's fields.
  • Add /download/facilities.csv with timestamped snapshots.
  • Release an OpenAPI spec and a permissive license (CC-BY or similar).
  • Add automated tests (contract tests) and a CI job that validates CSV/JSON parity.
  • Provide sample SDKs and an example Jupyter notebook showing data join (facility × reservation stats).
  • まとめ

    Fukuoka has the pieces — a citizen-facing reservation UI and third-party hosting — but it's missing the data-first layer that enables civic tech, startups, and researchers to build value. エンジニア的に言うと、まずはJSON + OpenAPIで公開するだけで活用の土台はできるんですよ。

    おかむーから一言

    Tech makes policy enforceable. If cities publish clean, documented APIs, civic innovation follows. Let's ship the API and let people build cool stuff!