GoAsia
How to Get from Yogyakarta to Surabaya

How to Get from Yogyakarta to Surabaya

Last updated: October 14, 2026
Contents

Moving from the artistic heart of Central Java to the bustling industrial port of Surabaya reveals the diverse faces of Indonesia. While Yogyakarta is defined by its ancient temples and slow-paced sultanate charm, Surabaya is a high-energy metropolis that serves as the gateway to Mount Bromo and the eastern islands. The journey between them is a classic transit across the volcanic plains of Java, cutting through lush rice paddies and small rural villages.

Train, Bus, Flight and Ferry tickets

Booking and payment are handled by 12Go, not GoAsia. We may receive a commission when you book through our links.

This is one of the busiest transport corridors in Indonesia, with frequent KAI trains and a range of intercity buses. Whether you are heading for a flight at Juanda International Airport or simply want to watch the Javanese countryside go by, you can compare and book your preferred tickets on GoAsia.cc to ensure a smooth transition between these two iconic cities.

Yogyakarta to Surabaya by Train

The train is widely considered the most comfortable and reliable way to cross Java. Indonesian Railways (KAI) runs several services a day between Yogyakarta and Surabaya Gubeng, from the Sancaka, which takes about four hours, to the faster Argo trains that need as little as 3 hours 48 minutes. Most services offer Executive or Premium Economy seating, and a few slower trains still have Economy seats. As an indicative guide, fares range from around $5 to $25 per person depending on train, class and date (as of October 2026, converted from rupiah), and the trip takes roughly 3 hours 48 minutes to 5 hours.[1]

Economy Class

Economy class is found on a few slower trains. KAI describes its Economy carriages as air-conditioned, with ergonomic seats, luggage racks and power outlets in most train sets. The seats are more upright and offer less legroom than higher classes, but they are adequate for a journey of four to five hours. This is a good choice for budget-conscious travelers who still want the punctuality of the rail network. Fares are typically around $5 to $9.[1]

Premium Economy Class

Premium Economy is the class on the Sancaka, the most frequent service on this route, and on trains such as the Wijayakusuma and Mutiara Selatan. KAI's customer service has confirmed that these Premium Stainless Steel sets have 2-2 seating, with face-to-face seats only at numbers 10 and 11. Fares for the full trip are typically around $15 to $17, a little higher on weekends.[2]

Executive Class

For a more relaxed experience, Executive class offers reclining seats with more legroom, air conditioning, power outlets, folding tables and luggage racks, according to KAI. Some of the faster Argo trains are Executive only. Many long-distance trains have a dining car, and crew often pass through to sell snacks and meals. Expect to pay roughly $19 to $25 per person. KAI also operates Luxury and Compartment Suite cars, but these are not normally part of the services between Yogyakarta and Surabaya.[1]

Yogyakarta to Surabaya by Bus

Buses offer flexibility and usually the lowest fares on this route, typically around $6 to $20 per person depending on the operator and bus class (indicative, as of October 2026). Thanks to the Trans-Java Toll Road, the bus is a workable alternative to the train, but it is generally slower: expect roughly 6 to 8 hours depending on traffic and where you board and get off.

Executive and Luxury Bus Services

Most buses on this route are Executive class or similar, which typically offer reclining seats and air conditioning, and often a toilet on board. Some operators also run Luxury or sleeper-style coaches with wider seats (often in a 2-1 layout). Departure points and facilities vary by operator, so check the details before you book.

Economy Bus Services

Economy buses are the cheapest option, usually at the lower end of the price range. They are basic services that make more stops and may not use the toll road for the entire journey, which can mean longer travel times. They are best suited for adventurous travelers on a strict budget who do not mind a more local, no-frills experience.

Comparing Your Options

Mode Price (USD) Duration Comfort
Train (Economy) $5 - $9 4h - 5h Basic
Train (Premium Economy) $15 - $17 4h Medium
Train (Executive) $19 - $25 3h 48m - 5h High
Bus (Economy) $6 - $10 7h+ Basic
Bus (Executive) $10 - $20 6h - 8h Medium

Tips for Traveling from Yogyakarta to Surabaya

  • Book in Advance: Trains in Java, especially Executive and Premium Economy, can sell out several days in advance, particularly on weekends and public holidays.
  • Check Your Station: Yogyakarta has two main stations, Tugu (Yogyakarta) and Lempuyangan. Check which station your train uses on your ticket, as it differs by service.
  • Bring a Jacket: Whether you take the bus or the train, the air conditioning is often set to very cold temperatures. Having a light sweater or jacket will make your journey much more comfortable.
  • Arrive Early: For trains, plan to be at the station well before departure to allow time for check-in and security.
  • Snacks and Water: While trains have a dining car and buses often make a rest stop, it is always a good idea to carry your own water and a few snacks for the journey.

