research/comuline-krl-data/recipes.md
hermes 77b0a55c41 Add comuline-krl-data topic + jakarta-public-transport-data umbrella
Second audit under the Jakarta public transport umbrella: comuline.com replicates KAI Commuter's official partner API (api-partner.krl.co.id); its data has been frozen since ~2025-03-30. Adds the umbrella hub, the comuline topic (sources/analysis/recipes/next-steps), and links the existing transjakarta-live-data topic under the umbrella.
2026-10-12 12:17:01 +00:00

1.5 KiB

Recipes — Comuline public API

Base: https://api.comuline.com — no auth, documented. Docs: https://api.comuline.com/docs; OpenAPI spec: https://api.comuline.com/openapi.

Caveat: data is a frozen snapshot (last sync ~2025-03-30). Use it for station/route reference and historical schedule structure — not for current timetables.

Stations

# all stations
curl -s https://api.comuline.com/v1/station | jq '.data[] | {id, name, daop: .metadata.origin.daop}'

# one station (MRI = Manggarai)
curl -s https://api.comuline.com/v1/station/MRI | jq '.data'

Departures at a station

curl -s https://api.comuline.com/v1/schedule/MRI | jq '.data[0:5]'
# rows: { train_id, line, route, station_origin_id, station_destination_id, departs_at, arrives_at, metadata.origin.color }

One train's full stop sequence

curl -s https://api.comuline.com/v1/route/1448B | jq '.data.routes[] | {station_name, departs_at}'

Status

curl -s https://api.comuline.com/status

If you need CURRENT timetables

  • The upstream partner API (api-partner.krl.co.id) is token-gated. Do not reuse the token published in a public repo — obtain legitimate partner access if you need it.
  • Community alternatives (not audited here): tarif-krl (fares/schedules), Fannandya/api-krl (network-data SaaS), plus the live trackers listed in comuline-krl-data/sources.
  • Always add a freshness check when consuming third-party transit APIs — compare updated_at/timestamps against today.