GoAsia
Indonesia

How to Get from Surakarta to Surabaya

Find the best way to travel from Surakarta to Surabaya. Compare train and bus prices, travel times, and comfort levels for your trip.

Last updated: November 5, 2026

How to Get from Surakarta to Surabaya
Contents

Leaving the royal heritage and slow-paced charm of Surakarta - often called Solo - for the bustling, industrial energy of Surabaya is a journey into the heart of East Java. While Solo feels like a city rooted in Javanese tradition and quiet elegance, Surabaya greets you with the roar of a modern metropolis and the salty breeze of a major port city. This route is a backbone of Javanese commerce and tourism, connecting the cultural soul of the island with its economic powerhouse.

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.

The landscape between these two cities transitions from the volcanic foothills surrounding Solo to the flat, fertile plains that lead toward the coast. Whether you are traveling for business or seeking the gateway to Mount Bromo, the connection is efficient and well-served. You can easily compare schedules and book your tickets for this route on GoAsia.cc to ensure a smooth transition between these two distinct Javanese worlds.

Surakarta to Surabaya by Train

The train is arguably the most atmospheric and efficient way to cross the distance. Trains run on the Indonesian rail network (KAI) in a range of classes for every budget. The journey takes about 3 hours 27 minutes to 4 hours 35 minutes, which makes it faster than the road on most days. On booking platforms, train tickets cost about $6 to $38 (November 2026), depending on class.[1]

Executive Class Options

For those seeking the highest level of comfort, the Executive classes (AA, AB, AC, AD, and A) offer reclining seats, ample legroom, and air conditioning that is often quite powerful. These carriages provide a quiet environment, perfect for watching the rice paddies and small villages flash by the large windows. It is a good choice if you have heavy luggage or want to arrive in Surabaya feeling refreshed.

Economy Class Options

The Economy classes (C, CA, CB, CC, and CD) provide a more social and budget-friendly experience. Modern Indonesian economy trains are a far cry from the crowded benches of the past; they are clean, air-conditioned, and feature individual seats, though they are more upright and have less legroom than Executive class. It is a fantastic way to travel like a local and witness the daily life of East Java at a very low cost, with tickets from about $6.

Surakarta to Surabaya by Bus

Buses offer a flexible alternative, particularly for travelers who prefer different departure points or are looking for the absolute lowest price. The bus journey takes from about 4 hours 30 minutes to 6 hours 21 minutes. On booking platforms, tickets cost about $5 to $23 (November 2026), depending on the operator and the level of service.[1]

Executive and Premium Services

The Executive and Premium seat buses are designed for comfort on the highway. These buses typically feature reclining seats, snacks, and sometimes even onboard toilets. Check the operator's own page for the departure that suits your day.

Economy Bus

The Economy bus is the most basic way to travel. While it is the cheapest option available, starting at just $5, it is generally less comfortable than the train or the higher-tier buses. It is best suited for backpackers on a strict budget or those who enjoy the raw experience of local road travel in Indonesia.

Comparing Your Options

ModePrice (USD)DurationComfort
Train (Executive)Up to about $38[1]From about 3h 27mHigh
Train (Economy)From about $6[1]About 3h 30m - 4h 35mMedium
BusAbout $5 - $23[1]About 4h 30m - 6h 21mMedium

Tips for Traveling from Surakarta to Surabaya

  • Book in Advance: Trains between Solo and Surabaya are extremely popular, especially on weekends and public holidays. It is wise to secure your seat at least a few days before departure.
  • Check the Station: Solo Balapan is the main station in Surakarta. Check which station your ticket names before you leave.
  • Bring a Jacket: Indonesian trains and buses are known for strong air conditioning, so keep a light jacket within reach.
  • Arrival in Surabaya: Trains arrive at Surabaya Gubeng or Surabaya Pasar Turi. Gubeng is close to the city center and most hotels, so check which station your ticket names.
  • Snacks and Water: Bring your own water and a few snacks for the journey.

Timetable

Bus Surakarta - Surabaya $ 4.68–22.99 4h 30m – 6h 21m
  • →  Economy 15:00
  • →  Executive 00:20
Train Surakarta - Surabaya $ 5.77–37.93 3h 27m – 4h 35m
  • →  Economy C 07:54, 10:23, 18:04, 19:47, 20:19
  • →  Economy CB 10:23, 19:47, 20:19
  • →  Executive AA 10:23, 19:47
  • →  Economy CA 10:23, 19:47, 20:19
  • →  Executive AC 10:23, 19:47
  • →  Economy CC 10:23, 19:47, 20:19
  • →  Economy CD 10:23, 19:47, 20:19
  • →  Executive A 19:47
  • →  Executive AB 10:23, 19:47
  • →  Executive AD 10:23, 19:47
Bus Surabaya - Surabaya $ 10.31 3h 40m – 5h 15m
  • →  Premium seat 04:45, 05:15, 06:15, 07:00, 07:30, 07:55, 08:15, 09:15, 10:30, 11:15, 11:45, 13:15, 14:15, 15:15, 16:15, 17:15, 17:45, 18:45, 20:00, 20:15, 20:45, 21:45, 22:15, 22:45, 23:45
  • ←  Premium seat 04:45, 05:15, 05:20, 06:15, 07:00, 07:30, 07:55, 08:15, 09:15, 09:30, 10:30, 11:15, 11:45, 12:00, 13:15, 13:30, 14:15, 15:15, 16:15, 16:30, 17:15, 17:45, 18:00, 18:15, 18:30, 18:45, 19:00, 20:00, 20:15, 20:30, 20:45, 21:30, 21:45, 22:15, 22:45, 23:00, 23:45
  • ←  Bus 00:15

Frequently Asked Questions

How can I book tickets from Surakarta to Surabaya?

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

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

The Economy train, from about $6 on booking platforms (November 2026), or a bus from about $5.

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

The train, which takes from about 3 hours 27 minutes.

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

About 3 hours 27 minutes to 4 hours 35 minutes by train, and about 4 hours 30 minutes to 6 hours 21 minutes by bus, depending on traffic and the service.

Are the trains in Indonesia comfortable?

Yes, Indonesian trains are generally very comfortable and well-maintained. Executive class offers the most space and reclining seats, while the modern Economy classes are clean and air-conditioned.

Do I need to book my tickets in advance?

It is highly recommended to book in advance, especially for trains. Routes across Java are busy year-round, and popular departure times can sell out days before the trip.

Is the road journey scenic?

The bus journey follows the Trans-Java Toll Road for much of the way, which is efficient but less scenic. The train route offers better views of traditional Javanese agriculture and rural landscapes.

Sources and background

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

  1. [1] 12Go: 12Go timetable: Surakarta to Surabaya. Retrieved November 5, 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.