US AQI (PM2.5) by station

Calculated from DOE’s rounded PM2.5 API using a 24-hour average and US AQI breakpoints. Not an official all-pollutant US AQI or real-time NowCast. Calculation details

Good
28
Moderate
38
Unhealthy for Sensitive Groups
1
Unhealthy
1
Very Unhealthy
0
Hazardous
0

68 of 68 stations have convertible observations. Check each observation’s date.

  • Batu MudaWP Kuala Lumpur · 15 Nov, 07:00 MYT154Official API 153Unhealthy
  • JOHAN SETIASelangor · 15 Nov, 07:00 MYT105Official API 83Unhealthy for Sensitive Groups
  • KlangSelangor · 15 Nov, 07:00 MYT87Official API 72Moderate
  • Tasek IpohPerak · 15 Nov, 07:00 MYT84Official API 70Moderate
  • Shah AlamSelangor · 15 Nov, 07:00 MYT84Official API 70Moderate
  • Petaling JayaSelangor · 15 Nov, 07:00 MYT81Official API 68Moderate
  • NilaiNegeri Sembilan · 15 Nov, 07:00 MYT81Official API 68Moderate
  • Bukit RambaiMelaka · 15 Nov, 07:00 MYT78Official API 66Moderate
  • Seri ManjungPerak · 15 Nov, 07:00 MYT77Official API 65Moderate
  • CherasWP Kuala Lumpur · 15 Nov, 07:00 MYT77Official API 65Moderate
  • PutrajayaWP Putrajaya · 15 Nov, 07:00 MYT77Official API 65Moderate
  • BantingSelangor · 15 Nov, 07:00 MYT77Official API 65Moderate
  • Port DicksonNegeri Sembilan · 15 Nov, 07:00 MYT77Official API 65Moderate
  • Alor GajahMelaka · 15 Nov, 07:00 MYT77Official API 65Moderate
  • Sungai PetaniKedah · 15 Nov, 07:00 MYT75Official API 64Moderate
  • Bandaraya MelakaMelaka · 15 Nov, 07:00 MYT72Official API 62Moderate
  • TemerlohPahang · 15 Nov, 07:00 MYT67Official API 58Moderate
  • TangkakJohor · 15 Nov, 07:00 MYT67Official API 58Moderate
  • Seberang PeraiPulau Pinang · 15 Nov, 07:00 MYT64Official API 56Moderate
  • SerembanNegeri Sembilan · 15 Nov, 07:00 MYT64Official API 56Moderate
  • Politeknik Kota KinabaluSabah · 15 Nov, 07:00 MYT64Official API 56Moderate
  • Seberang JayaPulau Pinang · 15 Nov, 07:00 MYT62Official API 55Moderate
  • Pegoh IpohPerak · 15 Nov, 07:00 MYT61Official API 54Moderate
  • LarkinJohor · 15 Nov, 07:00 MYT61Official API 54Moderate
  • MindenPulau Pinang · 15 Nov, 07:00 MYT59Official API 53Moderate
  • Balok Baru KuantanPahang · 15 Nov, 07:00 MYT59Official API 53Moderate
  • Kuala SelangorSelangor · 15 Nov, 07:00 MYT58Official API 52Moderate
  • Pasir GudangJohor · 15 Nov, 07:00 MYT58Official API 52Moderate
  • TawauSabah · 15 Nov, 07:00 MYT58Official API 52Moderate
  • KeningauSabah · 15 Nov, 07:00 MYT57Official API 51Moderate
  • Kulim Hi-TechKedah · 15 Nov, 07:00 MYT56Official API 49Moderate
  • KluangJohor · 15 Nov, 07:00 MYT55Official API 47Moderate
  • Kuala TerengganuTerengganu · 15 Nov, 07:00 MYT55Official API 46Moderate
  • SamalajuSarawak · 15 Nov, 07:00 MYT55Official API 47Moderate
  • Tanjung MalimPerak · 15 Nov, 07:00 MYT54Official API 45Moderate
  • SegamatJohor · 15 Nov, 07:00 MYT53Official API 43Moderate
  • Alor SetarKedah · 15 Nov, 07:00 MYT52Official API 41Moderate
  • KangarPerlis · 15 Nov, 07:00 MYT51Official API 39Moderate
  • Balik PulauPulau Pinang · 15 Nov, 07:00 MYT51Official API 39Moderate
  • JerantutPahang · 15 Nov, 07:00 MYT51Official API 38Moderate
  • Tanah MerahKelantan · 15 Nov, 07:00 MYT49Official API 37Good
  • LabuanWP Labuan · 15 Nov, 07:00 MYT49Official API 37Good
  • Kota BharuKelantan · 15 Nov, 07:00 MYT48Official API 36Good
  • Batu PahatJohor · 15 Nov, 07:00 MYT47Official API 35Good
  • TaipingPerak · 15 Nov, 07:00 MYT44Official API 33Good
  • MiriSarawak · 15 Nov, 07:00 MYT44Official API 33Good
  • KapitSarawak · 15 Nov, 07:00 MYT44Official API 33Good
  • KuchingSarawak · 15 Nov, 07:00 MYT44Official API 33Good
  • IPD SerianSarawak · 15 Nov, 07:00 MYT44Official API 33Good
  • Indera Mahkota KuantanPahang · 15 Nov, 07:00 MYT42Official API 32Good
  • SibuSarawak · 15 Nov, 07:00 MYT42Official API 32Good
  • SandakanSabah · 15 Nov, 07:00 MYT41Official API 31Good
  • Sri AmanSarawak · 15 Nov, 07:00 MYT41Official API 31Good
  • LangkawiKedah · 15 Nov, 07:00 MYT40Official API 30Good
  • BintuluSarawak · 15 Nov, 07:00 MYT40Official API 30Good
  • SamarahanSarawak · 15 Nov, 07:00 MYT40Official API 30Good
  • BesutTerengganu · 15 Nov, 07:00 MYT36Official API 27Good
  • Kota TinggiJohor · 15 Nov, 07:00 MYT34Official API 26Good
  • ILP MiriSarawak · 15 Nov, 07:00 MYT34Official API 26Good
  • PakaTerengganu · 15 Nov, 07:00 MYT33Official API 25Good
  • PengerangJohor · 15 Nov, 07:00 MYT32Official API 24Good
  • KemamanTerengganu · 15 Nov, 07:00 MYT32Official API 24Good
  • SarikeiSarawak · 15 Nov, 07:00 MYT31Official API 23Good
  • Kota KinabaluSabah · 15 Nov, 07:00 MYT29Official API 22Good
  • MukahSarawak · 15 Nov, 07:00 MYT29Official API 22Good
  • KimanisSabah · 15 Nov, 07:00 MYT28Official API 21Good
  • LimbangSarawak · 15 Nov, 07:00 MYT22Official API 17Good
  • RompinPahang · 15 Nov, 07:00 MYT21Official API 16Good

