- Must visit
Museum Sepuluh Nopember
A city museum beneath Tugu Pahlawan presenting Surabaya’s role in the independence struggle through dioramas, archives, and wartime objects.
The best way to find a cheap coach ticket from Jakarta to Surabaya is to book your journey as far in advance as possible and to avoid travelling at rush hour.
The average ticket from Jakarta to Surabaya will cost around £18 if you buy it on the day, but you can find cheap coach tickets today for only £16.
On Mon 02 Nov, we found 57 buses from Jakarta to Surabaya, including 57 direct services.
These direct buses cover the 662 km distance in an average of 10 h 59 m but if you time it right, some buses will get you there in just 10 h 59 m .
The slowest buses will take 10 h 59 m and usually involve a change or two along the way, but you might be able to save a few pennies if you’re on a budget.
KRAMAT DJATI
|
| ||||||||||||
KRAMAT DJATI
|
| ||||||||||||
KRAMAT DJATI
|
| ||||||||||||
KRAMAT DJATI
|
| ||||||||||||
KRAMAT DJATI
|
| ||||||||||||
HARAPAN JAYA
|
| ||||||||||||
HARAPAN JAYA
|
| ||||||||||||
HARAPAN JAYA
|
| ||||||||||||
HARAPAN JAYA
|
| ||||||||||||
HARAPAN JAYA
|
| ||||||||||||
Buses from Jakarta to Surabaya run on average 47 times per day, taking around 13h 6m. Cheap bus tickets for this journey start at £11 if you book in advance.
There are 47 coaches per day. The earliest coach runs at 03:30, the last at 22:00. The fastest coach covers the 662 km distance in 10h 59m.
Distance 662 km |
Average bus duration 13h 6m |
Cheapest ticket price £11 |
Buses per day 47 |
Direct buses 47 |
Fastest bus 10h 59m |
First bus 3:30 |
Last bus 22:00 |
Cheapest Month Dec |
Cheapest Day Sun |
High Season Jul - Sept |
Low Season Oct - Dec |
Busiest Day Thu |
Least Busy Day Thu |
Best time to book 6 days |
Use these quick route answers to check fares, travel time, departure options, and direct services before booking from Jakarta to Surabaya.
The table below shows live departures for Jakarta to Surabaya coaches for today, Sunday 1 November. You can also manually refresh the results below to see updated coach journeys.
| Provider | Departs | Duration | Arrives | Changes | Tickets |
|---|---|---|---|---|---|
HARAPAN JAYA | 13:45 Jakarta, Ampera | 10h59 | 0:44 Waru, Bus Terminal Purabaya/Bungurasih | 0 changesdirect | |
HARAPAN JAYA | 13:45 Jakarta, Ampera | 10h59 | 0:44 Waru, Medaeng | 0 changesdirect | |
HARAPAN JAYA | 14:00 Jakarta, Pintu Bus Terminal Pulo Gebang | 13h00 | 3:00 Waru, Medaeng | 0 changesdirect | |
HARAPAN JAYA | 14:00 Jakarta, Bus Terminal Kalideres | 13h00 | 3:00 Waru, Medaeng | 0 changesdirect | |
HARAPAN JAYA | 14:00 Jakarta, Bus Terminal Kalideres | 13h00 | 3:00 Waru, Bus Terminal Purabaya/Bungurasih | 0 changesdirect | |
HARAPAN JAYA | 14:15 Jakarta, Cengkareng | 13h00 | 3:15 Waru, Medaeng | 0 changesdirect | |
HARAPAN JAYA | 14:15 Jakarta, Cengkareng | 12h00 | 2:15 Waru, Bus Terminal Purabaya/Bungurasih | 0 changesdirect | |
HARAPAN JAYA | 14:30 Jakarta, Taman Kota | 13h00 | 3:30 Waru, Bus Terminal Purabaya/Bungurasih | 0 changesdirect | |
HARAPAN JAYA | 14:30 Jakarta, Taman Kota | 13h00 | 3:30 Waru, Medaeng | 0 changesdirect | |
HARAPAN JAYA | 14:45 Jakarta, Grogol | 10h59 | 1:44 Waru, Medaeng | 0 changesdirect | |
HARAPAN JAYA | 14:45 Jakarta, Grogol | 10h59 | 1:44 Waru, Bus Terminal Purabaya/Bungurasih | 0 changesdirect | |
KRAMAT DJATI | 15:30 Jakarta, Cililitan | 20h55 | 12:25 Surabaya, Arjuna | 0 changesdirect | |
KRAMAT DJATI | 15:30 Jakarta, Cililitan | 20h15 | 11:45 Waru, Bus Terminal Purabaya/Bungurasih | 0 changesdirect | |
TIARA MAS | 15:30 Jakarta, Bus Terminal Kalideres | 12h56 | 4:26 Waru, Bus Terminal Purabaya/Bungurasih | 0 changesdirect | |
HARAPAN JAYA | 16:00 Jakarta, Lebak Bulus | 13h00 | 5:00 Waru, Medaeng | 0 changesdirect | |
HARAPAN JAYA | 16:00 Jakarta, Pondok Pinang | 13h00 | 5:00 Waru, Medaeng | 0 changesdirect | |
KRAMAT DJATI | 16:00 Jakarta, Pintu Bus Terminal Pulo Gebang | 19h34 | 11:34 Waru, Bus Terminal Purabaya/Bungurasih | 0 changesdirect | |
KRAMAT DJATI | 16:00 Jakarta, Pintu Bus Terminal Pulo Gebang | 20h15 | 12:15 Surabaya, Arjuna | 0 changesdirect | |
HARAPAN JAYA | 16:30 Jakarta, Pasar Rebo | 13h00 | 5:30 Waru, Medaeng | 0 changesdirect | |
HARAPAN JAYA | 16:30 Jakarta, Bus Terminal Kampung Rambutan | 13h00 | 5:30 Waru, Medaeng | 0 changesdirect | |
MAWAR | 16:30 Jakarta, Bus Terminal Kalideres | 12h56 | 5:26 Waru, Bus Terminal Purabaya/Bungurasih | 0 changesdirect | |
TIARA MAS | 16:30 Jakarta, Bus Terminal Lebak Bulus | 12h44 | 5:14 Waru, Bus Terminal Purabaya/Bungurasih | 0 changesdirect | |
HARAPAN JAYA | 16:45 Jakarta, Pasar Rebo | 13h00 | 5:45 Waru, Medaeng | 0 changesdirect | |
HARAPAN JAYA | 17:00 Jakarta, Pintu Bus Terminal Pulo Gebang | 13h00 | 6:00 Waru, Medaeng | 0 changesdirect | |
MAWAR | 17:00 Jakarta, Bus Terminal Grogol | 12h24 | 5:24 Waru, Bus Terminal Purabaya/Bungurasih | 0 changesdirect | |
HARAPAN JAYA | 17:00 Jakarta, Ampera | 10h59 | 3:59 Waru, Bus Terminal Purabaya/Bungurasih | 0 changesdirect | |
HARAPAN JAYA | 17:00 Jakarta, Ampera | 10h59 | 3:59 Waru, Medaeng | 0 changesdirect | |
HARAPAN JAYA | 17:30 Jakarta, Lebak Bulus | 13h00 | 6:30 Waru, Medaeng | 0 changesdirect | |
HARAPAN JAYA | 17:30 Jakarta, Pondok Pinang | 13h00 | 6:30 Waru, Medaeng | 0 changesdirect | |
HARAPAN JAYA | 17:30 Jakarta, Bus Terminal Kalideres | 13h00 | 6:30 Waru, Bus Terminal Purabaya/Bungurasih | 0 changesdirect | |
HARAPAN JAYA | 17:30 Jakarta, Bus Terminal Kalideres | 13h00 | 6:30 Waru, Medaeng | 0 changesdirect | |
HARAPAN JAYA | 17:45 Jakarta, Taman Kota | 13h00 | 6:45 Waru, Bus Terminal Purabaya/Bungurasih | 0 changesdirect | |
HARAPAN JAYA | 17:45 Jakarta, Taman Kota | 13h00 | 6:45 Waru, Medaeng | 0 changesdirect | |
HARAPAN JAYA | 18:00 Jakarta, Pasar Rebo | 13h00 | 7:00 Waru, Medaeng | 0 changesdirect | |
HARAPAN JAYA | 18:00 Bus Terminal Tanjung Priok, Jakarta Utara | 10h59 | 4:59 Waru, Bus Terminal Purabaya/Bungurasih | 0 changesdirect | |
HARAPAN JAYA | 18:00 Bus Terminal Tanjung Priok, Jakarta Utara | 13h30 | 7:30 Waru, Medaeng | 0 changesdirect | |
HARAPAN JAYA | 18:30 Jakarta, Pintu Bus Terminal Pulo Gebang | 13h00 | 7:30 Waru, Medaeng | 0 changesdirect | |
MAWAR | 18:30 Bus Terminal Tanjung Priok, Jakarta Utara | 12h28 | 6:58 Waru, Bus Terminal Purabaya/Bungurasih | 0 changesdirect | |
HARAPAN JAYA | 18:30 Jakarta, Grogol | 10h59 | 5:29 Waru, Medaeng | 0 changesdirect | |
HARAPAN JAYA | 18:30 Jakarta, Pintu Bus Terminal Pulo Gebang | 13h00 | 7:30 Waru, Bus Terminal Purabaya/Bungurasih | 0 changesdirect | |
HARAPAN JAYA | 18:30 Jakarta, Grogol | 10h59 | 5:29 Waru, Bus Terminal Purabaya/Bungurasih | 0 changesdirect | |
MAWAR | 19:30 Jakarta, Pintu Bus Terminal Pulo Gebang | 12h06 | 7:36 Waru, Bus Terminal Purabaya/Bungurasih | 0 changesdirect | |
| Monday 2 November | |||||
HARAPAN JAYA | 6:00 Jakarta, Ampera | 10h59 | 16:59 Waru, Medaeng | 0 changesdirect | |
HARAPAN JAYA | 6:15 Jakarta, Bus Terminal Kalideres | 13h00 | 19:15 Waru, Medaeng | 0 changesdirect | |
HARAPAN JAYA | 6:20 Jakarta, Cengkareng | 13h00 | 19:20 Waru, Medaeng | 0 changesdirect | |
HARAPAN JAYA | 6:30 Jakarta, Taman Kota | 13h00 | 19:30 Waru, Medaeng | 0 changesdirect | |
HARAPAN JAYA | 6:40 Jakarta, Grogol | 10h59 | 17:39 Waru, Medaeng | 0 changesdirect | |
KRAMAT DJATI | 7:30 Jakarta, Bus Terminal Kampung Rambutan | 15h31 | 23:01 Waru, Bus Terminal Purabaya/Bungurasih | 0 changesdirect | |
KRAMAT DJATI | 8:00 Jakarta, Cililitan | 14h51 | 22:51 Waru, Bus Terminal Purabaya/Bungurasih | 0 changesdirect | |
KRAMAT DJATI | 9:00 Jakarta, Pintu Bus Terminal Pulo Gebang | 13h30 | 22:30 Waru, Bus Terminal Purabaya/Bungurasih | 0 changesdirect | |
0 | 11:35 Jakarta | 13h25 | 1:00 Surabaya | 0 changesdirect | |
HARAPAN JAYA | 13:00 Jakarta, Pondok Pinang | 13h00 | 2:00 Waru, Medaeng | 0 changesdirect | |
HARAPAN JAYA | 13:00 Jakarta, Lebak Bulus | 13h00 | 2:00 Waru, Medaeng | 0 changesdirect | |
HARAPAN JAYA | 13:30 Jakarta, Pasar Rebo | 13h00 | 2:30 Waru, Medaeng | 0 changesdirect | |
This is the last bus of the day. | |||||
Find all the dates and times for this journey
Review the details behind your booking, from operators and ticket rules to luggage, onboard amenities, accessibility, and route-specific travel policies.
Discover the best of Surabaya — top attractions, local food, transport tips, budget advice, and currency essentials. Plan your perfect Surabaya trip today.
A city museum beneath Tugu Pahlawan presenting Surabaya’s role in the independence struggle through dioramas, archives, and wartime objects.
A compact museum in the House of Sampoerna complex showing clove cigarette history, family heritage, and preserved colonial interiors.
An art museum in a preserved colonial building displaying Indonesian paintings, sculpture, and temporary exhibitions in an atmospheric setting.
Surabaya’s restored Old Town quarter features colonial façades, heritage streets, and photogenic corners that are best explored on foot.
A waterfront public park with the Suro and Boyo statues. Come for river views, evening strolls, and one of the city’s best-known photo spots.
A central civic square beside the governor’s office, popular for walking, people-watching, and seeing an important colonial-era urban setting.
A rich black beef soup flavoured with keluak nuts. It is one of East Java’s signature dishes and a classic Surabaya comfort food.
Beef stew with a sweet, spicy petis-based sauce, usually served with bean sprouts and rice cake. It is a long-standing Surabaya speciality.
Sliced cow muzzle and vegetables in a dark fermented shrimp paste sauce. This unusual mix is closely associated with Surabaya’s food heritage.
Polished restaurant in Hotel Majapahit serving Indonesian and colonial-era dishes in an elegant heritage setting.
Historic casual eatery famed for rawon, offering a simple traditional setting and one of Surabaya’s best-known local dining experiences.
Well-known traditional venue specialising in lontong balap, served in a straightforward, classic Surabaya style.
Surabaya is budget-friendly for most travellers, with low food and local transport costs and good-value hotels compared with many major Asian city breaks.
Tipping is not compulsory. Restaurants may add service; otherwise round up or leave 5-10%. Round up taxi fares, and small tips in cafés are appreciated.
Official public transport app
Terminal Penumpang Tanjung Perak -> Tunjungan Plaza, Surabaya
Find answers to the most common questions about traveling from Jakarta to Surabaya by coach. From journey times and ticket prices to direct connections, first and last departures, and even whether the route is scenic, our FAQs cover everything you need to plan your trip. Whether you’re looking for the fastest coach, the cheapest option, or tips for making the most of your visit at Surabaya, this guide helps you travel smarter and with confidence.

