Thailand

Chiang Mai

A northern Thai old town still ringed by its moat. No urban rail here — the red songthaew is how the city moves.

Ride-hailing and taxis (แท็กซี่)

Unlike a songthaew or a tuk-tuk, an app shows the total before you book. Grab and Bolt both run here. A ministry notice makes that figure what you owe, but only for private cars - pick a taxi and the meter decides.

Updated 9 days ago

How to ride

  1. 1
    Install a ride-hailing app before you set out
    Grab covers the north including Chiang Mai; Bolt offers taxi and motorbike-pillion categories.
  2. 2
    Check the total on screen before you book
    In the private-car category the upfront figure is what you owe; tolls and surcharges sit outside it.
  3. 3
    Check the plate and the sticker before getting in
    Taxis wear yellow plates, private cars a sticker front and rear, motorbikes yellow plates and a driver's vest.
  4. 4
    At the airport, board at the designated point
    Grab's point is on Floor 1 of the domestic car park, and the airport asks you to use its designated points.
  5. 5
    Pay by your registered method or in cash
    With Grab you pick cash, a card or GrabPay; foreign-issued methods carry a fee.

Typical costs

How the meter adds up4

App-hailed private car (small), first 2 km
Beyond that it runs 6-10 baht per km, plus 2 baht a minute where traffic is forecast to stall.
40〜45 THB ≈ $1
App-hailed private car (mid-size), first 2 km
Then 7-12 baht per km; a large car starts at 100-150 baht for its first 2 km.
45〜50 THB ≈ $1–2
App booking fee
The legal add-on when a ride is ordered through an app, and the only one a metered taxi may charge.
20 THB ≈ $0.6
Ceiling on the demand surcharge (private cars)
A surge may not exceed the fare itself, and never more than 200 baht - that is the legal ceiling.
200 THB ≈ $6

Estimates use exchange rates as of September 5, 2026

Payment

Phone wallet Unverified
VISAMastercard
Card payment on board Unverified
No official page says whether cars carry a card terminal
App tickets Only Bolt's card screen names brands; Grab's Thai payment pages name none
In the wallet: Foreign-issued cards and wallets carry a 3% payment fee
QR ticketing Unverified
In the wallet: Grab lists QR PromptPay, but whether a visitor can use it is unconfirmed
Cash
Bolt says only that cash may be available depending on your location, and never names Chiang Mai
On board: With Grab you can choose to pay cash

Tap for where to get the app

Quick facts

Fares from
40 THB+

Heads-up

  • Pick the taxi category and the meter sets the fare

    The upfront figure binds only in the private-car category - a car re-registered as an electronic-platform hire vehicle. Choose the taxi category (a yellow-plate metered taxi) and the meter sets the fare; the only thing the app may add is the 20-baht booking fee. Both Grab and Bolt offer a taxi category, so check on screen which one you picked before you ride.

  • A legal car can be told by sight

    An app-hailed taxi carries the yellow public-vehicle plate; a private car must be re-registered as an electronic-platform hire car and show stickers front and rear; a motorbike needs the yellow plate and a driver in the app's vest. A car showing none of these is what the provincial transport office is cracking down on as an unregistered app car.

  • The authorities name three places - airport, station, Arcade

    In June 2024 the provincial transport office announced a crackdown run with three bodies - Chiang Mai International Airport, Chiang Mai railway station and the third (Arcade) bus terminal - naming them as the places unregistered app cars slip into to pick up passengers. Those are all places travellers arrive at, so match the plate against your app screen before you get in.

  • Overcharged? Call 1584

    The Department of Land Transport runs a public-transport complaints line on 1584, covering taxis, three-wheelers and motorbike taxis alike. Note the plate and the time before you get out and the call goes faster.

Timetable

Check the official site for the latest times and service status