Jakarta è il principale snodo ferroviario passeggeri dell'Indonesia e il principale punto di accesso occidentale alla rete ferroviaria intercity di Giava. La città utilizza diverse grandi stazioni ferroviarie anziché un unico terminal centrale, con KAI che opera treni convenzionali a lunga percorrenza e KCIC che gestisce il servizio ad alta velocità Whoosh da Halim. Questa suddivisione è importante quando si acquistano biglietti del treno per Jakarta, perché la scelta della stazione dipende dal tipo di servizio e dalla tratta.
I servizi KAI a lunga percorrenza utilizzano Gambir e Pasar Senen per molti treni in tutta Giava, mentre Jatinegara e Jakarta Kota gestiscono alcuni movimenti intercity e regionali. Halim è il terminal di Jakarta per il treno ad alta velocità Whoosh diretto verso Giava Occidentale. KAI Bandara gestisce il collegamento ferroviario tra le stazioni del centro di Jakarta e l'Aeroporto Internazionale Soekarno-Hatta, offrendo accesso su rotaia all'area aeroportuale senza utilizzare i binari intercity.
Le tratte ferroviarie da Jakarta si dirigono verso est attraverso Giava in direzione di Cirebon, Semarang, Yogyakarta, Solo, Surabaya e Malang, con il servizio ad alta velocità verso sud-est in direzione di Bandung via Halim. I treni per Jakarta arrivano da Giava Centrale, Giava Orientale, Giava Occidentale e dal corridoio aeroportuale. Prenota online i treni da e per Jakarta su Rail Monsters.