Editorial responsibility: Elena Voss · Roavina Travel Editor

This guide is part of our Jakarta destination coverage. Jakarta

01

Choose between CGK and HLP connections

Jakarta has two airports used by travellers. Soekarno-Hatta International Airport (CGK), in Tangerang around 30 km from central Jakarta, is the main international gateway. Halim Perdanakusuma Airport (HLP), around 17 km from central Jakarta, is in East Jakarta and mainly handles domestic flights. Check the airport code on your ticket before planning the transfer: CGK and HLP are on opposite sides of the metropolitan area. (Jakarta airport access guide, checked 2026-09-28)

CGK's rail option is Commuter Line Basoetta. It links the airport station with Batu Ceper, Rawa Buaya, Duri, BNI City and Manggarai, giving travellers connections into central Jakarta. The airport station is separate from the terminals, so follow airport signs and allow time for the terminal connection. (KAI Commuter Basoetta information, checked 2026-09-28)

TransJakarta's SH2 is the direct bus alternative between Blok M and the Soekarno-Hatta airport area. On the airport-bound route, SH2 serves Bundaran Senayan, Gelora Bung Karno, DPR/MPR, Slipi-Petamburan, Cengkareng, the cargo terminals and airport offices; the return direction also stops at the airport railway station. The route does not serve every passenger terminal directly. (TransJakarta SH2 route update, checked 2026-09-28)

HLP has no dedicated airport train in the published city connection. Jakarta's transport authority directs travellers to TransJakarta corridors ending at Cawang UKI or PGC, followed by Mikrotrans JAK20 or JAK21 to Gereja Oikumene; the airport is about a three-minute walk from that stop. A taxi or app car is simpler with several suitcases. (Jakarta airport access guide, checked 2026-09-28)

Checked 2026-09-28 · Official site · www.jakarta.go.id

Checked 2026-09-28 · Official site · www.commuterline.id

Checked 2026-09-28 · Official site · transjakarta.co.id

02

Use published times as airport legs

KAI Commuter says the Basoetta journey between central Jakarta and Soekarno-Hatta was reduced to 39 minutes. That figure describes the rail leg, not a hotel-to-terminal journey. Add the terminal walk, time to reach the correct platform, the wait for the next train and the onward connection from Duri, BNI City or Manggarai. (KAI Commuter service update, checked 2026-09-28)

TransJakarta publishes the SH2 route and stops but no fixed end-to-end journey time. Traffic, boarding and the walk from the airport-area stop to the relevant terminal or office all change the result. Use the TJ:Transjakarta planner for the departure date and treat its result as the complete bus journey to your chosen stop. (TransJakarta routes, checked 2026-09-28; TransJakarta SH2 route update, checked 2026-09-28)

The HLP public-transport route adds an interchange and a three-minute walk after Mikrotrans. Jakarta's authority publishes that walking time but no fixed total duration from central Jakarta. Check each corridor in the operator's planner and include the transfer, luggage handling and terminal-entry time before choosing it for a flight. (Jakarta airport access guide, checked 2026-09-28)

For a taxi or GrabCar, the road journey depends on the exact address and traffic. Grab publishes app-based pricing and booking, but no single citywide airport-to-hotel duration. Enter the full hotel address and read the live estimated arrival time before confirming. (Grab advance booking, checked 2026-09-28)

Checked 2026-09-28 · Official site · www.commuterline.id

Checked 2026-09-28 · Official site · www.transjakarta.co.id

Checked 2026-09-28 · Official site · transjakarta.co.id

Checked 2026-09-28 · Official site · www.jakarta.go.id

Checked 2026-09-28 · Official site · www.grab.com

03

Compare fares by service and destination

Basoetta costs Rp70,000 from Soekarno-Hatta to Duri, BNI City or Manggarai. KAI Commuter publishes lower airport-rail fares for shorter sections: Rp35,000 between the airport and Batu Ceper or Rawa Buaya, and Rp25,000 between Rawa Buaya and Batu Ceper. Select both origin and destination in the KAI booking channel because the central-city fare does not apply to every station pair. (KAI Commuter Basoetta fare information, checked 2026-09-28)

TransJakarta lists Rp3,500 for SH2 in both directions. The fare covers the bus leg; it does not automatically cover a separate local service after leaving the bus. Carry an accepted Indonesian electronic payment card or confirm the current payment method in the TJ:Transjakarta app before boarding. (TransJakarta SH2 route update, checked 2026-09-28)

For HLP, Jakarta's airport-access page lists Rp3,500 for the TransJakarta leg and Rp0 for the named Mikrotrans connection. That is the published combination through Cawang UKI or PGC; another feeder or rail route can have different payment rules. (Jakarta airport access guide, checked 2026-09-28)

Airport taxi fares are destination-specific. Grab's advance-booking service gives a fixed price when the booking is placed, while ordinary app pricing is shown for the selected route during booking. The airport operator lists taxi and online-transport facilities but does not publish one fare for every Jakarta district. Confirm the price and pickup point in the official app or use the signed taxi rank. (Grab advance booking, checked 2026-09-28; Soekarno-Hatta airport taxi access, checked 2026-09-28)

04

Check the current departure pattern

