Cheap flights from Jakarta to Surabaya

261 nonstop flights a week. Operated by 5 airlines, about 1h 30m in the air, 412 mi (663 km). Tickets from $48.

Flights from Jakarta to Surabaya

Pick a departure date to see flights and seller prices

We search agencies and airlines for your day: nonstop and connecting flights, baggage, departure and arrival times.

Filters

Jakarta to Surabaya at a glance

flight time, from 1h 25m to 2h
1h 30m
straight-line distance
412 mi (663 km)
flights a week
261
next flight
10 November
first and last departure
03:30 - 21:00
lowest price, nonstop, 26 December
$48
airlines
5

Jakarta to Surabaya flight schedule

261 flights a week, 3 seasonal or one-off. Departure and arrival times are local.

FlightDepartsArrivesDurationDaysAircraft
JT 690
Lion Air
03:30 Soekarno-Hatta International, terminal 1
05:00 Juanda International, terminal 1
1h 30m
Daily
Boeing 737-900
ID 7511
Batik Air
05:25 Halim Perdanakusuma
06:50 Juanda International, terminal 1
1h 25m
Daily
Airbus A320
ID 6572
Batik Air
06:00 Soekarno-Hatta International, terminal 2
07:30 Juanda International, terminal 1
1h 30m
Daily
Airbus A320
QG 738
Citilink
06:05 Soekarno-Hatta International, terminal 1
07:45 Juanda International, terminal 1
1h 40m
Daily
Airbus A320
GA 304
Garuda Indonesia
06:50 Soekarno-Hatta International, terminal 3
08:30 Juanda International, terminal 1
1h 40m
Daily
Boeing 737-800
QG 178
Citilink
07:05 Halim Perdanakusuma
08:35 Juanda International, terminal 1
1h 30m
Tue, Thu, Sat
Airbus A320
GA 302
Garuda Indonesia
07:50 Soekarno-Hatta International, terminal 3
09:30 Juanda International, terminal 1
1h 40m
Daily
Boeing 737-800
ID 6584
Batik Air
08:00 Soekarno-Hatta International, terminal 2
09:30 Juanda International, terminal 1
1h 30m
Daily
Boeing 737-800
QG 722
Citilink
08:15 Soekarno-Hatta International, terminal 1
09:55 Juanda International, terminal 1
1h 40m
Mon, Thu, Fri, Sun
Airbus A320
GA 322
Garuda Indonesia
08:50 Soekarno-Hatta International, terminal 3
10:25 Juanda International, terminal 1
1h 35m
Daily
Boeing 737-800
ID 7513
Batik Air
08:50 Halim Perdanakusuma
10:15 Juanda International, terminal 1
1h 25m
Daily
Airbus A320
JT 241
Lion Air
09:05 Soekarno-Hatta International, terminal 1
10:35 Juanda International, terminal 1
1h 30m
Daily
Boeing 737-900
JT 694
Lion Air
09:05 Soekarno-Hatta International, terminal 1
10:35 Juanda International, terminal 1
1h 30m
Daily
Boeing 737-800
QG 718
Citilink
09:15 Soekarno-Hatta International, terminal 1
10:55 Juanda International, terminal 1
1h 40m
Daily
Airbus A320
ID 7517
Batik Air
09:30 Halim Perdanakusuma
10:55 Juanda International, terminal 1
1h 25m
Daily
Airbus A320
QG 736
Citilink
11:50 Soekarno-Hatta International, terminal 1
13:30 Juanda International, terminal 1
1h 40m
Daily
Airbus A320
GA 312
Garuda Indonesia
12:10 Soekarno-Hatta International, terminal 3
13:50 Juanda International, terminal 1
1h 40m
Daily
Boeing 737-800
QG 176
Citilink
12:30 Halim Perdanakusuma
14:00 Juanda International, terminal 1
1h 30m
Daily
Airbus A320
ID 6406
Batik Air
13:30 Soekarno-Hatta International, terminal 2
15:00 Juanda International, terminal 1
1h 30m
Daily
Airbus A320
GA 310
Garuda Indonesia
13:35 Soekarno-Hatta International, terminal 3
15:15 Juanda International, terminal 1
1h 40m
Daily
Boeing 737-800
ID 7501
Batik Air
13:35 Halim Perdanakusuma
15:00 Juanda International, terminal 1
1h 25m
Daily
Airbus A320
GA 326
Garuda Indonesia
14:35 Soekarno-Hatta International, terminal 3
16:15 Juanda International, terminal 1
1h 40m
Daily
Boeing 737-800
QG 716
Citilink
15:00 Soekarno-Hatta International, terminal 1
16:40 Juanda International, terminal 1
1h 40m
Daily
Airbus A320
JT 171
Lion Air
15:05 Soekarno-Hatta International, terminal 1
16:35 Juanda International, terminal 1
1h 30m
Daily
Boeing 737-900
JT 692
Lion Air
15:05 Soekarno-Hatta International, terminal 1
16:35 Juanda International, terminal 1
1h 30m
Daily
Boeing 737-900
ID 7515
Batik Air
15:50 Halim Perdanakusuma
17:15 Juanda International, terminal 1
1h 25m
Daily
Airbus A320
ID 6578
Batik Air
16:00 Soekarno-Hatta International, terminal 2
17:30 Juanda International, terminal 1
1h 30m
Daily
Airbus A320
ID 6711
Batik Air
16:00 Soekarno-Hatta International, terminal 2
17:30 Juanda International, terminal 1
1h 30m
Daily
Airbus A320
ID 7503
Batik Air
16:35 Halim Perdanakusuma
18:00 Juanda International, terminal 1
1h 25m
Tue, Wed, Thu, Fri
Airbus A320
QG 174
Citilink
16:35 Soekarno-Hatta International, terminal 1
18:15 Juanda International, terminal 1
1h 40m
Tue, Wed, Thu, Fri, Sat, Sun
Airbus A320
GA 320
Garuda Indonesia
16:40 Soekarno-Hatta International, terminal 3
18:20 Juanda International, terminal 1
1h 40m
Daily
Boeing 737-800
ID 6576
Batik Air
17:00 Soekarno-Hatta International, terminal 2
18:30 Juanda International, terminal 1
1h 30m
Daily
Airbus A320
IU 320
Super Air Jet
18:30 Soekarno-Hatta International, terminal 2
20:00 Juanda International
1h 30m
Daily
Airbus A320
QG 172
Citilink
19:15 Halim Perdanakusuma
20:45 Juanda International, terminal 1
1h 30m
Tue, Wed, Thu, Fri, Sat, Sun
Airbus A320
QG 726
Citilink
19:35 Soekarno-Hatta International, terminal 1
21:15 Juanda International, terminal 1
1h 40m
Daily
Airbus A320
ID 6588
Batik Air
20:00 Soekarno-Hatta International, terminal 2
21:30 Juanda International, terminal 1
1h 30m
Daily
Airbus A320
GA 324
Garuda Indonesia
20:10 Soekarno-Hatta International, terminal 3
21:50 Juanda International, terminal 1
1h 40m
Daily
Boeing 737-800
ID 7521
Batik Air
20:15 Halim Perdanakusuma
21:40 Juanda International, terminal 1
1h 25m
Daily
Airbus A320
QG 728
Citilink
21:00 Soekarno-Hatta International, terminal 1
22:40 Juanda International, terminal 1
1h 40m
Daily
Airbus A320

