Jakarta to Surabaya Bus

Jakarta to Surabaya Surabaya to Jakarta

Jakarta to Surabaya Route Summary

Jakarta to Surabaya bus is a popular way of traveling. There are up to 78 daily bus departures available, including 75 night buses. The earliest bus departs from Jakarta bus station at 05:45h, arriving at Surabaya bus station at 19:30h the same day. While latest bus departs at 22:00h, arriving at 12:00h the following day.
Departure station and country JakartaIndonesia
Arrival station and country SurabayaIndonesia
Travel Distance 487 mi
Average Trip Duration 14h 00min
Total Departures 78
Popular Operators Lorena Transport, Kramat Djati Jakarta
Lowest Price $21
Transportation Options Bus



Getting from Jakarta and Surabaya by bus

The shortest travel distance between Jakarta and Surabaya is 487 mi. The fastest bus which departs at 16:00 has a travel time of 08:30h. The longest travel time on the route is 19:30h. Depending on the selected departure, the following amenities are available: air condition, wifi and toilet. You can book tickets in advance to secure your seat, especially during peak travel times.

Overnight buses

If you want to travel overnight and save money on accommodation or arrive in Surabaya earlier, there are over 50 night buses from Jakarta to Surabaya. The overnight buses depart between 11:00 and 22:00 and arrive between 00:10 and 14:00 the same day. Below are the most popular night departures to Surabaya:
Timetable: TODAY TOMORROW

Bus companies operating the Jakarta to Surabaya route

There is a total of 8 bus companies operating the route. These bus companies have not been rated yet by travelers. Here you can see the list of the most popular bus companies operating this route.

Kramat Djati Jakarta
Pahala Kencana
DAMRI
10 Juragan 99
2.5 Wafaa Holiday
KYM Trans
Semeru Trans

Departure and arrival stations

For more details about Jakarta or Surabaya bus stations, including general information, and other popular routes, you can check the links below.
Map overlay

  Jakarta

You can see information about the departure station and stops Jakarta here

Map overlay

  Surabaya

You can see information about the arrival station and stops Surabaya here


Cheapest tickets

Budget-friendly tickets are listed below, depending on availability.
Adult ticket: $21 (One-Way) or $42 (Return).

Travel reviews for Jakarta to Surabaya bus

If you've traveled from Jakarta to Surabaya, and you want to share your experience, leave a review for the route and let us know what part of your journey was the best, and what needs improvement. These reviews were originally written under our old names, GetByBus and GetByFerry. But don’t worry — it’s all us! Same company, same trusted partners, just with a new vibe as Traveling.com.


Other popular destinations from Surabaya

If you're looking for inspiration as to where to travel next once you've reached Surabaya, here is the list of the most popular travel routes that our clients have previously purchased their tickets for:


Frequently asked questions

What is the distance between Jakarta and Surabaya?
What is the average travel time between Jakarta and Surabaya?
What is the ticket price for the journey from Jakarta to Surabaya?
How many daily departures are there from Jakarta to Surabaya?
Are all the buses direct on the route from Jakarta to Surabaya?
What are the amenities available on the buses departing from Jakarta to Surabaya?

To have all the information in the palm of your hand download our mobile app for free!

Latest tickets bought

Traveling.com guides

Latest blog posts

Latest reviews

GetByAps twitter twitterX linkedin instagram facebook pinterest tiktok youTubePlay fax dinersCard maestroCard mastercard safety group faq printer mTicketQr arrowIcon iconChevronDown thumbsUp exclamationCircle download directions clock calendarCheck accommodation mailAlert questionCircleFull gpsIcon locationMark ferryIcon busIcon star locationPin phone email signpost unesco starFull verifiedBadge star ticketsIco reviewsIco guidesIco newsIco sightPin globe ticket flexCancelIcon thumbsDownIcon thumbsUpIcon