It's 1am. You've just cleared customs. Your phone is dead, your backpack is cutting into your shoulders, and 40 guys with laminated signs are shouting "taxi taxi taxi" at a volume that suggests you're the last tourist they'll ever see. This is Ngurah Rai International Airport, and nobody prepared you for this part.
Every airline page and booking site covers flights to Bali. What they don't cover is the gap between "I booked a flight" and "I'm standing in my hotel lobby." That's what this guide is actually for.
Bali Has One Airport — Here's What You Need to Know About DPS
Every flight to Bali — domestic and international — lands at I Gusti Ngurah Rai International Airport, IATA code DPS. There's no second option, no regional alternative, no budget terminal across town. One island, one airport.
DPS sits on a narrow isthmus in southern Bali, about 13km from Denpasar's center. The Bali Mandara Toll Road connects it directly to Nusa Dua, Sanur, and Tanjung Benoa, which makes those transfers fast. Everywhere else — Seminyak, Canggu, Ubud — means surface streets and traffic.
The airport handles up to 24 million passengers annually and it feels like it during peak season (July–August, December–January). Two terminals: domestic and international. Both are walkable and reasonably well-signed. But the international arrivals hall has a design feature nobody mentions in the brochures — it funnels you through a gauntlet of taxi touts before you reach the actual exit. More on that shortly.
Direct vs. Connecting Flights to Bali — What to Expect by Region
Where you're flying from determines everything about your routing options, so let's break this down by origin.
Southeast Asia is the easiest and cheapest corridor. Singapore, Kuala Lumpur, and Bangkok all have multiple daily directs on a mix of full-service and budget carriers — AirAsia, Scoot, Singapore Airlines, Garuda Indonesia. Flight times run 2.5–4 hours. Fares on budget carriers can dip below $100 one-way in shoulder season.
Australia has strong direct coverage. Sydney, Melbourne, Perth, and Brisbane all have nonstop options via Qantas, Jetstar, and others. Perth is closest at roughly 3.5 hours. Jetstar has confirmed new direct routes launching in 2026 — specific cities and dates are still being finalized. [VERIFY: confirm Jetstar 2026 route details before publish.]
East Asia — Tokyo, Seoul, and Taipei all have direct flights, though frequency varies by season. Expect 6–8 hours depending on origin.
Europe and the Middle East are almost always one-stop. The most common layover cities are Singapore, Kuala Lumpur, and Dubai. My honest advice: pick the stopover you'd enjoy being stuck in for 4 hours, because the airline matters less than the transit experience on a 16–20 hour journey.
The Americas are the longest haul — minimum one stop, often two. The least painful routings from the US West Coast are LAX–Singapore–DPS or LAX–Tokyo–DPS. From the East Coast, add another connection or a very long first leg.
Domestic flights within Indonesia are frequent and cheap. Jakarta and Surabaya are the main feeder cities, with multiple daily departures on Lion Air and Citilink. One-way fares often land under $50.
Key Airlines by Corridor
Southeast Asia
AirAsia, Scoot, Singapore Airlines, Garuda
Australia
Qantas, Jetstar, Virgin Australia
East Asia
Garuda, Korean Air, various
Domestic Indonesia
Lion Air, Citilink, Garuda
When to Book and What Flights Actually Cost
I'm not going to give you a fare comparison table. It'll be stale before this article is indexed. What I can give you is a framework.
Seasonal patterns are real. Peak season (July–August, Christmas–New Year) pushes fares up 40–80% on popular corridors. Shoulder months — May–June and September — offer the best combination of decent weather and reasonable prices. Low season (February–March) is cheapest but wettest.
Booking windows matter, but less than flexibility. General guidance: 6–10 weeks out for short-haul Southeast Asian flights, 3–4 months for long-haul. But shifting your departure by one or two days often saves more than booking earlier.
The single most useful tool: Skyscanner's "whole month" view. Search your origin to DPS, select "whole month" instead of specific dates, and you'll see the cheapest day to fly at a glance. Google Flights' price tracking is the second tool — set an alert and let it tell you when to buy.
Arriving by Ferry or Boat: From Lombok, Java, and Nusa Penida