Seasonal and one-off flights

Not operating in the next two weeks. The first of them is on 7 December.

FlightDepartsArrivesDurationDaysAircraft
ID 6821
Batik Air
20:00 Soekarno-Hatta International, terminal 2
21:30 Juanda International, terminal 1
1h 30m
Seasonal
Airbus A320
GA 320
Garuda Indonesia
16:55 Soekarno-Hatta International, terminal 3
18:35 Juanda International, terminal 1
1h 40m
Seasonal
Airbus A330-300
GA 1023
Garuda Indonesia
08:00 Soekarno-Hatta International, terminal 3
10:00 Juanda International, terminal 1
2h
Selected dates
Airbus A330-300

Days of the week are taken from the schedule for the next 14 days; schedules change by season. The search shows seat availability and the price for your date.

Airlines flying Jakarta to Surabaya

Flights a week by schedule and the cheapest nonstop fare of each airline found by recent searches

Airports

Where flights from Jakarta to Surabaya depart and land

Departure from Jakarta

199 flights a week, terminals 1, 2, 3, 14 mi (23 km) from the city centre

Halim Perdanakusuma closest to the centreHLP

62 flights a week, 5 mi (8 km) from the city centre

Arrival in Surabaya

261 flights a week, terminal 1, 9 mi (14 km) from the city centre

Frequently asked questions

How long is the flight from Jakarta to Surabaya?
A nonstop flight takes 1 hour 30 minutes on average, from 1h 25m to 2h depending on the flight.
How far is Surabaya from Jakarta?
412 mi (663 km) in a straight line between the cities.
Which airlines fly nonstop from Jakarta to Surabaya?
Batik Air (95 a week), Citilink (68 a week), Garuda Indonesia (56 a week), Lion Air (35 a week) and Super Air Jet (7 a week).
How many flights a day are there from Jakarta to Surabaya?
There are 261 a week, about 37.3 a day on average.
When are the first and last flights from Jakarta to Surabaya?
The first departure is at 03:30 (JT690), the last at 21:00 (QG728). Local time.
Which Jakarta airport do flights to Surabaya leave from?
Soekarno-Hatta International (199 a week) and Halim Perdanakusuma (62 a week).