Indonesia is the world’s largest archipelago - 17,000 islands stretching across a distance equivalent to the width of the United States. Getting here requires international air travel; getting around once you arrive is an exercise in domestic aviation logistics. Here’s what to know about both.
International Airports
Soekarno-Hatta International Airport (CGK) in Tangerang, 25km west of central Jakarta, is Indonesia’s busiest airport and main international hub. It handles the majority of long-haul services from Europe, the Middle East, and North America. Garuda Indonesia and all major international carriers use this airport. Three terminals handle different carriers and alliances - check your terminal before arrival.
Ngurah Rai International Airport (DPS) in Denpasar, Bali, is the second-busiest entry point and the gateway for Bali, Lombok, Nusa Penida, and Flores. Major international carriers from Australia, Japan, South Korea, Singapore, and several European countries fly direct to DPS. The airport is 13km from Seminyak and Kuta, around 30–45 minutes by taxi.
Juanda Airport (SUB) in Surabaya handles some regional international flights (Singapore, Kuala Lumpur) and is a gateway for East Java - including Bromo and Ijen. Kualanamu Airport (KNO) in Medan handles connections to Singapore and Kuala Lumpur for arrivals into northern Sumatra and Orangutan country (Bukit Lawang).
Flight Routes
From Europe:
- London Heathrow - Bali (DPS): No non-stop service from London. Common connections via Singapore (Singapore Airlines, Scoot), Kuala Lumpur (Malaysia Airlines, AirAsia), Dubai (Emirates), or Doha (Qatar Airways). Total journey time typically 17–20 hours.
- London Heathrow - Jakarta (CGK): Garuda Indonesia has historically operated this route. Most London–Jakarta routing goes via Doha, Dubai, or Singapore.
- Amsterdam - Jakarta: KLM operates a direct service. Around 14–15 hours. One of the few true long-haul non-stop options from Europe.
- Amsterdam - Bali: No non-stop. Connect in Singapore or Dubai.
- Frankfurt, Paris, Zurich: Connect via Singapore, Dubai, Doha, or Kuala Lumpur.
From Australia:
- Perth - Bali (DPS): The shortest international flight in this network, approximately 3.5 hours. Multiple airlines including Qantas, Jetstar, Virgin Australia, Scoot.
- Melbourne and Sydney - Bali: 6 hours. High frequency, year-round services from all major Australian carriers.
- Sydney - Jakarta: Garuda, Qantas, and others. Around 7.5–8 hours.
From Asia:
- Singapore (SIN) and Kuala Lumpur (KUL) are the main connection hubs. Numerous daily flights to both Jakarta and Bali. Flight time from Singapore to Bali is under 2.5 hours.
- Tokyo, Seoul, Hong Kong: Direct services to Bali operated by Garuda, Japan Airlines, Korean Air, and Cathay Pacific.
- Guangzhou, Shanghai, Beijing: Numerous direct services to Bali operated by Chinese carriers.
From North America:
- No direct non-stop services from the US mainland. Connections go via Tokyo, Seoul, Singapore, or the Gulf. Total journey time from Los Angeles is typically 20–24 hours.
Finding the Best Fares
For flights to Indonesia, price comparison tools are essential given the large number of routing options. We recommend using Aviasales for Indonesia flight searches, which aggregates fares across airlines and booking platforms to show the best available prices.
Open-jaw tickets: Consider flying into Jakarta and out of Bali (or vice versa) on an open-jaw itinerary. This eliminates the need to backtrack and often costs the same as a return to a single city. Singapore and Kuala Lumpur work well as connection points for open-jaw Indonesia trips.
Booking window: Peak season (July–August, Christmas–New Year) books up 3–4 months ahead for popular routes. Shoulder season (April–May, September–November) is more flexible - 4–6 weeks is typically sufficient.
Connection city choice: Singapore Airlines via Singapore (SIN) is consistently rated the best transit experience and often competitive on price. AirAsia via Kuala Lumpur is frequently the cheapest routing from Europe and Australia, though connection times at KLIA2 require some care.
Domestic Connections: Navigating the Archipelago
Indonesia’s domestic aviation network is extraordinary in scale - and essential for any trip covering more than one island.
Jakarta (CGK) - Bali (DPS): The busiest domestic route in Southeast Asia. Lion Air, Garuda, Citilink, and Batik Air all operate multiple daily flights. Flight time is approximately 1.5–2 hours. Fares start from around USD 20–40 one way with budget carriers, higher with Garuda.
Bali (DPS) - Lombok (LOP): Around 30 minutes. Lion Air and Wings Air (subsidiary of Lion Group) operate this route. Alternatively, a fast boat from Padangbai to Lembar takes about 4 hours.
Bali or Jakarta - Labuan Bajo (LBJ): Gateway for Komodo National Park and the Flores islands. Garuda and Citilink operate this route. Around 1.5–2 hours from Bali.
Jakarta (CGK) - Yogyakarta (JOG or YIA): 1 hour. Yogyakarta is the cultural hub of Java and gateway to Borobudur. Extremely frequent flights from all Indonesian carriers.
Jakarta (CGK) - Makassar (UPG): Around 2 hours. Gateway for Sulawesi - Toraja, Tana Toraja, and the Togean Islands.
Jakarta or Bali - Manado (MDC): Around 3 hours. Gateway for diving in the Bunaken Marine Park and Wakatobi.
Booking domestic flights: Book Indonesian domestic flights through airline websites or Traveloka (the dominant Indonesian OTA). International booking sites sometimes price domestic Indonesia routes higher than local platforms. Lion Air, Citilink, and Batik Air have their own booking systems - Traveloka aggregates them conveniently.
Punctuality note: Budget carriers in Indonesia - particularly Lion Air - have a documented record of delays and cancellations. Build buffer time into connections, especially for early morning departures and remote airports. Garuda Indonesia and Batik Air have better punctuality records among the larger operators.
Airport Transfers
From Soekarno-Hatta (Jakarta):
- Kereta Bandara (Airport Rail Link): The fastest and most reliable option into central Jakarta. Runs to Sudirman, Manggarai, and other city stations. Journey to Sudirman is approximately 45 minutes. Fare as of 2026 is around IDR 70,000 (approximately USD 4).
- Blue Bird taxi: Metered, reliable. Fares to central Jakarta are approximately IDR 150,000–250,000 depending on destination and traffic. Jakarta traffic is severe - the train is almost always faster.
- Grab/Gojek: App-based rides are widely used; must be picked up at designated zones.
From Ngurah Rai (Bali):
- Pre-paid taxi: Fixed-rate taxis are available at the airport. Fares to Kuta and Seminyak run around IDR 80,000–130,000 (USD 5–8); Ubud is approximately IDR 250,000–350,000 (USD 15–22). Always use the pre-paid counter, not touts at arrivals.
- Grab/Gojek: Available from the designated pick-up area outside the terminal.
Best Time to Book
- Dry season (May–September): Bali’s peak tourist season - book well ahead, especially July–August
- Wet season (November–March): Lower crowds and cheaper fares, with afternoon rain showers in Bali; Lombok and Komodo are actually drier and more accessible in this period
- Christmas–New Year: Prices spike sharply for all routes into Bali - book 3–4 months ahead
- Prices listed are approximate as of 2026 - verify current fares at time of booking
See Also
- Indonesia visa guide - who needs a visa, how to get a Visa on Arrival, and the e-VOA process
- Getting around Indonesia - domestic flights, ferries, buses, and trains between islands
- Bali airport transfer guide - getting from Ngurah Rai to Kuta, Seminyak, Ubud, and beyond
- Jakarta travel guide - the main international gateway: what to do with a layover or short stay
- First time in Indonesia - a starter guide to customs, SIM cards, money, and cultural norms
- Indonesia travel costs - budgeting for flights, accommodation, food, and transport
Plan Your Trip
✈️ Book your flights to Indonesia 🛡️ Get travel insurance 📱 Stay connected with an eSIM 🚗 Rent a car
Ready to Plan Your Trip?
See our itineraries for inspiration:
- One Week in Indonesia - Bali, Nusa Penida, Gili Islands and Lombok
- 2 Weeks in Indonesia - the island-hopping route from Bali east
- 3 Weeks in Indonesia - Java, Bali and the eastern islands