Use the quicklinks below to jump to the desired section regarding transport in and around Yogyakarta.
Taxis from Yogyakarta's airport run on a voucher system, which makes them more expensive than metered taxis. If you want to skirt this system and save some rupiah, go to the departures area and flag down one of the taxis dropping people off.
To/from Jakarta and Surabaya
AirAsia, Garuda, Lion Air and other domestic carriers offer direct flights from Yogya to Jakarta and Batavia Airlines offer direct flights to Surabaya.
Garuda and Mandala Airlines offer direct Yogya to Denpasar flights.
Yogyakarta's main train stop, Tugu Station, is conveniently located right at the top of Jalan Malioboro, just a short five minute walk away from the town's budget accommodation mecca of Jalan Sosrowijayan. Yogya's secondary train station, Lempunyangan, from which some economy class trains depart for nearby destinations such as Sideraja, a transit point for travellers heading to the coastal towns of Pangandaran and Batu Keras, is further west.
Comfortable direct executive class Argo trains run to and from Jakarta's Gambir station, taking 8-9 hours and costing Rp 200,000- 280,000 a ticket, with weekdays attracting the cheaper fare. Trains leave Jakarta at around 07:00 and 08:00. The Argo train leaving Yogya for Jakarta departs at 08:55. It's best to book tickets in advance at Tugu station if possible. The Taksaka train is slightly cheaper, at Rp 150,000 per person, and takes eight hours to the capital, leaving Yogya at around 10:00 and 20:00.
Direct trains run to and from Surabaya from Tugu station and are the fastest land option. The comfortable Sancaka trains depart for Surabaya in the morning and evening and cost around Rp 85,000-95,000 for the six hour journey in executive class. There are many other options for trains to Surabaya, especially for those willing to travel overnight.
Take a train from Yogya to Surabaya and then on to Banguwangi.
Giwangan, the main terminal for intercity buses, is south of the city centre.
To/from Jakarta and Surabaya
Buses to Jakarta (9-10 hours, Rp 90,000-140,000) and Surabaya (8 hours, Rp 65,000-80,000) leave regularly from Giwangan bus depot.
The ferry from Gilimanuk in Bali lands at Ketapang in East Java from where there are direct buses to Yogya. Several companies offer minibus or coach services direct from Yogya to Bali, including the ferry trip, which take around 15 to 16 hours. Be prepared — it's a long trip on some poor quality roads and buses are sometimes overcrowded.
On Jalan Sosrowijayan and Jalan Prawirotaman, many travel agencies offer minibuses to popular nearby destinations such as Pangandaran and Solo. They can also arrange tickets on intercity coaches, often including pickup from your accommodation or their office, for a small booking fee, as well as day trips to Borobudur and Prambanan. Try Great Tours (Jl Sosrowijayan No. 29, T: (0274) 583 221, http://www.greattoursjogja.com) or Sosro Tours (Jl Sosrowijayan Wetan GT 1/62, T: (0274) 512 054).
All taxis in Yogyakarta have meters and drivers usually turn them on without any argument. Flagfall is Rp 5,500.
Becak (pedicabs) are abundant. While scenic, these are not the vehicles to take if you are in a hurry, especially since drivers often detour unannounced to their friend's batik or wayang puppet workshops on route. It's best to arrange a price first (a short trip in the Yogya town centre should be no more than Rp 15,000, even at tourist prices) and if you have several destinations in mind, you can rent a becak for several hours for a flat rate.
Andong (horse-drawn carts) are another fun local transport option.
The TransYogya buses are clean and air-con, following a number of set routes that pass by several major tourist areas, including Jalan Malioboro, Prambanan Temple, Giwangan bus terminal and the airport. Fares are a flat Rp 3,000 per trip and the attendants can help you catch the right bus.