Route Network
Jakarta Soekarno-Hatta Airport connects 93 destinations worldwide, with Bali standing out as its busiest route. The longest nonstop flight is to Amsterdam, and the shortest flight is to Jakarta.
Route and destination data updated July 16, 2026.
Jakarta Soekarno-Hatta Airport is served by 57 airlines, with Batik Air in the lead at 15% of routes. The top three carriers together cover 41% of routes. 29 carriers operate only one route each. A total of 52 airlines operate international routes, compared with 13 airlines serving domestic routes. Garuda Indonesia is operating the longest nonstop flight, connecting to Amsterdam with a flight time of 14 hrs 15 mins.
Jakarta Soekarno-Hatta Airport provides direct service to 25 countries across four continents. The route network is 47% domestic and 53% international. Malaysia is the primary international destination.
Delays
- Departures
- 8 min late
- 2 min (-16.1%) vs last 24 hours
- 24h trend
- Arrivals
- 11 min early
- 2 min (-16%) vs last 24 hours
- 24h trend
- Cancelled Departures
- 196 flights (24 hour total)
Jul 20
2026
15:00 - 16:00
- Departure
- 8 min late8 min late8 minutes late
- Arrival
- 12 min early12 min early12 minutes early
- Cancelled
- 6
Jul 20
2026
14:00 - 15:00
- Departure
- 8 min late8 min late8 minutes late
- Arrival
- 13 min early13 min early13 minutes early
- Cancelled
- 4
Jul 20
2026
13:00 - 14:00
- Departure
- 6 min late6 min late6 minutes late
- Arrival
- 12 min early12 min early12 minutes early
- Cancelled
- 6
Jul 20
2026
12:00 - 13:00
- Departure
- 8 min late8 min late8 minutes late
- Arrival
- 7 min early7 min early7 minutes early
- Cancelled
- 10
Jul 20
2026
11:00 - 12:00
- Departure
- 11 min late11 min late11 minutes late
- Arrival
- 5 min early5 min early5 minutes early
- Cancelled
- 15
Jul 20
2026
10:00 - 11:00
- Departure
- 9 min late9 min late9 minutes late
- Arrival
- 9 min early9 min early9 minutes early
- Cancelled
- 16
Jul 20
2026
09:00 - 10:00
- Departure
- 8 min late8 min late8 minutes late
- Arrival
- 12 min early12 min early12 minutes early
- Cancelled
- 14
Jul 20
2026
08:00 - 09:00
- Departure
- 3 min late3 min late3 minutes late
- Arrival
- 13 min early13 min early13 minutes early
- Cancelled
- 12
Jul 20
2026
07:00 - 08:00
- Departure
- 5 min late5 min late5 minutes late
- Arrival
- 10 min early10 min early10 minutes early
- Cancelled
- 11
Jul 20
2026
06:00 - 07:00
- Departure
- 10 min late10 min late10 minutes late
- Arrival
- 11 min early11 min early11 minutes early
- Cancelled
- 12
Jul 20
2026
05:00 - 06:00
- Departure
- 12 min late12 min late12 minutes late
- Arrival
- 11 min early11 min early11 minutes early
- Cancelled
- 11
Jul 20
2026
04:00 - 05:00
- Departure
- 10 min late10 min late10 minutes late
- Arrival
- 10 min early10 min early10 minutes early
- Cancelled
- 13
Jul 20
2026
03:00 - 04:00
- Departure
- 9 min late9 min late9 minutes late
- Arrival
- 15 min early15 min early15 minutes early
- Cancelled
- 13
Jul 20
2026
02:00 - 03:00
- Departure
- 9 min late9 min late9 minutes late
- Arrival
- 15 min early15 min early15 minutes early
- Cancelled
- 9
Jul 20
2026
01:00 - 02:00
- Departure
- 9 min late9 min late9 minutes late
- Arrival
- 15 min early15 min early15 minutes early
- Cancelled
- 9
Jul 20
2026
00:00 - 01:00
- Departure
- 8 min late8 min late8 minutes late
- Arrival
- 17 min early17 min early17 minutes early
- Cancelled
- 11
Jul 19
2026
23:00 - 00:00
- Departure
- 6 min late6 min late6 minutes late
- Arrival
- 22 min early22 min early22 minutes early
- Cancelled
- 12
Jul 19
2026
22:00 - 23:00
- Departure
- 4 min late4 min late4 minutes late
- Arrival
- 39 min early39 min early39 minutes early
- Cancelled
- 9
Jul 19
2026
20:00 - 21:00
- Departure
- 6 min late6 min late6 minutes late
- Arrival
- 12 min late12 min late12 minutes late
- Cancelled
- 2
Jul 19
2026
18:00 - 19:00
- Departure
- 6 min late6 min late6 minutes late
- Arrival
- 12 min late12 min late12 minutes late
- Cancelled
- 1
| Time | Departure | Arrival | Cancelled |
|---|---|---|---|
|
15:00 - 16:00 |
8 min late8 min late8 minutes late | 12 min early12 min early12 minutes early | 6 |
|
14:00 - 15:00 |
8 min late8 min late8 minutes late | 13 min early13 min early13 minutes early | 4 |
|
13:00 - 14:00 |
6 min late6 min late6 minutes late | 12 min early12 min early12 minutes early | 6 |
|
12:00 - 13:00 |
8 min late8 min late8 minutes late | 7 min early7 min early7 minutes early | 10 |
|
11:00 - 12:00 |
11 min late11 min late11 minutes late | 5 min early5 min early5 minutes early | 15 |
|
10:00 - 11:00 |
9 min late9 min late9 minutes late | 9 min early9 min early9 minutes early | 16 |
|
09:00 - 10:00 |
8 min late8 min late8 minutes late | 12 min early12 min early12 minutes early | 14 |
|
08:00 - 09:00 |
3 min late3 min late3 minutes late | 13 min early13 min early13 minutes early | 12 |
|
07:00 - 08:00 |
5 min late5 min late5 minutes late | 10 min early10 min early10 minutes early | 11 |
|
06:00 - 07:00 |
10 min late10 min late10 minutes late | 11 min early11 min early11 minutes early | 12 |
|
05:00 - 06:00 |
12 min late12 min late12 minutes late | 11 min early11 min early11 minutes early | 11 |
|
04:00 - 05:00 |
10 min late10 min late10 minutes late | 10 min early10 min early10 minutes early | 13 |
|
03:00 - 04:00 |
9 min late9 min late9 minutes late | 15 min early15 min early15 minutes early | 13 |
|
02:00 - 03:00 |
9 min late9 min late9 minutes late | 15 min early15 min early15 minutes early | 9 |
|
01:00 - 02:00 |
9 min late9 min late9 minutes late | 15 min early15 min early15 minutes early | 9 |
|
00:00 - 01:00 |
8 min late8 min late8 minutes late | 17 min early17 min early17 minutes early | 11 |
|
23:00 - 00:00 |
6 min late6 min late6 minutes late | 22 min early22 min early22 minutes early | 12 |
|
22:00 - 23:00 |
4 min late4 min late4 minutes late | 39 min early39 min early39 minutes early | 9 |
|
20:00 - 21:00 |
6 min late6 min late6 minutes late | 12 min late12 min late12 minutes late | 2 |
|
18:00 - 19:00 |
6 min late6 min late6 minutes late | 12 min late12 min late12 minutes late | 1 |
- Departures
- 9 min late
- min (+1%) vs last week
- 7d trend
- Arrivals
- 8 min early
- 2 min (-41.9%) vs last week
- 7d trend
- Cancelled Departures
- 1,250 flights (7 day total)
Jul 19
2026
- Departure
- 10 min late10 min late10 minutes late
- Arrival
- 10 min early10 min early10 minutes early
- Cancelled
- 142
Jul 18
2026
- Departure
- 7 min late7 min late7 minutes late
- Arrival
- 11 min early11 min early11 minutes early
- Cancelled
- 195
Jul 17
2026
- Departure
- 10 min late10 min late10 minutes late
- Arrival
- 7 min early7 min early7 minutes early
- Cancelled
- 193
Jul 16
2026
- Departure
- 9 min late9 min late9 minutes late
- Arrival
- 4 min early4 min early4 minutes early
- Cancelled
- 164
Jul 15
2026
- Departure
- 9 min late9 min late9 minutes late
- Arrival
- 5 min early5 min early5 minutes early
- Cancelled
- 171
Jul 14
2026
- Departure
- 8 min late8 min late8 minutes late
- Arrival
- 11 min early11 min early11 minutes early
- Cancelled
- 204
Jul 13
2026
- Departure
- 9 min late9 min late9 minutes late
- Arrival
- 8 min early8 min early8 minutes early
- Cancelled
- 181
| Date | Departure | Arrival | Cancelled |
|---|---|---|---|
|
Jul 19, 2026 |
10 min late10 min late10 minutes late | 10 min early10 min early10 minutes early | 142 |
|
Jul 18, 2026 |
7 min late7 min late7 minutes late | 11 min early11 min early11 minutes early | 195 |
|
Jul 17, 2026 |
10 min late10 min late10 minutes late | 7 min early7 min early7 minutes early | 193 |
|
Jul 16, 2026 |
9 min late9 min late9 minutes late | 4 min early4 min early4 minutes early | 164 |
|
Jul 15, 2026 |
9 min late9 min late9 minutes late | 5 min early5 min early5 minutes early | 171 |
|
Jul 14, 2026 |
8 min late8 min late8 minutes late | 11 min early11 min early11 minutes early | 204 |
|
Jul 13, 2026 |
9 min late9 min late9 minutes late | 8 min early8 min early8 minutes early | 181 |
- Departures
- 9 min late
- 1 min (+7.1%) vs last 30 days
- 30d trend
- Arrivals
- 7 min early
- 3 min (+30.1%) vs last 30 days
- 30d trend
- Cancelled Departures
- 4,651 flights (30 day total)
Jul 19
2026
- Departure
- 10 min late10 min late10 minutes late
- Arrival
- 10 min early10 min early10 minutes early
- Cancelled
- 142
Jul 18
2026
- Departure
- 7 min late7 min late7 minutes late
- Arrival
- 11 min early11 min early11 minutes early
- Cancelled
- 195
Jul 17
2026
- Departure
- 10 min late10 min late10 minutes late
- Arrival
- 7 min early7 min early7 minutes early
- Cancelled
- 193
Jul 16
2026
- Departure
- 9 min late9 min late9 minutes late
- Arrival
- 4 min early4 min early4 minutes early
- Cancelled
- 164
Jul 15
2026
- Departure
- 9 min late9 min late9 minutes late
- Arrival
- 5 min early5 min early5 minutes early
- Cancelled
- 171
Jul 14
2026
- Departure
- 8 min late8 min late8 minutes late
- Arrival
- 11 min early11 min early11 minutes early
- Cancelled
- 204
Jul 13
2026
- Departure
- 9 min late9 min late9 minutes late
- Arrival
- 8 min early8 min early8 minutes early
- Cancelled
- 181
Jul 12
2026
- Departure
- 7 min late7 min late7 minutes late
- Arrival
- 7 min early7 min early7 minutes early
- Cancelled
- 138
Jul 11
2026
- Departure
- 9 min late9 min late9 minutes late
- Arrival
- 6 min early6 min early6 minutes early
- Cancelled
- 181
Jul 10
2026
- Departure
- 11 min late11 min late11 minutes late
- Arrival
- 6 min early6 min early6 minutes early
- Cancelled
- 154
Jul 9
2026
- Departure
- 8 min late8 min late8 minutes late
- Arrival
- 4 min early4 min early4 minutes early
- Cancelled
- 162
Jul 8
2026
- Departure
- 8 min late8 min late8 minutes late
- Arrival
- 5 min early5 min early5 minutes early
- Cancelled
- 130
Jul 4
2026
- Departure
- 8 min late8 min late8 minutes late
- Arrival
- 18 min early18 min early18 minutes early
- Cancelled
- 21
Jul 3
2026
- Departure
- 10 min late10 min late10 minutes late
- Arrival
- 1 min early1 min early1 minutes early
- Cancelled
- 181
Jul 2
2026
- Departure
- 9 min late9 min late9 minutes late
- Arrival
- 6 min early6 min early6 minutes early
- Cancelled
- 180
Jul 1
2026
- Departure
- 10 min late10 min late10 minutes late
- Arrival
- 7 min early7 min early7 minutes early
- Cancelled
- 204
Jun 30
2026
- Departure
- 6 min late6 min late6 minutes late
- Arrival
- 8 min early8 min early8 minutes early
- Cancelled
- 134
Jun 29
2026
- Departure
- 9 min late9 min late9 minutes late
- Arrival
- 9 min early9 min early9 minutes early
- Cancelled
- 161
Jun 28
2026
- Departure
- 9 min late9 min late9 minutes late
- Arrival
- 8 min early8 min early8 minutes early
- Cancelled
- 164
Jun 27
2026
- Departure
- 8 min late8 min late8 minutes late
- Arrival
- 8 min early8 min early8 minutes early
- Cancelled
- 206
Jun 26
2026
- Departure
- 4 min late4 min late4 minutes late
- Arrival
- 4 min early4 min early4 minutes early
- Cancelled
- 173
Jun 25
2026
- Departure
- 8 min late8 min late8 minutes late
- Arrival
- 7 min early7 min early7 minutes early
- Cancelled
- 191
Jun 24
2026
- Departure
- 9 min late9 min late9 minutes late
- Arrival
- 7 min early7 min early7 minutes early
- Cancelled
- 229
Jun 23
2026
- Departure
- 9 min late9 min late9 minutes late
- Arrival
- 10 min early10 min early10 minutes early
- Cancelled
- 203
Jun 22
2026
- Departure
- 7 min late7 min late7 minutes late
- Arrival
- 8 min early8 min early8 minutes early
- Cancelled
- 196
Jun 21
2026
- Departure
- 7 min late7 min late7 minutes late
- Arrival
- 8 min early8 min early8 minutes early
- Cancelled
- 186
Jun 20
2026
- Departure
- 8 min late8 min late8 minutes late
- Arrival
- 9 min early9 min early9 minutes early
- Cancelled
- 207
| Date | Departure | Arrival | Cancelled |
|---|---|---|---|
|
Jul 19, 2026 |
10 min late10 min late10 minutes late | 10 min early10 min early10 minutes early | 142 |
|
Jul 18, 2026 |
7 min late7 min late7 minutes late | 11 min early11 min early11 minutes early | 195 |
|
Jul 17, 2026 |
10 min late10 min late10 minutes late | 7 min early7 min early7 minutes early | 193 |
|
Jul 16, 2026 |
9 min late9 min late9 minutes late | 4 min early4 min early4 minutes early | 164 |
|
Jul 15, 2026 |
9 min late9 min late9 minutes late | 5 min early5 min early5 minutes early | 171 |
|
Jul 14, 2026 |
8 min late8 min late8 minutes late | 11 min early11 min early11 minutes early | 204 |
|
Jul 13, 2026 |
9 min late9 min late9 minutes late | 8 min early8 min early8 minutes early | 181 |
|
Jul 12, 2026 |
7 min late7 min late7 minutes late | 7 min early7 min early7 minutes early | 138 |
|
Jul 11, 2026 |
9 min late9 min late9 minutes late | 6 min early6 min early6 minutes early | 181 |
|
Jul 10, 2026 |
11 min late11 min late11 minutes late | 6 min early6 min early6 minutes early | 154 |
|
Jul 9, 2026 |
8 min late8 min late8 minutes late | 4 min early4 min early4 minutes early | 162 |
|
Jul 8, 2026 |
8 min late8 min late8 minutes late | 5 min early5 min early5 minutes early | 130 |
|
Jul 4, 2026 |
8 min late8 min late8 minutes late | 18 min early18 min early18 minutes early | 21 |
|
Jul 3, 2026 |
10 min late10 min late10 minutes late | 1 min early1 min early1 minutes early | 181 |
|
Jul 2, 2026 |
9 min late9 min late9 minutes late | 6 min early6 min early6 minutes early | 180 |
|
Jul 1, 2026 |
10 min late10 min late10 minutes late | 7 min early7 min early7 minutes early | 204 |
|
Jun 30, 2026 |
6 min late6 min late6 minutes late | 8 min early8 min early8 minutes early | 134 |
|
Jun 29, 2026 |
9 min late9 min late9 minutes late | 9 min early9 min early9 minutes early | 161 |
|
Jun 28, 2026 |
9 min late9 min late9 minutes late | 8 min early8 min early8 minutes early | 164 |
|
Jun 27, 2026 |
8 min late8 min late8 minutes late | 8 min early8 min early8 minutes early | 206 |
|
Jun 26, 2026 |
4 min late4 min late4 minutes late | 4 min early4 min early4 minutes early | 173 |
|
Jun 25, 2026 |
8 min late8 min late8 minutes late | 7 min early7 min early7 minutes early | 191 |
|
Jun 24, 2026 |
9 min late9 min late9 minutes late | 7 min early7 min early7 minutes early | 229 |
|
Jun 23, 2026 |
9 min late9 min late9 minutes late | 10 min early10 min early10 minutes early | 203 |
|
Jun 22, 2026 |
7 min late7 min late7 minutes late | 8 min early8 min early8 minutes early | 196 |
|
Jun 21, 2026 |
7 min late7 min late7 minutes late | 8 min early8 min early8 minutes early | 186 |
|
Jun 20, 2026 |
8 min late8 min late8 minutes late | 9 min early9 min early9 minutes early | 207 |
Global Rankings
Runways
| Runway | Length | Width | Surface |
|---|---|---|---|
| 12,014 ft 3,662 m 12,014 ft · 3,662 m | 197 ft 60 m 197 ft · 60 m | Concrete | |
| 12,014 ft 3,662 m 12,014 ft · 3,662 m | 197 ft 60 m 197 ft · 60 m | Concrete | |
| 11,804 ft 3,598 m 11,804 ft · 3,598 m | 197 ft 60 m 197 ft · 60 m | Concrete | |
| 11,804 ft 3,598 m 11,804 ft · 3,598 m | 197 ft 60 m 197 ft · 60 m | Concrete |
Runway Length
Runways at Jakarta Soekarno-Hatta Airport are long enough for all aircraft with known takeoff and landing distances.
Operational Context
Jakarta Soekarno-Hatta (IATA: CGK) operates around 556 flights per day to 98 nonstop destinations. Its network includes 44 domestic and 49 international routes, with Garuda Indonesia as the leading carrier and Bali currently the busiest connection. From CGK, passengers can reach 25 countries across 4 continents, and the longest runway measures 3,662 m (12,014 ft).
Airlines and Destinations Overview
Jakarta Soekarno-Hatta is the main air gateway for Indonesia’s capital and the country’s largest metropolitan area. It functions as a major hub for domestic and international traffic, with a network that includes short-haul domestic links, regional flights across Asia, and longer-haul services to destinations in Europe, the Middle East, and other parts of Asia.
The airport is served by a mix of full-service and low-cost carriers, with Garuda Indonesia as a major operator alongside a broad set of domestic and international airlines. Its route structure reflects both point-to-point travel demand and connecting traffic through Jakarta, making it an important transfer airport within Indonesia and for international journeys into and out of the country.
Terminal Buildings and Facilities
The airport has multiple passenger terminals arranged to separate different traffic flows and airline groupings. The terminal system is organized so that domestic and international operations can be handled in distinct areas, which helps distribute passenger volumes across the airport’s large footprint.
Passenger movement through the airport is shaped by a combination of older and newer terminal infrastructure, with ongoing modernization across the complex. Terminal facilities are spread across the airport rather than concentrated in a single building, so passengers should confirm their terminal assignment before traveling.
Key characteristics of the terminal system include:
- Multiple passenger terminals
- Separate domestic and international processing areas
- Large-scale landside and airside circulation
- Mixed-use terminal complex with phased development
- Airline assignments that vary by terminal
Passenger-facing facilities include standard airport services such as check-in, baggage handling, immigration, security screening, and retail and service areas. Travelers can also find amenities intended to support longer waits and connecting traffic, though the exact mix varies by terminal and concourse.
Passenger facilities available across the airport include:
- Check-in and baggage services
- Immigration and security screening
- Retail and duty-free areas
- Restrooms and passenger service counters
- Ground transportation access points
Airport Lounges
The airport offers a mix of airline-operated and independent lounges, generally located airside in passenger terminals. Access is typically based on airline class, frequent flyer status, lounge membership, or paid entry where available, depending on the lounge operator and the traveler’s itinerary.
Notable lounges include:
- Garuda Indonesia Executive Lounge
- Plaza Premium Lounge
Dining and Food Options
Dining across the airport includes a mix of quick-service outlets, coffee shops, and other passenger food and beverage venues spread through the terminals. The overall offering is oriented toward transit passengers and departure traffic, with options that generally support short stays and meal breaks before boarding.
Common dining options include:
- Quick-service restaurants
- Coffee and beverage outlets
- Snack and convenience counters
- Terminal food court-style venues
Public Transport and Parking
The airport is connected to central Jakarta and the wider metropolitan area by rail, bus, taxi, and private vehicle access. The official airport rail service provides a direct link to the city, and the airport’s ground transportation information is the best starting point for checking current options and terminal access details. Airport bus services and metered taxis are also important parts of the public transport mix.
Road access is available from the Jakarta area and surrounding parts of Greater Jakarta, making the airport accessible from a broad regional catchment. Ride-hailing and private car services are commonly used by passengers, especially for late-night or door-to-door trips.
Passengers can reach the airport using:
- Airport rail link
- Airport bus services
- Taxi
- Ride-hailing
- Private car
Parking is available for travelers who arrive by road, with facilities intended for both short stays and longer parking needs. The airport’s parking information is published through official airport channels, including parking details, which can help passengers confirm current products and access points before traveling.
Parking options include:
- Short-term parking
- Long-term parking
- Terminal-adjacent parking
- Public parking areas
Runways and Operations
The airport operates a multi-runway system that supports heavy passenger traffic and a wide mix of domestic and international aircraft. Its longest runway is 3,662 meters, which allows it to handle a broad range of narrow-body and wide-body operations used on regional and long-haul services.
As one of Indonesia’s busiest airports, it is designed for high-frequency commercial operations with substantial daily flight activity. The runway layout and airfield infrastructure support intensive scheduling, although traffic management and turnaround performance can vary with congestion and weather.
The runway system includes:
- Multiple runways
- A longest runway of 3,662 meters
- Capability for wide-body operations
- Support for intensive commercial traffic
- Mixed domestic and international flight operations
Passenger Traffic and Airport Role
Jakarta Soekarno-Hatta is the primary hub for Indonesia’s largest air travel market and a major node in Southeast Asian aviation. It serves a large volume of domestic passengers while also handling substantial international demand, especially on regional routes and long-haul services connecting Indonesia with major global markets.
The airport’s route pattern reflects both hub-and-spoke connecting traffic and strong origin-and-destination demand from Jakarta and the surrounding urban region. It is also an important access point for business travel, government travel, tourism, and onward domestic connections throughout the Indonesian archipelago.
The airport’s role includes:
- Major hub airport
- Primary airport for Jakarta
- Domestic connector
- International gateway
- Long-haul and regional transfer point
Location and Catchment Area
The airport is located to the west of central Jakarta, within the Greater Jakarta region. Its catchment area extends across the capital and surrounding urban and industrial districts, including travelers from much of western Java who use the airport for domestic and international travel.
Because Jakarta is the center of Indonesia’s political and economic activity, the airport serves a broad mix of business, government, leisure, and connecting traffic. Its location also makes it a practical departure point for passengers traveling to destinations across the country and abroad.
The airport serves:
- Central Jakarta
- Greater Jakarta
- Western Java travelers
- Domestic connecting passengers
- International departure and arrival traffic
Hotels Near the Airport
There are hotel options near the airport that are useful for transit passengers, crew, business travelers, and overnight stays before early departures or after late arrivals. Travelers should check current hotel access and transfer arrangements directly with the property or the airport, especially if they need landside or terminal-specific pickup details.
Airport History
The airport was developed to replace Jakarta’s older air facilities as the capital’s main commercial airport. It opened in the late 1980s and was built to accommodate the city’s growing aviation demand and the long-term expansion of Indonesia’s air transport network.
In its early decades, the airport expanded into the country’s principal international and domestic gateway. Terminal development and airfield upgrades followed as traffic increased, with facilities added and reorganized over time to handle higher passenger volumes and changing airline operations.
The airport’s modern role has been shaped by continued infrastructure investment, including new terminal capacity and airfield improvements. These changes have supported the shift toward a larger hub function for both domestic connectivity and international services.
Today, the airport remains central to Jakarta’s air transport system and to Indonesia’s wider network of flights across the archipelago and beyond. Its current operating structure reflects decades of phased expansion to meet sustained growth in passenger demand.