The operator’s timetable lists the first airport-bound train from Manggarai at 05:00 and airport departures continuing through 22:45. KAI’s other official service article gives a different daily trip total, so use the date-specific timetable or booking channel instead of relying on a daily count. Reservations are available through C-Access, Access by KAI or the airport-train website from seven days before departure. Confirm the exact direction and departure in the booking channel before leaving for the station. (KAI Commuter service information, checked 2026-09-28; Basoetta timetable, checked 2026-09-28)

SH2 operates every day from 05:00 to 22:00 in both directions. TransJakarta publishes the route and stops but no fixed interval for this airport service, so use the TJ:Transjakarta planner for the next bus instead of assuming a regular headway. (TransJakarta SH2 route update, checked 2026-09-28; TransJakarta routes, checked 2026-09-28)

HLP's connection depends on ordinary TransJakarta corridors and Mikrotrans routes. The authority names corridors 5C, 5D, 9, 9A, 9B, 9C and 10 to Cawang UKI, followed by JAK20, or 5D via PGC 1 followed by JAK21. Because this is a connected route rather than one airport service, check the first and last departure for every leg in the current planner. (Jakarta airport access guide, checked 2026-09-28)

Grab offers advance booking for airport trips up to 90 days ahead and states that the service is available 24 hours a day, seven days a week. The booking page says the driver waits up to 15 minutes after the scheduled pickup time. Set the terminal and pickup location precisely, especially for an early flight. (Grab advance booking, checked 2026-09-28)

05

Sunday is covered; late arrivals need a backup

Basoetta and SH2 publish daily operating patterns, so Sunday is included in their normal service descriptions. Basoetta has a defined daytime and evening timetable rather than overnight rail service; SH2 ends at 22:00. If your arrival is after the last suitable train or bus, use the airport taxi rank or arrange an app car before leaving the terminal. (KAI Commuter service information, checked 2026-09-28; TransJakarta SH2 route update, checked 2026-09-28)

HLP's published public-transport route uses regular corridors and Mikrotrans. Jakarta's authority does not publish one airport-specific Sunday timetable or one late-night closing time for the complete connection. Check each corridor and JAK20 or JAK21 in the operator's planner; if one interchange has ended service, take a taxi or app car from the terminal. (Jakarta airport access guide, checked 2026-09-28)

A Sunday road transfer still depends on the route, hotel location and traffic. Leave additional time when returning to CGK from central or southern Jakarta, and run a date-specific journey search before leaving the hotel. Public-transport fares remain tied to the service rather than the day of the week. (Grab advance booking, checked 2026-09-28; Jakarta airport access guide, checked 2026-09-28)

For flights from CGK, KAI Commuter advises arriving at the airport station at least three hours before an international flight and two hours before a domestic flight. That guidance does not include your journey to the station, the train wait or terminal movement, so plan those separately and keep the airline and terminal details available. (KAI Commuter service information, checked 2026-09-28)

Checked 2026-09-28 · Official site · www.commuterline.id

Checked 2026-09-28 · Official site · transjakarta.co.id

Checked 2026-09-28 · Official site · www.jakarta.go.id

Checked 2026-09-28 · Official site · www.grab.com

06

Identify the correct taxi or app pickup

At CGK, use the airport's signed taxi rank or designated online-transport pickup area. The airport operator separates taxi and online-transport information, while Grab lets travellers book, track the driver and see the booking price. Do not accept an unsolicited driver in the arrivals hall; match the vehicle and plate number shown in the booking. (Soekarno-Hatta airport online transport, checked 2026-09-28; Grab advance booking, checked 2026-09-28)

At HLP, enter the complete hotel name and address and confirm the airport pickup location in the app. Grab states that advance bookings can be scheduled for early-morning, midnight and other unusual hours, with a fixed price at booking and free cancellation up to one hour before pickup. Keep the confirmation available until the driver arrives. (Grab advance booking, checked 2026-09-28)

Jakarta Airport Transfers: Train, Bus and Taxi
Photograph · Gunawan Kartapranata · CC BY-SA 3.0

Common questions

Which Jakarta airport should I use for an international arrival?

Soekarno-Hatta International Airport (CGK) is Jakarta's main international gateway and is around 30 km from central Jakarta. (Jakarta airport access guide, checked 2026-09-28)

How much is the airport train to central Jakarta?

Basoetta costs Rp70,000 from Soekarno-Hatta to Duri, BNI City or Manggarai. Shorter airport-rail sections have lower published fares. (KAI Commuter fare information, checked 2026-09-28)

How much is TransJakarta SH2?

TransJakarta publishes Rp3,500 for SH2 between Blok M and the Soekarno-Hatta airport area. (TransJakarta SH2 route update, checked 2026-09-28)

Does SH2 run on Sundays?

Yes. SH2 operates every day from 05:00 to 22:00 in both directions. (TransJakarta SH2 route update, checked 2026-09-28)

How do I reach Halim Airport by public transport?

Take TransJakarta to Cawang UKI or PGC, then Mikrotrans JAK20 or JAK21 to Gereja Oikumene and walk about three minutes to the airport. (Jakarta airport access guide, checked 2026-09-28)

Can I book a late-night Grab airport transfer?

Yes. Grab says advance airport bookings are available 24 hours a day, seven days a week, up to 90 days ahead. (Grab advance booking, checked 2026-09-28)

How early should I reach the airport train station?

KAI Commuter advises arriving at least three hours before an international flight and two hours before a domestic flight when using Basoetta. (KAI Commuter service information, checked 2026-09-28)