Not everyone flies in. If you're island-hopping through Indonesia, ferries and fast boats are practical, scenic, and sometimes cheaper than a domestic flight.
From Lombok
Fast boats are the standard. Departures leave from Bangsal and Senggigi on the Lombok side, arriving at Padang Bai, Serangan, or Sanur on the Bali side. Trip time: 1.5–2.5 hours depending on route and sea conditions.
Lombok → Bali Fast Boat Routes
Bangsal → Padang Bai
1.5–2 hrs, IDR 350,000–600,000
Senggigi → Serangan
2–2.5 hrs, IDR 450,000–700,000
Amed → Gili Trawangan → Lombok
1.5 hrs, IDR 350,000–500,000
The budget option is the public ferry from Lembar (Lombok side) to Padang Bai (Bali side). It costs IDR 60,000–80,000 — roughly one-tenth the fast boat price — but takes 4–6 hours and is no-frills in the truest sense. Ferries depart every 1–2 hours, 24/7.
In peak season, the Padang Bai route alone has 31+ daily departures. Availability isn't usually the problem. But booking online through 12GO gets you confirmed tickets and avoids the dock queue, which is worth the small convenience fee.
From Java
Two main combos: bus + ferry or train + ferry.
The train option is better. Take the train to Banyuwangi in East Java, then cross the Bali Strait by ferry. A new fast boat service from Banyuwangi to Serangan (Bali side) launched in July 2025. [VERIFY: confirm this service is still operating and current pricing.] The traditional short ferry across the strait is cheap and frequent.
Java → Bali Overland Costs
Bus + ferry combo
IDR 300,000–500,000 total
Train + ferry combo
IDR 400,000–800,000 total
From Nusa Penida

Fast boats run to Sanur multiple times daily. The crossing takes 30–45 minutes. Straightforward, frequent, rarely an issue.
The Airport Transfer Nobody Warns You About