Timetable

Bus Yogyakarta - Surabaya $ 5.53–21.34 4h 20m – 7h 15m
  • →  Executive 06:45, 08:30, 08:37, 08:41, 08:45, 08:50, 09:00, 09:05, 09:10, 09:25, 09:30, 09:50, 10:00, 10:20, 10:30, 10:45, 11:00, 11:07, 11:11, 11:20, 11:22, 11:25, 11:35, 11:45, 12:00, 12:10, 12:20, 12:30, 12:40, 13:00, 14:45, 16:45, 18:06, 18:45, 19:18, 19:20, 19:22, 19:30, 19:35, 19:55, 20:00, 20:30, 20:40, 20:45, 20:50, 21:00, 21:07, 21:20, 21:22, 21:25, 21:35, 21:45, 22:00, 22:10, 22:20, 22:30
  • →  Luxury 09:00, 09:45
  • →  Economy 12:15
Train Yogyakarta - Surabaya $ 14.45–94.92 3h 48m – 6h 14m
  • →  Economy CB 02:40, 06:45, 11:30, 17:00, 18:31, 20:44
  • →  Executive AA 02:40, 06:45, 11:30, 12:50, 13:27, 17:00, 18:31, 20:44, 23:30
  • →  Economy CA 02:40, 06:45, 11:30, 17:00, 18:31, 20:44
  • →  Executive AC 02:40, 06:45, 11:30, 12:50, 13:27, 17:00, 18:31, 20:44, 23:30
  • →  Economy CC 02:40, 06:45, 11:30, 17:00, 18:31, 20:44
  • →  Economy CD 02:40, 06:45, 11:30, 17:00, 18:31, 20:44
  • →  Executive AB 20:44
  • →  Executive AD 20:44
  • →  Compartment Suites Executive A 12:50, 23:30
  • →  Compartment Suites Executive AA 12:50, 23:30
  • →  Compartment Suites Executive AB 12:50, 23:30
  • →  Compartment Suites Executive AC 12:50, 23:30
  • →  Compartment Suites Executive H 12:50, 23:30
  • →  Compartment Suites Executive I 12:50, 23:30
  • →  Compartment Suites Executive J 12:50, 23:30

Frequently Asked Questions

How can I book tickets from Yogyakarta to Surabaya?

Use the booking tool on this page to compare the transport options currently available from Yogyakarta to Surabaya, including current prices and schedules.

What is the cheapest way to get from Yogyakarta to Surabaya?

The cheapest way is usually an Economy bus or an Economy train, with fares from roughly $5 to $6 per person (indicative, as of October 2026). Prices vary by operator and date.

What is the fastest way to get from Yogyakarta to Surabaya?

The fastest way is the train. The quickest Executive services can take as little as 3 hours 48 minutes, and the Sancaka takes about four hours. This is considerably faster than the bus.

How long does it take to get from Yogyakarta to Surabaya?

By train the journey takes roughly 3 hours 48 minutes to 5 hours. By bus it usually takes around 6 to 8 hours, depending on traffic and the route.

Are there luxury travel options available for this route?

The top classes on this route are Executive and Premium Economy trains, which offer reclining seats and more legroom. KAI's Compartment Suite and Luxury cars are not normally part of the Yogyakarta to Surabaya services. Some bus operators offer Luxury coaches with wider seats.

Is food available during the journey?

Many trains have a dining car, and crew often sell snacks, rice dishes and drinks, though availability varies by train. Most long-distance buses make a scheduled stop at a rest area with food stalls.

Do I need to print my ticket before arriving at the station?

Usually not. After booking you receive a booking code and an e-ticket, and you will need ID matching the booking. Check KAI's current check-in rules for your station before you travel, because procedures can change.

Sources and background

Numbers in the text such as [1] refer to these sources.

  1. [1] PT Kereta Api Indonesia (KAI): Kereta Antar Kota (Intercity trains: Economy, Executive, Luxury, Compartment Suite classes and onboard facilities). Retrieved October 14, 2026.
  2. [2] PT Kereta Api Indonesia (KAI), official customer service account: KAI 121 customer service: Premium Economy sets on Yogyakarta-Surabaya Gubeng (Sancaka, Wijayakusuma, Mutiara Selatan), 2-2 seating. Retrieved October 14, 2026.

Guide prices and journey times are indicative, not live quotes. A booked package may include transfers and waiting time as well as the main journey. Check the selected offer, pickup point and current conditions before booking.