research/jakarta-public-transport-data/index.md

50 lines
3.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: "Jakarta Public Transport Data"
description: "Umbrella topic for Jakarta-area public transport data — how each operator's realtime/schedule systems actually work, what is publicly reachable, and what is usable for future projects. Subtopics: TransJakarta live bus feed; KRL/Comuline schedules; Jabodetabek CCTV camera layer."
status: active
category: technical
tags: [jakarta-public-transport-data, transit-data, jakarta, jabodetabek, transjakarta, krl, commuter-line, open-data, reverse-engineering, cctv]
draft: true
created: 2026-10-12
updated: 2026-10-13
---
# Jakarta Public Transport Data
## Summary
Umbrella topic for **Jakarta-area public transport data**: what data each operator exposes, how third-party apps actually get it, and what is usable for future projects. Each system lives in a subtopic below; the shared thread is reverse-engineering public transport data pipelines and documenting them for reuse.
## Subtopic Map
- [[transjakarta-live-data/index|TransJakarta Live Data]] — bus lens: anonymous MQTT fleet stream + guest REST API + official GTFS; verified via cross-capture (audited Oct 2026)
- [[comuline-krl-data/index|Comuline / KRL Schedule Data]] — rail lens: KRL Commuter Line schedules replicated from KAI Commuter's official partner API; currently a frozen snapshot (audited Oct 2026)
- [[jabodetabek-cctv-live-data/index|Jabodetabek CCTV Live Data]] — vision lens: public traffic-camera catalogs (DKI, BPJT toll roads, Bekasi, Bogor) and the owner-hosted HLS streams apps hotlink; audited via transit.oyenza.com/cctv (Oct 2026)
## Research Question
Which Jakarta public transport data sources are publicly reachable today, how do they work end-to-end, and which are stable enough to build on?
## Key Findings
- **TransJakarta buses: live and open (as of Oct 2026).** Anonymous MQTT broker (`wss://mqtt.tj.co.id:8084/mqtt`) + guest-token REST API + official GTFS give the full realtime fleet (~3.3–3.7k buses). Usable today.
- **KRL commuter line: schedules only, and stale.** Comuline replicates KAI Commuter's partner API, but its sync stopped ~Mar 2025; its public API still serves that snapshot. No live train positions there.
- **Jabodetabek CCTV: four public catalogs, hotlinked HLS streams (as of Oct 2026).** DKI (jakcctv), BPJT tolls, Bekasi, and Bogor publish camera lists with direct stream URLs; third-party apps hotlink them with no tokens. See [[jabodetabek-cctv-live-data/index|CCTV layer]].
- **Pattern across all three:** operators rarely publish developer-facing APIs; practical access comes from app backends, partner endpoints, government portals that embed streams, and open replication projects that document the pipelines. Access is undocumented and can change without notice.
## Related Research
- [[transjakarta-live-data/index|TransJakarta Live Data]] — first audit (origin of this umbrella)
- [[comuline-krl-data/index|Comuline / KRL Schedule Data]] — second audit
- [[jabodetabek-cctv-live-data/index|Jabodetabek CCTV Live Data]] — third audit
## Discussion
Branched 2026-10-12 per user request after two audits: TransJakarta (via `transit.oyenza.com`) and KRL schedules (via `comuline.com`). Both were already documented as separate topics; this umbrella gathers them under one home and is the place to add future systems (MRT Jakarta, LRT Jabodebek, TransJabodetabek, etc.).
2026-10-13: third audit added — the CCTV camera layer, again via `transit.oyenza.com` (its `/cctv` page). Road/traffic cameras rather than vehicles, but the same reverse-engineering thread and reuse potential.
## Next Steps
- [ ] Add subtopics for other Jabodetabek systems as they get audited (MRT Jakarta, LRT Jakarta/Jabodebek, TransJabodetabek)
- [ ] Re-verify access status of both existing feeds periodically (undocumented; can change)
- [ ] Keep per-system "verified on" dates current in subtopics