Official DOE API overview

Kualiti udara Malaysia hari ini · Indeks Pencemaran Udara (IPU)

68 of 68 DOE stations are reporting as of 07:00 MYT, 15 Nov 2026. The highest Air Pollutant Index in Malaysia is 153 (Unhealthy) at Batu Muda, WP Kuala Lumpur. 38 stations read good, 29 moderate and 1 unhealthy or worse.

68 daripada 68 stesen JAS melaporkan bacaan setakat 07:00 MYT, 15 Nov 2026. Bacaan IPU tertinggi di Malaysia ialah 153 (Tidak Sihat) di Batu Muda, WP Kuala Lumpur. 38 stesen baik, 29 sederhana dan 1 tidak sihat atau lebih teruk.

Stations reporting
68of 68
GoodBaik
38
ModerateSederhana
29
UnhealthyTidak Sihat
1
Very UnhealthySangat Tidak Sihat
0
HazardousBerbahaya
0

Latest observation 07:00 MYT, 15 Nov 2026. Source: Department of Environment Malaysia.

Highest official API readings

Bacaan IPU tertinggi sekarang

  1. Batu Muda air qualityWP Kuala Lumpur153Unhealthy
  2. Johan Setia air qualitySelangor83Moderate
  3. Klang air qualitySelangor72Moderate
  4. Tasek Ipoh air qualityPerak70Moderate
  5. Shah Alam air qualitySelangor70Moderate

Limit prolonged outdoor activity. Children, older adults, pregnant women and people with respiratory or heart conditions should stay indoors where possible. A well-fitted N95 mask helps outdoors.

Hadkan aktiviti luar yang berpanjangan. Kanak-kanak, warga emas, ibu mengandung dan pesakit pernafasan atau jantung dinasihatkan berada di dalam bangunan. Pelitup muka N95 membantu di luar.

US AQI (PM2.5) by city

Values are calculated from DOE’s rounded API and a 24-hour PM2.5 average. Unknown or other dominant pollutants show as unavailable. How the conversion works

Malaysia weekly report · Laporan mingguan Malaysia

Ringkasan mingguan kualiti udara dan statistik jerebu kebangsaan

Looking for weekly trends? Explore Malaysia's 7-day national average API, peak readings, cleanest and most polluted monitoring stations, and major city comparisons.

View Malaysia weekly air quality report →

Understanding the Malaysia API

Memahami Indeks Pencemaran Udara

The Air Pollutant Index (API), or Indeks Pencemaran Udara (IPU) in Bahasa Malaysia, is published by the Department of Environment. It follows Malaysia's own scale, which differs from the US AQI. Compare station readings and their observation times to understand conditions across the country.

Malaysia API scale · Skala IPU Malaysia
APICategoryKategori
0–50GoodBaik
51–100ModerateSederhana
101–200UnhealthyTidak Sihat
201–300Very UnhealthySangat Tidak Sihat
301+HazardousBerbahaya
Malaysia

Malaysia air quality and haze today: Kuala Lumpur air quality and haze

US Air Quality Index (AQI) · PM2.5

77
Air qualityModerate
GoodHazardous

PM2.5 · 24-hour average · How this is calculated

Cheras station · 5.0 kmReading time unavailable

Official DOE API: 65

DOE Malaysia ↗
About Kuala Lumpur air quality

The main number is PM2.5 US AQI calculated from Malaysia’s official Air Pollutant Index (API). We derive the 24-hour PM2.5 concentration from the rounded API and apply US thresholds. It is not an official all-pollutant AQI or a real-time NowCast.

The source API comes from the nearest DOE monitor within 75 km of the city centre. It is a station reading, not a city average. The app checks for updates every five minutes and shows the age of the observation.

The Petronas Twin Towers artwork is an illustration. The haze effect follows the API reading; it is not a camera view.