Public transportation options are fairly new to this airport and it has traditionally been a little more challenging to navigate than other Southeast Asian capitals. This is because Jakarta is really massive and prone to traffic jams and gridlock.
The Damri Bus service starts at Rp. 40.000 and you want to take the bus in the direction of Gambir train station, a central spot downtown. Traffic can be slow and remember that in a bus you will have to take public transport to your destination after arriving at Gambir. It can be good for one person, but groups of more than one could do better sharing a taxi. One should buy ahead the ticket in the kiosk of the company which costs around 3 USD, buses take at least an hour and a half and they leave from 5 am to 11 pm every 20 to 40 minutes. Some cab drivers will try to convince travelers that buses are not operating, but if you want to ride in bus go and verify it by yourself.
The main way to go from the Airport to the city is using cabs. The city is located roughly 25 miles away, but it is good to keep in mind that this is a huge metropolis so a trip to Central Jakarta may take from 40 minutes up to two hours depending on the traffic, and to other areas of the city it may be much longer.
There are many different Taxi companies serving travelers. Some visitors have been victims of scams, so the ideal thing is to use reputable companies. Once one goes through customs there is a first huge hall still separated from the people waiting outside, there it is possible to see several stands that belong to the most reputable, most luxurious and more expensive companies.
One can expect to pay around 40 USD for a trip in a Mercedes Benz to South Jakarta that will take 40 to 50 minutes depending on traffic.
The App Grab is the go to rideshare service here that works very well. Just like Lyft and Uber you put in your credit card details, hail a ride and get to your destination. It is a good option instead of a formal taxi and the price is around $10 USD cheaper.
The train is the newest option in the airport to city transit. It can be a good way to avoid the jams that buses taxis and rideshares cannot avoid on the highways. It is not a high speed train so the 30km trip still takes around 55 minutes but it can be a really good option for price and if your final destination is somewhere near one of the two stops the train makes.
The cost of a one way ticket is 100,000 Rupiah (7.40USD) In addition to the airport, the train will stop at three stations — Sudirman Baru station (in the heart of Jakarta), as well as Duri and Batu Ceper (closer to the airport). A final stop will be added in 2019 in Southern Jakarta.