Southeast Asia air quality ranking: cities by PM2.5 right now
Right now Palangka Raya has the highest 1-hour PM2.5 in Southeast Asia: 466 µg/m³ (Very High). The lowest is Kangar at 2 µg/m³. Singapore uses the official NEA reading; other places are CAMS model estimates, not official measurements. Updated 2026-10-12 00:00.
| # | Place | Country | PM2.5 µg/m³ | Level | Source |
|---|---|---|---|---|---|
| 1 | Palangka Raya | 🇮🇩 Indonesia | 466 | Very High | Model estimate |
| 2 | Jakarta | 🇮🇩 Indonesia | 148 | Elevated | Model estimate |
| 3 | Singapore | 🇸🇬 Singapore | 101 | Elevated | NEA official |
| 4 | Jambi | 🇮🇩 Indonesia | 96 | Elevated | Model estimate |
| 5 | Bandung | 🇮🇩 Indonesia | 94 | Elevated | Model estimate |
| 6 | Hanoi | 🇻🇳 Vietnam | 86 | Elevated | Model estimate |
| 7 | Johor Bahru | 🇲🇾 Malaysia | 79 | Elevated | Model estimate |
| 8 | Pekanbaru | 🇮🇩 Indonesia | 65 | Elevated | Model estimate |
| 9 | Makassar | 🇮🇩 Indonesia | 58 | Elevated | Model estimate |
| 10 | Melaka | 🇲🇾 Malaysia | 57 | Elevated | Model estimate |
| 11 | Muar | 🇲🇾 Malaysia | 57 | Elevated | Model estimate |
| 12 | Pontianak | 🇮🇩 Indonesia | 57 | Elevated | Model estimate |
| 13 | Putrajaya | 🇲🇾 Malaysia | 55 | Normal | Model estimate |
| 14 | Palembang | 🇮🇩 Indonesia | 54 | Normal | Model estimate |
| 15 | Kluang | 🇲🇾 Malaysia | 53 | Normal | Model estimate |
| 16 | Klang | 🇲🇾 Malaysia | 49 | Normal | Model estimate |
| 17 | Kuala Lumpur | 🇲🇾 Malaysia | 49 | Normal | Model estimate |
| 18 | Petaling Jaya | 🇲🇾 Malaysia | 49 | Normal | Model estimate |
| 19 | Shah Alam | 🇲🇾 Malaysia | 49 | Normal | Model estimate |
| 20 | Samarinda | 🇮🇩 Indonesia | 48 | Normal | Model estimate |
| 21 | Semarang | 🇮🇩 Indonesia | 48 | Normal | Model estimate |
| 22 | Kuala Terengganu | 🇲🇾 Malaysia | 46 | Normal | Model estimate |
| 23 | Manado | 🇮🇩 Indonesia | 46 | Normal | Model estimate |
| 24 | Banjarmasin | 🇮🇩 Indonesia | 45 | Normal | Model estimate |
| 25 | Hai Phong | 🇻🇳 Vietnam | 44 | Normal | Model estimate |
| 26 | Batam | 🇮🇩 Indonesia | 42 | Normal | Model estimate |
| 27 | Balikpapan | 🇮🇩 Indonesia | 41 | Normal | Model estimate |
| 28 | Surabaya | 🇮🇩 Indonesia | 38 | Normal | Model estimate |
| 29 | Kuantan | 🇲🇾 Malaysia | 35 | Normal | Model estimate |
| 30 | Pangkal Pinang | 🇮🇩 Indonesia | 35 | Normal | Model estimate |
| 31 | Can Tho | 🇻🇳 Vietnam | 33 | Normal | Model estimate |
| 32 | Palu | 🇮🇩 Indonesia | 32 | Normal | Model estimate |
| 33 | Ho Chi Minh City | 🇻🇳 Vietnam | 29 | Normal | Model estimate |
| 34 | Medan | 🇮🇩 Indonesia | 29 | Normal | Model estimate |
| 35 | Vientiane | 🇱🇦 Laos | 29 | Normal | Model estimate |
| 36 | Sibu | 🇲🇾 Malaysia | 27 | Normal | Model estimate |
| 37 | Miri | 🇲🇾 Malaysia | 24 | Normal | Model estimate |
| 38 | Bandar Lampung | 🇮🇩 Indonesia | 23 | Normal | Model estimate |
| 39 | Yogyakarta | 🇮🇩 Indonesia | 23 | Normal | Model estimate |
| 40 | Dili | 🇹🇱 Timor-Leste | 22 | Normal | Model estimate |
| 41 | Mandalay | 🇲🇲 Myanmar | 22 | Normal | Model estimate |
| 42 | Luang Prabang | 🇱🇦 Laos | 21 | Normal | Model estimate |
| 43 | Bandar Seri Begawan | 🇧🇳 Brunei | 20 | Normal | Model estimate |
| 44 | Seremban | 🇲🇾 Malaysia | 20 | Normal | Model estimate |
| 45 | Kota Bharu | 🇲🇾 Malaysia | 19 | Normal | Model estimate |
| 46 | Denpasar | 🇮🇩 Indonesia | 18 | Normal | Model estimate |
| 47 | Dumai | 🇮🇩 Indonesia | 18 | Normal | Model estimate |
| 48 | Kota Kinabalu | 🇲🇾 Malaysia | 16 | Normal | Model estimate |
| 49 | Khon Kaen | 🇹🇭 Thailand | 15 | Normal | Model estimate |
| 50 | Kuching | 🇲🇾 Malaysia | 15 | Normal | Model estimate |
| 51 | Labuan | 🇲🇾 Malaysia | 14 | Normal | Model estimate |
| 52 | Yangon | 🇲🇲 Myanmar | 14 | Normal | Model estimate |
| 53 | Bintulu | 🇲🇾 Malaysia | 13 | Normal | Model estimate |
| 54 | Chiang Mai | 🇹🇭 Thailand | 13 | Normal | Model estimate |
| 55 | Nay Pyi Taw | 🇲🇲 Myanmar | 13 | Normal | Model estimate |
| 56 | Davao City | 🇵🇭 Philippines | 12 | Normal | Model estimate |
| 57 | Tawau | 🇲🇾 Malaysia | 12 | Normal | Model estimate |
| 58 | Bangkok | 🇹🇭 Thailand | 11 | Normal | Model estimate |
| 59 | Chiang Rai | 🇹🇭 Thailand | 10 | Normal | Model estimate |
| 60 | Padang | 🇮🇩 Indonesia | 10 | Normal | Model estimate |
| 61 | Phnom Penh | 🇰🇭 Cambodia | 10 | Normal | Model estimate |
| 62 | Taiping | 🇲🇾 Malaysia | 10 | Normal | Model estimate |
| 63 | Baguio | 🇵🇭 Philippines | 9 | Normal | Model estimate |
| 64 | Da Nang | 🇻🇳 Vietnam | 8 | Normal | Model estimate |
| 65 | George Town (Penang) | 🇲🇾 Malaysia | 7 | Normal | Model estimate |
| 66 | Hat Yai | 🇹🇭 Thailand | 7 | Normal | Model estimate |
| 67 | Ipoh | 🇲🇾 Malaysia | 7 | Normal | Model estimate |
| 68 | Pattaya | 🇹🇭 Thailand | 7 | Normal | Model estimate |
| 69 | Bengkulu | 🇮🇩 Indonesia | 6 | Normal | Model estimate |
| 70 | Phitsanulok | 🇹🇭 Thailand | 6 | Normal | Model estimate |
| 71 | Siem Reap | 🇰🇭 Cambodia | 6 | Normal | Model estimate |
| 72 | Alor Setar | 🇲🇾 Malaysia | 5 | Normal | Model estimate |
| 73 | Manila | 🇵🇭 Philippines | 5 | Normal | Model estimate |
| 74 | Nakhon Ratchasima | 🇹🇭 Thailand | 5 | Normal | Model estimate |
| 75 | Surat Thani | 🇹🇭 Thailand | 5 | Normal | Model estimate |
| 76 | Phuket | 🇹🇭 Thailand | 4 | Normal | Model estimate |
| 77 | Sandakan | 🇲🇾 Malaysia | 4 | Normal | Model estimate |
| 78 | Cebu City | 🇵🇭 Philippines | 3 | Normal | Model estimate |
| 79 | Kangar | 🇲🇾 Malaysia | 2 | Normal | Model estimate |
Cleanest air right now
Kangar (2) · Cebu City (3) · Sandakan (4) · Phuket (4) · Surat Thani (5)
How to read this ranking
- Values are 1-hour PM2.5 in µg/m³, updated about every 10–15 minutes. Levels use the NEA 1-hour bands (0–55, 56–150, 151–250, 251+).
- Singapore is an official NEA reading (worst region). Everywhere else is a CAMS model estimate: it shows how places compare but can differ from local monitoring stations.
- A model value is not directly comparable with an official station reading, so treat close rankings as ties.