Most Jakarta to Surabaya buses use the Jakarta, Pintu Terminal Pulo Gebang to Waru, Terminal Purabaya/Bungurasih station pair, with some services arriving at Waru, Medaeng. Use this guide to compare Jakarta and Surabaya bus stations on this route, check city-centre transport, alongside checking practicalities like bus station facilities and services.
Jakarta, Pintu Terminal Pulo Gebang is 11 km from Jakarta city centre. Public transport options include:
Jakarta, Pintu Terminal Pulo Gebang has practical services for this route, including Wifi, Parking, Dining, ATM, Taxis, Accessibility, WC and Ticket Office.
Food options include: Food court and various food stalls available
Free Wi-Fi in terminal building. ATMs are several ATMs from different banks.
Ticket office support is available at Jakarta, Pintu Terminal Pulo Gebang.
Available at Jakarta, Pintu Terminal Pulo Gebang: Parking, Taxis, WC.
Accessibility facilities are available at Jakarta, Pintu Terminal Pulo Gebang: Wheelchair ramps, dedicated assistance.
Jakarta, Terminal Kalideres is 16 km from Jakarta city centre. Public transport options include:
Jakarta, Terminal Kalideres has practical services for this route, including Wifi, Parking, Dining, ATM, Taxis, Accessibility, WC and Ticket Office.
Food options include: Food stalls and small restaurants available in and around terminal
Free Wi-Fi available. ATMs are aTMs from several banks available.
Ticket office support is available at Jakarta, Terminal Kalideres.
Available at Jakarta, Terminal Kalideres: Parking, Taxis, WC.
Accessibility facilities are available at Jakarta, Terminal Kalideres: Ramps available.
Jakarta, Grogol is 8 km from Jakarta city centre. Public transport options include:
Jakarta, Grogol has practical services for this route, including Parking, Dining, ATM, Taxis, Accessibility, WC and Ticket Office.
Food options include: Local food stalls and small restaurants nearby
ATMs are several ATMs from major banks nearby.
Ticket office support is available at Jakarta, Grogol.
Available at Jakarta, Grogol: Parking, Taxis, WC.
Accessibility facilities are available at Jakarta, Grogol: Basic ramps available.
Waru, Medaeng is 1 km from Surabaya city centre. Public transport options include:
Waru, Medaeng has practical services for this route, including Wifi, Parking, ATM, Taxis, Accessibility, WC, Shower and Ticket Office.
Wi-Fi is available at Waru, Medaeng. ATMs are available at Waru, Medaeng.
Ticket office support is available at Waru, Medaeng.
Available at Waru, Medaeng: Parking, Taxis, WC.
Accessibility facilities are available at Waru, Medaeng: Limited accessibility options.
Waru, Terminal Purabaya/Bungurasih is 1 km from Surabaya city centre. Public transport options include:
Waru, Terminal Purabaya/Bungurasih has practical services for this route, including Wifi, Parking, Dining, ATM, Taxis, Accessibility, WC and Ticket Office.
Food options include: Food court and various food stalls available
Free Wi-Fi available in terminal. ATMs are several ATMs from different banks.
Ticket office support is available at Waru, Terminal Purabaya/Bungurasih.
Available at Waru, Terminal Purabaya/Bungurasih: Parking, Taxis, WC.
Accessibility facilities are available at Waru, Terminal Purabaya/Bungurasih: Wheelchair ramps, assistance available.
Surabaya, Arjuna is 3 km from Surabaya city centre. Public transport options include:
Surabaya, Arjuna has practical services for this route, including Wifi, Parking, ATM, Taxis, Accessibility, WC, Shower and Ticket Office.
Wi-Fi is available at Surabaya, Arjuna. ATMs are available at Surabaya, Arjuna.
Ticket office support is available at Surabaya, Arjuna.
Available at Surabaya, Arjuna: Parking, Taxis, WC.
Accessibility facilities are available at Surabaya, Arjuna: Basic accessibility features available.
Check bus stations information for Jakarta and Surabaya, including where buses depart and arrive on this route.
Here are some other resources that might have the information you need