Here's the moment the brochure skips. You exit the international arrivals hall at DPS, and before you've even oriented yourself, you're in a scrum of drivers offering "special price, my friend" to wherever you're going. The quotes they shout are typically 2–3x the actual going rate.
This isn't a scam, exactly. It's just the system. These are licensed transport touts, and if you don't know what a ride to Seminyak should cost, you'll pay IDR 400,000 for a trip that's worth IDR 150,000. The information asymmetry is the product.
You have four realistic options, and which one you choose depends on when you land, whether your phone works, and how much decision-making energy you have left after 20 hours of travel.
Airport Transfer Options: Taxi, Grab, Pre-Booked Driver — Compared
Option 1: Pre-Booked Private Transfer (Best for Late Arrivals and First-Timers)
Book through Klook, GetYourGuide, or Bali.com before you fly. A driver meets you in arrivals with a name sign. Air-conditioned vehicle, luggage space, child seats available on request. Cost: IDR 200,000–550,000+ depending on destination.
This is the most predictable option and the clear winner for anyone landing after 10pm. No negotiating, no app fumbling, no finding the Grab pickup zone in the dark. [VERIFY: BaliCard reportedly offers a 10% discount on private transfers — confirm this is still active.]
Option 2: Grab or GoJek (Best for Budget Travelers with a Working Phone)
Both ride-hailing apps operate at DPS. For international arrivals, there's a GrabCar Lounge — follow the signs after exiting customs. GrabBike is not available for airport pickups.
For domestic arrivals, the pickup point is less obvious: follow signs to the "Bali" Monument, then look for the Grab booth near Bank Mandiri and Pizza Hut.
Fares run 20–40% cheaper than official taxis for most destinations.
The critical caveat: Grab requires a working phone with mobile data. If you land at 1am with a dead phone and no SIM card, this option doesn't exist for you. Buy a SIM first (see practical tips below), then open the app. Most people get the sequencing backward.
Option 3: Official Airport Taxi (Prepaid Counter)
Fixed-price, issued at the counter inside the arrivals hall. Reliable, no negotiation required, but not the cheapest option. This is the safe default if you don't want to think about it and don't want to engage with the tout gauntlet.
Option 4: Blue Bird Taxi (Metered)
Blue Bird is Indonesia's most trusted metered taxi company. Fares are honest and can run slightly cheaper than the prepaid counter — a metered ride to Seminyak typically comes in around IDR 120,000–150,000. The catch: Blue Bird taxis aren't always available at the airport rank, especially late at night.
Airport Transfer Cost and Time Table: DPS to Every Major Destination
This is the table you'll screenshot. All times assume normal traffic conditions.
DPS Airport → Kuta
Distance
~8 km
Drive time
15–25 min
Official taxi
IDR 80,000–120,000
Grab estimate
IDR 60,000–100,000
Pre-booked transfer
IDR 100,000–200,000
DPS Airport → Seminyak
Distance
~10 km
Drive time
20–40 min
Official taxi
IDR 150,000–300,000
Grab estimate
IDR 100,000–180,000
Pre-booked transfer
IDR 200,000–450,000
DPS Airport → Canggu
Distance
~20 km
Drive time
30–45 min
Official taxi
IDR 300,000–450,000
Grab estimate
IDR 200,000–350,000
Pre-booked transfer
IDR 300,000–550,000+
DPS Airport → Ubud
Distance
~36 km
Drive time
60–90 min
Official taxi
IDR 350,000–500,000
Grab estimate
IDR 250,000–400,000
Pre-booked transfer
IDR 350,000–550,000+
DPS Airport → Nusa Dua
Distance
~15 km (via toll road)
Drive time
20–30 min
Official taxi
IDR 150,000–250,000
Pre-booked transfer
IDR 200,000–350,000
DPS Airport → Sanur
Distance
~14 km (via toll road)
Drive time
25–35 min
Official taxi
IDR 130,000–200,000
Pre-booked transfer
IDR 150,000–300,000
DPS Airport → Denpasar
Distance
~13 km
Drive time
20–35 min
Official taxi
IDR 100,000–150,000
Scenario Recommendations
First-time visitor, arriving late at night: Pre-book a private transfer. The extra cost over Grab is negligible compared to the stress you eliminate.
Budget traveler with a working phone and data: Buy a SIM in the arrivals hall, then order a Grab. You'll save 20–40% over official taxis.
Short hop to Kuta or Nusa Dua: Official taxi from the prepaid counter is fine. The savings from alternatives aren't worth the effort for a 15-minute ride.
Heading to Ubud: Pre-book regardless of budget. It's a 60–90 minute drive, and you don't want to negotiate that fare with a tout at 1am.
Bali Airport Practical Tips: SIM Cards, Money, Customs, and the Arrival Card
SIM Cards
Available at counters in the arrivals hall. Telkomsel is the most reliable network across Bali — best coverage in Ubud, Canggu, and rural areas where other networks drop. Buy one before you try to use Grab. This is the sequencing mistake almost everyone makes: they walk past the SIM counter, try to order a ride, realize they have no data, and then have to backtrack.
Money
Airport exchange rates are mediocre but not criminal. Get enough rupiah for your transfer and first meal — IDR 300,000–500,000 should cover it. Better rates are available in Seminyak and Ubud. ATMs are in the arrivals hall; check your bank's foreign transaction fees before you fly.
All Indonesia Arrival Card
A mandatory digital form via the All Indonesia app, effective September 1, 2025. You must complete it within 3 days before arrival. This is separate from your visa — don't confuse the two. Download the app and fill it out before you board your flight.
Bali Tourist Levy
IDR 150,000 per person, mandatory, and separate from the Visa on Arrival fee. Pay online before arrival through the official Bali provincial government portal, or pay at the airport. Doing it online saves time.
Visa on Arrival: What You Need and What It Costs
Visa on Arrival (VOA) is available to citizens of 97+ nationalities. The fee is IDR 500,000 (~$35 USD) per person. It grants 30 days, extendable once for an additional 30 days (60 days total).
e-VOA is the smart move: apply at evisa.imigrasi.go.id before you fly. Accepted payment methods: Mastercard, Visa, JCB. This lets you skip the VOA queue at the airport, which during peak season can run 30–60 minutes.
Visa on Arrival Essentials
Fee
IDR 500,000 (~$35 USD)
Duration
30 days, extendable to 60
e-VOA portal
evisa.imigrasi.go.id
Extension
In person at immigration office (since June 2025)
Passport validity
6+ months, 1–2 blank pages
VOA extensions must be done in person at a local immigration office, per circular IMI-417.GR.01.01/2025, in effect since June 2025. [VERIFY: confirm this circular is actively enforced, not just announced.] Budget a half-day for the process.
Visa-exempt nationalities — including citizens of Brunei, Cambodia, Laos, Malaysia, Myanmar, Philippines, Singapore, Timor Leste, Thailand, Vietnam, Suriname, Colombia, and Hong Kong — get 30 days without a VOA, non-extendable.
Third-party e-VOA services like BWB charge approximately IDR 800,000, which includes support, an eSIM, and various add-ons. Not necessary if you're comfortable filling out an online form, but some travelers prefer the hand-holding.
Passport requirements: valid for at least 6 months from your arrival date, with 1–2 blank pages and no significant damage. Indonesian immigration officers do check.
Scenario Quick Reference
Flying in, first time, want zero stress → Get your e-VOA online, pay the tourist levy online, pre-book your airport transfer, buy a SIM on arrival.
Coming from Lombok or Java on a budget → Fast boat or public ferry to Bali, then Grab from the port to your accommodation.
Arriving late at night → Pre-book a private transfer. Period. The Grab pickup point is confusing enough in daylight. At 2am with no SIM card, it's not worth the adventure.