CINXE.COM

Guide to publishing Air Quality data on the World Air Quality Index project

<!doctype html><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" itemscope itemtype="http://schema.org/LocalBusiness" ng-app="waqi"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <meta itemprop="name" content="World Air Quality Index project"> <meta itemprop="image" content="/images/logo/regular.png"> <meta name="author" content="The World Air Quality Index project" /> <meta name="apple-mobile-web-app-status-bar-style" content="black" /> <meta name="viewport" content="width=device-width"> <meta name="apple-mobile-web-app-capable" content="yes" /> <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" /> <title>Guide to publishing Air Quality data on the World Air Quality Index project</title> <link rel="shortcut icon" href="/images/favicon.ico" /> <link rel="apple-touch-icon" sizes="114x114" href="/images/iOS/ico_114.png"/> <link rel="apple-touch-icon" sizes="72x72" href="/images/iOS/ico_72.png"/> <link rel="apple-touch-icon" href="/images/iOS/ico_57.png"/> <link href='https://aqicn.org/publishingdata/' rel=canonical/> <link rel='alternate' hreflang='x-default' href='https://aqicn.org/publishingdata/'/> <link rel='alternate' hreflang='zh-CN' href='https://aqicn.org/publishingdata/cn/'/> <link rel='alternate' hreflang='ja' href='https://aqicn.org/publishingdata/jp/'/> <link rel='alternate' hreflang='es' href='https://aqicn.org/publishingdata/es/'/> <link rel='alternate' hreflang='ko' href='https://aqicn.org/publishingdata/kr/'/> <link rel='alternate' hreflang='ru' href='https://aqicn.org/publishingdata/ru/'/> <link rel='alternate' hreflang='zh-TW' href='https://aqicn.org/publishingdata/hk/'/> <link rel='alternate' hreflang='fr' href='https://aqicn.org/publishingdata/fr/'/> <link rel='alternate' hreflang='pl' href='https://aqicn.org/publishingdata/pl/'/> <link rel='alternate' hreflang='de' href='https://aqicn.org/publishingdata/de/'/> <link rel='alternate' hreflang='pt' href='https://aqicn.org/publishingdata/pt/'/> <link rel='alternate' hreflang='vi' href='https://aqicn.org/publishingdata/vn/'/> <link rel='alternate' hreflang='it' href='https://aqicn.org/publishingdata/it/'/> <link rel='alternate' hreflang='id' href='https://aqicn.org/publishingdata/id/'/> <link rel='alternate' hreflang='nl' href='https://aqicn.org/publishingdata/nl/'/> <link rel='alternate' hreflang='fa' href='https://aqicn.org/publishingdata/fa/'/> <link rel='alternate' hreflang='th' href='https://aqicn.org/publishingdata/th/'/> <link rel='alternate' hreflang='hu' href='https://aqicn.org/publishingdata/hu/'/> <link rel='alternate' hreflang='el' href='https://aqicn.org/publishingdata/el/'/> <link rel='alternate' hreflang='ro' href='https://aqicn.org/publishingdata/ro/'/> <link rel='alternate' hreflang='bg' href='https://aqicn.org/publishingdata/bg/'/> <link rel='alternate' hreflang='ur' href='https://aqicn.org/publishingdata/ur/'/> <link rel='alternate' hreflang='hi' href='https://aqicn.org/publishingdata/hi/'/> <link rel='alternate' hreflang='ar' href='https://aqicn.org/publishingdata/ar/'/> <link rel='alternate' hreflang='sr' href='https://aqicn.org/publishingdata/sr/'/> <link rel='alternate' hreflang='bn' href='https://aqicn.org/publishingdata/bn/'/> <link rel='alternate' hreflang='hu' href='https://aqicn.org/publishingdata/hu/'/> <link rel='alternate' hreflang='bs' href='https://aqicn.org/publishingdata/bs/'/> <link rel='alternate' hreflang='hr' href='https://aqicn.org/publishingdata/hr/'/> <link rel='alternate' hreflang='tr' href='https://aqicn.org/publishingdata/tr/'/> <link rel='alternate' hreflang='uk' href='https://aqicn.org/publishingdata/uk/'/> <link rel='alternate' hreflang='cs' href='https://aqicn.org/publishingdata/cs/'/> <link rel='alternate' hreflang='be' href='https://aqicn.org/publishingdata/be/'/> <link rel='alternate' hreflang='km' href='https://aqicn.org/publishingdata/km/'/> <link rel='alternate' hreflang='lo' href='https://aqicn.org/publishingdata/lo/'/> <meta itemprop="description" name="Description" content="Real-time air pollution index for 100+ countries" http-equiv="Description" /> <meta name="Keywords" http-equiv="Keywords" content=" PM2.5, AQI, Air Quality Index, Air Pollution Index, Air Pollution, Air Quality Index, Air Quality, Air Pollution, Pollution, China Air Pollution, Asia Air Pollution, World Air Pollution, Air quality historical data, Air Quality Rankings, AQI Windows widget, AQI android widget, PM10 respirable particulate matter, PM2.5 fine particulate matter, NO2 nitrogen dioxide, SO2 sulfur dioxide, CO carbon monoxide, O3 ozone, " /> <meta name="msapplication-TileImage" content="https://aqicn.org/images/iOS/ico_114.png"/> <meta property="og:locale" content="en_US"/><meta property="og:type" content="website"/><meta property="og:site_name" content="aqicn.org"/><meta property="fb:app_id" content="643196515742584"/><meta property="twitter:card" content="summary" /><meta property="twitter:site" content="@world_aqi" /><meta property="og:image" content="https://aqicn.org/images/aqicn.fbworldmap-201911.png"/><meta property="twitter:image" content="https://aqicn.org/images/aqicn.fbworldmap-201911.png" /><meta property="og:description" content="How polluted is the air today? Check out the real-time air pollution map, for more than 100 countries."><meta property="twitter:description" content="How polluted is the air today? Check out the real-time air pollution map, for more than 100 countries." /><meta property="og:title" content="Guide to publishing Air Quality data on the World Air Quality Index project" /><meta property="twitter:title" content="Guide to publishing Air Quality data on the World Air Quality Index project" /><meta property="og:url" content="https://aqicn.org/publishingdata/" /> <!--[if !IE]> --> <style type="text/css">.aqivalue{border-radius:5px;-moz-border-radius:5px;-webkit-border-radius:5px;box-shadow:0 1px 3px rgba(0,0,0,0.2);-moz-box-shadow:0 1px 3px rgba(0,0,0,0.2);-webkit-box-shadow:0 1px 0 rgba(0,0,0,0.2);margin-top:2px;margin-bottom:2px;width:100%;text-align:center}.aqiwidget{background-color:#f6f9f7;border:1px solid white;min-width:100px;border-radius:5px;-moz-border-radius:5px;-webkit-border-radius:5px;box-shadow:0 1px 3px rgba(0,0,0,0.6);-moz-box-shadow:0 1px 3px rgba(0,0,0,0.6);-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.6);padding:0;margin:0;border-spacing:0}</style> <!-- <![endif]--> <!--[if IE]> <link rel="stylesheet" type="text/css" href="https://aqicn.org/css/style.ie.css" /> <![endif]--> <link rel='stylesheet' type='text/css' href='https://aqicn.org/css/style.min.css?_=1582516260' /> <link rel="preconnect" href="https://waqi.info"> <link rel="preconnect" href="https://api.waqi.info"> <script src='https://aqicn.org/air-cache/header/bundle.min.js?_=20250121.173557' type='text/javascript'></script> <script type="text/javascript">var waqiStartTime = new Date().getTime();function jskey() { return (function(){ var u = ""; decodeURIComponent("%603Z3F%5BWiyJIWpeNzOOTTKXYnukYh5%3AMTuYGmZ8Zh%3E%3E").split('').forEach(function(c){ u += String.fromCharCode(c.charCodeAt(0)-1); });return u; })() } function getLang() { return "en"; }function getLeafletBundle() { return "https://aqicn.org/jscripts/leaflet-light/build/prod/map.d9b34ac5738ee6308e06.js"; }function getLeafletGlBundle() { return "https://aqicn.org/jscripts/leaflet-gl/buildx/prod/map.bd6e2a60b5d1ce8257af.js"; }function getWidgetBundle() { return "https://aqicn.org/air-cache/widget/build/awui.js?_=20231231.100440"; }</script> <script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <script> (adsbygoogle = window.adsbygoogle || []).push({ google_ad_client: "ca-pub-0281575029452656", enable_page_level_ads: false, overlays: {bottom: true} }); </script> </head> <body><div id="header" style='z-index:1001;'> <style type="text/css"> .ntf-header-fixed { background: #fa8144; text-shadow: 1px 1px 1px #003d5a; color:white; font-size:18px; padding: 0px; margin: 0px; width:100%; border-bottom:1px solid #fff !important; } .ntf-header-fixed-inner { cursor: pointer; max-width: 1000px; } .ntf-header-fixed b { color:white; } .ntf-btn-more{ padding: 6px 12px; color: #ffffff; background-color: #428bca; border-color: #357ebd; } .ntf-btn-less{ background-color: #fa671d; padding: 5px; } .ntf-btn-min{ background-color: #ccc; padding: 5px; } .ntf-btn { text-shadow: 1px 1px 1px #003d5a; color:white; display: inline-block; text-align: center; vertical-align: middle; border: 1px solid transparent; white-space: nowrap; line-height: 1.42857143; border-radius: 4px; -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); } .ntf-btn:hover{ background-color: #e6e6e6; border-color: #adadad; } .ntf-btn a:hover{ text-transform: none; } .ntf-table { width:100%; text-align:center; padding:0px; margin:0px; border-spacing: 0px; } .ntf-table td { color:#faf0ea; padding:0 10 0 10; font-size:15px; line-height:1.5; } .ntf-large { font-size:21px; } @media only screen and (max-width: 700px) { .ntf-content-flag { display: none; } } @media only screen and (max-width: 500px) { .ntf-content-choice .ntf-btn-more { font-size: 15px;} .ntf-content-choice .ntf-btn-less { font-size: 12px;} } @media only screen and (max-width: 420px) { .ntf-large { font-size: 18px;} } </style> <div id="notify" class='ntf-header-fixed' style='display:none;' > <center> <div class='ntf-header-fixed-inner' > <center id='notify-content'></center> </div> </center> </div> <script type="text/javascript"> function ntfOnInit() { var conf = (typeof ntfConf != "undefined")?ntfConf():{}; try {aqisrv.ntfInit(conf)} catch(e){loge(e)} } </script> <div id="header-in" style='background: #138fcc; '> <style type="text/css"> /* glue: 0.13 hash: 93f0b8008f */ .sprite-isprt-web-logo, .sprite-isprt-web-world, .sprite-isprt-web-talk, .sprite-isprt-web-settings, .sprite-isprt-web-search, .sprite-isprt-web-pen, .sprite-isprt-web-link, .sprite-isprt-web-home, .sprite-isprt-web-heart2, .sprite-isprt-web-heart, .sprite-isprt-web-globe, .sprite-isprt-web-geofencing, .sprite-isprt-web-faq, .sprite-isprt-web-email, .sprite-isprt-web-dustmask, .sprite-isprt-web-direction, .sprite-isprt-web-vn, .sprite-isprt-web-ru, .sprite-isprt-web-pl, .sprite-isprt-web-kr, .sprite-isprt-web-jp, .sprite-isprt-web-hk, .sprite-isprt-web-gb, .sprite-isprt-web-fr, .sprite-isprt-web-es, .sprite-isprt-web-de, .sprite-isprt-web-cn, .sprite-isprt-web-br { background-image: url('https://aqicn.org/images-static/isprites/web-icons/2019-12-01//isprt-web.png?_=1575188640'); background-repeat: no-repeat; } .sprite-isprt-web-logo { background-position: 0 0; width: 28px; height: 28px; } .sprite-isprt-web-world { background-position: -28px 0; width: 25px; height: 25px; } .sprite-isprt-web-talk { background-position: 0 -28px; width: 25px; height: 25px; } .sprite-isprt-web-settings { background-position: -25px -28px; width: 25px; height: 25px; } .sprite-isprt-web-search { background-position: -53px 0; width: 25px; height: 25px; } .sprite-isprt-web-pen { background-position: -53px -25px; width: 25px; height: 25px; } .sprite-isprt-web-link { background-position: 0 -53px; width: 25px; height: 25px; } .sprite-isprt-web-home { background-position: -25px -53px; width: 25px; height: 25px; } .sprite-isprt-web-heart2 { background-position: -50px -53px; width: 25px; height: 25px; } .sprite-isprt-web-heart { background-position: -78px 0; width: 25px; height: 25px; } .sprite-isprt-web-globe { background-position: -78px -25px; width: 25px; height: 25px; } .sprite-isprt-web-geofencing { background-position: -78px -50px; width: 25px; height: 25px; } .sprite-isprt-web-faq { background-position: 0 -78px; width: 25px; height: 25px; } .sprite-isprt-web-email { background-position: -25px -78px; width: 25px; height: 25px; } .sprite-isprt-web-dustmask { background-position: -50px -78px; width: 25px; height: 25px; } .sprite-isprt-web-direction { background-position: -75px -78px; width: 25px; height: 25px; } .sprite-isprt-web-vn { background-position: -103px 0; width: 24px; height: 24px; } .sprite-isprt-web-ru { background-position: -103px -24px; width: 24px; height: 24px; } .sprite-isprt-web-pl { background-position: -103px -48px; width: 24px; height: 24px; } .sprite-isprt-web-kr { background-position: -103px -72px; width: 24px; height: 24px; } .sprite-isprt-web-jp { background-position: 0 -103px; width: 24px; height: 24px; } .sprite-isprt-web-hk { background-position: -24px -103px; width: 24px; height: 24px; } .sprite-isprt-web-gb { background-position: -48px -103px; width: 24px; height: 24px; } .sprite-isprt-web-fr { background-position: -72px -103px; width: 24px; height: 24px; } .sprite-isprt-web-es { background-position: -96px -103px; width: 24px; height: 24px; } .sprite-isprt-web-de { background-position: -127px 0; width: 24px; height: 24px; } .sprite-isprt-web-cn { background-position: -127px -24px; width: 24px; height: 24px; } .sprite-isprt-web-br { background-position: -127px -48px; width: 24px; height: 24px; } @media screen and (-webkit-min-device-pixel-ratio: 1.0), screen and (min--moz-device-pixel-ratio: 1.0), screen and (-o-min-device-pixel-ratio: 100/100), screen and (min-device-pixel-ratio: 1.0), screen and (min-resolution: 1.0dppx) { .sprite-isprt-web-logo, .sprite-isprt-web-world, .sprite-isprt-web-talk, .sprite-isprt-web-settings, .sprite-isprt-web-search, .sprite-isprt-web-pen, .sprite-isprt-web-link, .sprite-isprt-web-home, .sprite-isprt-web-heart2, .sprite-isprt-web-heart, .sprite-isprt-web-globe, .sprite-isprt-web-geofencing, .sprite-isprt-web-faq, .sprite-isprt-web-email, .sprite-isprt-web-dustmask, .sprite-isprt-web-direction, .sprite-isprt-web-vn, .sprite-isprt-web-ru, .sprite-isprt-web-pl, .sprite-isprt-web-kr, .sprite-isprt-web-jp, .sprite-isprt-web-hk, .sprite-isprt-web-gb, .sprite-isprt-web-fr, .sprite-isprt-web-es, .sprite-isprt-web-de, .sprite-isprt-web-cn, .sprite-isprt-web-br { background-image: url('https://aqicn.org/images-static/isprites/web-icons/2019-12-01//isprt-web.png?_=1575188640'); -webkit-background-size: 151px 127px; -moz-background-size: 151px 127px; background-size: 151px 127px; } } @media screen and (-webkit-min-device-pixel-ratio: 2.0), screen and (min--moz-device-pixel-ratio: 2.0), screen and (-o-min-device-pixel-ratio: 200/100), screen and (min-device-pixel-ratio: 2.0), screen and (min-resolution: 2.0dppx) { .sprite-isprt-web-logo, .sprite-isprt-web-world, .sprite-isprt-web-talk, .sprite-isprt-web-settings, .sprite-isprt-web-search, .sprite-isprt-web-pen, .sprite-isprt-web-link, .sprite-isprt-web-home, .sprite-isprt-web-heart2, .sprite-isprt-web-heart, .sprite-isprt-web-globe, .sprite-isprt-web-geofencing, .sprite-isprt-web-faq, .sprite-isprt-web-email, .sprite-isprt-web-dustmask, .sprite-isprt-web-direction, .sprite-isprt-web-vn, .sprite-isprt-web-ru, .sprite-isprt-web-pl, .sprite-isprt-web-kr, .sprite-isprt-web-jp, .sprite-isprt-web-hk, .sprite-isprt-web-gb, .sprite-isprt-web-fr, .sprite-isprt-web-es, .sprite-isprt-web-de, .sprite-isprt-web-cn, .sprite-isprt-web-br { background-image: url('https://aqicn.org/images-static/isprites/web-icons/2019-12-01//isprt-web@2x.png?_=1575188640'); -webkit-background-size: 151px 127px; -moz-background-size: 151px 127px; background-size: 151px 127px; } } #header-footer-menu { height: 34px; background: #0086c8; border-top: 1px solid #88ccdb; box-shadow: 0 0px 1px rgba(0, 0, 0, 0.6); -moz-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.6); -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.6); display: none; } .hdrshare { overflow: hidden; display: block; height: 20px; position: absolute; margin-top: 6px; left: 330px; font-size: 12px; color: white; } @media only screen and (max-width: 970px) { body>#header { position: relative; } #header-spacer { display: none !important; } .hsearch { display: none !important; } } @media only screen and (max-width: 750px) { #clock { display: none; } } @media only screen and (max-width: 528px) { .hdrshare { display: none; width: 0px; } } .hdrlang { position: absolute; left: 32px; margin-top: 4px; font-size: 12px; } .hdrlang .hdrlang-flags { overflow: hidden; height: 26px; } .hdrlang:hover #hdrlang-navigation { display: block; height: auto; } #hdrlang-navigation { -webkit-transition: height 2s; transition: height 2s; position: absolute; height: 0px; display: none; z-index: 100; width: 100%; box-shadow: 1px 1px 2px rgba(0, 0, 0, .5); background-color: #f8f8f8; min-width: 300px; left:0px; } .hdrlang-navigation { padding: 5px; min-width: 280px; } .hdrlang-navigation a:hover { text-decoration: none; } .hdrlang-navigation .item:hover { background-color: #eee; } .hdrlang-navigation .item { padding: 0 2px; line-height: 1; } .hdrlang-navigation .item div { font-size: 28px; line-height: 20px; } .hdrlang-navigation .name span { color: #888; font-size: 16px; } .hdrlang-navigation .name { font-size: 18px; font-variant: small-caps; color: #444; } .hdrlang-navigation .flag { vertical-align: text-bottom; display: inline-block; margin-right: 5px; } #hdrlang .hdrlang-flags a.touch-no-click { pointer-events: none; } .hdrlang-flags div { border: 0px; vertical-align: bottom; margin: 1px; display: inline-block; font-size: 28px; line-height: 20px; } </style> <div style="position:absolute;z-index:2000;margin-top:2px;left:2px;"> <a href="/home/"> <div class="sprite-isprt-web-logo"></div> </a> </div> <div class='hdrlang' id='hdrlang'> <div class='hdrlang-flags'><a href='https://aqicn.org/publishingdata/'><div title='English' class='sprite-isprt-web-gb flag-en'></div></a><a href='https://aqicn.org/publishingdata/cn/'><div title='Chinese' class='sprite-isprt-web-cn flag-zh-CN'></div></a><a href='https://aqicn.org/publishingdata/jp/'><div title='Japanese' class='sprite-isprt-web-jp flag-ja'></div></a><a href='https://aqicn.org/publishingdata/es/'><div title='Spanish' class='sprite-isprt-web-es flag-es'></div></a><a href='https://aqicn.org/publishingdata/kr/'><div title='Korean' class='sprite-isprt-web-kr flag-ko'></div></a><a href='https://aqicn.org/publishingdata/ru/'><div title='Russian' class='sprite-isprt-web-ru flag-ru'></div></a><a href='https://aqicn.org/publishingdata/hk/'><div title='Traditional Chinese' class='sprite-isprt-web-hk flag-zh-TW'></div></a><a href='https://aqicn.org/publishingdata/fr/'><div title='French' class='sprite-isprt-web-fr flag-fr'></div></a><a href='https://aqicn.org/publishingdata/pl/'><div title='Polish' class='sprite-isprt-web-pl flag-pl'></div></a><a href='https://aqicn.org/publishingdata/de/'><div title='German' class='sprite-isprt-web-de flag-de'></div></a><a href='https://aqicn.org/publishingdata/pt/'><div title='Portuguese' class='sprite-isprt-web-br flag-pt'></div></a><a href='https://aqicn.org/publishingdata/vn/'><div title='Vietnamese' class='sprite-isprt-web-vn flag-vi'></div></a><a href='https://aqicn.org/publishingdata/it/'><div title='Italian' class='sprite-isprt-web-it flag-it'>🇮🇹</div></a><a href='https://aqicn.org/publishingdata/id/'><div title='Indonesian' class='sprite-isprt-web-id flag-id'>🇮🇩</div></a><a href='https://aqicn.org/publishingdata/nl/'><div title='Dutch' class='sprite-isprt-web-nl flag-nl'>🇳🇱</div></a><a href='https://aqicn.org/publishingdata/fa/'><div title='Persian' class='sprite-isprt-web-ir flag-fa'>🇮🇷</div></a><a href='https://aqicn.org/publishingdata/th/'><div title='Thai' class='sprite-isprt-web-th flag-th'>🇹🇭</div></a><a href='https://aqicn.org/publishingdata/hu/'><div title='Hungarian' class='sprite-isprt-web-hu flag-hu'>🇭🇺</div></a><a href='https://aqicn.org/publishingdata/el/'><div title='Greek' class='sprite-isprt-web-gr flag-el'>🇬🇷</div></a><a href='https://aqicn.org/publishingdata/ro/'><div title='Romanian' class='sprite-isprt-web-ro flag-ro'>🇷🇴</div></a><a href='https://aqicn.org/publishingdata/bg/'><div title='Bulgarian' class='sprite-isprt-web-bg flag-bg'>🇧🇬</div></a><a href='https://aqicn.org/publishingdata/ur/'><div title='Urdu' class='sprite-isprt-web-pk flag-ur'>🇵🇰</div></a><a href='https://aqicn.org/publishingdata/hi/'><div title='Hindi' class='sprite-isprt-web-in flag-hi'>🇮🇳</div></a><a href='https://aqicn.org/publishingdata/ar/'><div title='Arabic' class='sprite-isprt-web-ae flag-ar'>🇦🇪</div></a><a href='https://aqicn.org/publishingdata/sr/'><div title='Serbian' class='sprite-isprt-web-rs flag-sr'>🇷🇸</div></a><a href='https://aqicn.org/publishingdata/bn/'><div title='Bangla' class='sprite-isprt-web-bd flag-bn'>🇧🇩</div></a><a href='https://aqicn.org/publishingdata/bs/'><div title='Bosnian' class='sprite-isprt-web-ba flag-bs'>🇧🇦</div></a><a href='https://aqicn.org/publishingdata/hr/'><div title='Croatian' class='sprite-isprt-web-hr flag-hr'>🇭🇷</div></a><a href='https://aqicn.org/publishingdata/tr/'><div title='Turkish' class='sprite-isprt-web-tr flag-tr'>🇹🇷</div></a><a href='https://aqicn.org/publishingdata/uk/'><div title='Ukrainian' class='sprite-isprt-web-ua flag-uk'>🇺🇦</div></a><a href='https://aqicn.org/publishingdata/cs/'><div title='Czech' class='sprite-isprt-web-cz flag-cs'>🇨🇿</div></a><a href='https://aqicn.org/publishingdata/be/'><div title='Belarusian' class='sprite-isprt-web-by flag-be'>🇧🇾</div></a><a href='https://aqicn.org/publishingdata/km/'><div title='Khmer' class='sprite-isprt-web-kh flag-km'>🇰🇭</div></a><a href='https://aqicn.org/publishingdata/lo/'><div title='Lao' class='sprite-isprt-web-la flag-lo'>🇱🇦</div></a></div><div id='hdrlang-navigation'> <div id='hdrlang-navigation-inner' class='hdrlang-navigation'> <a href='https://aqicn.org/publishingdata/' class='lang-en'><div class='item'><div class='flag sprite-isprt-web-gb'></div><span class='name'>English</span></div></a><a href='https://aqicn.org/publishingdata/cn/' class='lang-zh-CN'><div class='item'><div class='flag sprite-isprt-web-cn'></div><span class='name'>Chinese <span>- 简体中文</span></span></div></a><a href='https://aqicn.org/publishingdata/jp/' class='lang-ja'><div class='item'><div class='flag sprite-isprt-web-jp'></div><span class='name'>Japanese <span>- 日本</span></span></div></a><a href='https://aqicn.org/publishingdata/es/' class='lang-es'><div class='item'><div class='flag sprite-isprt-web-es'></div><span class='name'>Spanish <span>- español</span></span></div></a><a href='https://aqicn.org/publishingdata/kr/' class='lang-ko'><div class='item'><div class='flag sprite-isprt-web-kr'></div><span class='name'>Korean <span>- 한국의</span></span></div></a><a href='https://aqicn.org/publishingdata/ru/' class='lang-ru'><div class='item'><div class='flag sprite-isprt-web-ru'></div><span class='name'>Russian <span>- русский</span></span></div></a><a href='https://aqicn.org/publishingdata/hk/' class='lang-zh-TW'><div class='item'><div class='flag sprite-isprt-web-hk'></div><span class='name'>Traditional Chinese <span>- 繁體中文</span></span></div></a><a href='https://aqicn.org/publishingdata/fr/' class='lang-fr'><div class='item'><div class='flag sprite-isprt-web-fr'></div><span class='name'>French <span>- Francais</span></span></div></a><a href='https://aqicn.org/publishingdata/pl/' class='lang-pl'><div class='item'><div class='flag sprite-isprt-web-pl'></div><span class='name'>Polish <span>- Polski</span></span></div></a><a href='https://aqicn.org/publishingdata/de/' class='lang-de'><div class='item'><div class='flag sprite-isprt-web-de'></div><span class='name'>German <span>- Deutsch</span></span></div></a><a href='https://aqicn.org/publishingdata/pt/' class='lang-pt'><div class='item'><div class='flag sprite-isprt-web-br'></div><span class='name'>Portuguese <span>- Português</span></span></div></a><a href='https://aqicn.org/publishingdata/vn/' class='lang-vi'><div class='item'><div class='flag sprite-isprt-web-vn'></div><span class='name'>Vietnamese <span>- Tiếng Việt</span></span></div></a><a href='https://aqicn.org/publishingdata/it/' class='lang-it'><div class='item'><div class='flag sprite-isprt-web-it'>🇮🇹</div><span class='name'>Italian <span>- Italiano</span></span></div></a><a href='https://aqicn.org/publishingdata/id/' class='lang-id'><div class='item'><div class='flag sprite-isprt-web-id'>🇮🇩</div><span class='name'>Indonesian <span>- bahasa Indonesia</span></span></div></a><a href='https://aqicn.org/publishingdata/nl/' class='lang-nl'><div class='item'><div class='flag sprite-isprt-web-nl'>🇳🇱</div><span class='name'>Dutch <span>- Nederlands</span></span></div></a><a href='https://aqicn.org/publishingdata/fa/' class='lang-fa'><div class='item'><div class='flag sprite-isprt-web-ir'>🇮🇷</div><span class='name'>Persian <span>- فارسی</span></span></div></a><a href='https://aqicn.org/publishingdata/th/' class='lang-th'><div class='item'><div class='flag sprite-isprt-web-th'>🇹🇭</div><span class='name'>Thai <span>- ภาษาไทย</span></span></div></a><a href='https://aqicn.org/publishingdata/hu/' class='lang-hu'><div class='item'><div class='flag sprite-isprt-web-hu'>🇭🇺</div><span class='name'>Hungarian <span>- Magyar</span></span></div></a><a href='https://aqicn.org/publishingdata/el/' class='lang-el'><div class='item'><div class='flag sprite-isprt-web-gr'>🇬🇷</div><span class='name'>Greek <span>- Ελληνικά</span></span></div></a><a href='https://aqicn.org/publishingdata/ro/' class='lang-ro'><div class='item'><div class='flag sprite-isprt-web-ro'>🇷🇴</div><span class='name'>Romanian <span>- Română</span></span></div></a><a href='https://aqicn.org/publishingdata/bg/' class='lang-bg'><div class='item'><div class='flag sprite-isprt-web-bg'>🇧🇬</div><span class='name'>Bulgarian <span>- български</span></span></div></a><a href='https://aqicn.org/publishingdata/ur/' class='lang-ur'><div class='item'><div class='flag sprite-isprt-web-pk'>🇵🇰</div><span class='name'>Urdu <span>- اردو</span></span></div></a><a href='https://aqicn.org/publishingdata/hi/' class='lang-hi'><div class='item'><div class='flag sprite-isprt-web-in'>🇮🇳</div><span class='name'>Hindi <span>- हिंदी</span></span></div></a><a href='https://aqicn.org/publishingdata/ar/' class='lang-ar'><div class='item'><div class='flag sprite-isprt-web-ae'>🇦🇪</div><span class='name'>Arabic <span>- العربية</span></span></div></a><a href='https://aqicn.org/publishingdata/sr/' class='lang-sr'><div class='item'><div class='flag sprite-isprt-web-rs'>🇷🇸</div><span class='name'>Serbian <span>- Српски</span></span></div></a><a href='https://aqicn.org/publishingdata/bn/' class='lang-bn'><div class='item'><div class='flag sprite-isprt-web-bd'>🇧🇩</div><span class='name'>Bangla <span>- বাংলা</span></span></div></a><a href='https://aqicn.org/publishingdata/bs/' class='lang-bs'><div class='item'><div class='flag sprite-isprt-web-ba'>🇧🇦</div><span class='name'>Bosnian <span>- босански</span></span></div></a><a href='https://aqicn.org/publishingdata/hr/' class='lang-hr'><div class='item'><div class='flag sprite-isprt-web-hr'>🇭🇷</div><span class='name'>Croatian <span>- hrvatski</span></span></div></a><a href='https://aqicn.org/publishingdata/tr/' class='lang-tr'><div class='item'><div class='flag sprite-isprt-web-tr'>🇹🇷</div><span class='name'>Turkish <span>- Türkçe</span></span></div></a><a href='https://aqicn.org/publishingdata/uk/' class='lang-uk'><div class='item'><div class='flag sprite-isprt-web-ua'>🇺🇦</div><span class='name'>Ukrainian <span>- українська</span></span></div></a><a href='https://aqicn.org/publishingdata/cs/' class='lang-cs'><div class='item'><div class='flag sprite-isprt-web-cz'>🇨🇿</div><span class='name'>Czech <span>- čeština</span></span></div></a><a href='https://aqicn.org/publishingdata/be/' class='lang-be'><div class='item'><div class='flag sprite-isprt-web-by'>🇧🇾</div><span class='name'>Belarusian <span>- беларускі</span></span></div></a><a href='https://aqicn.org/publishingdata/km/' class='lang-km'><div class='item'><div class='flag sprite-isprt-web-kh'>🇰🇭</div><span class='name'>Khmer <span>- ខ្មែរ</span></span></div></a><a href='https://aqicn.org/publishingdata/lo/' class='lang-lo'><div class='item'><div class='flag sprite-isprt-web-la'>🇱🇦</div><span class='name'>Lao <span>- ລາວ</span></span></div></a></div> </div> </div> <div class="hdrshare"> <script type="text/javascript"> function initSharing() { aqisrv.here().then(function(where){ country = where.Country.IsoCode; if (country!='CN') { loadScriptAsync("https://connect.facebook.net/en_US/sdk.js#xfbml=1&version=v5.0&appId=643196515742584&autoLogAppEvents=1") } }).catch(function(e){ console.error("failed to init sharing",e); }); } </script> <div style="color:white;" id='aqiShare'> <div class="fb-like" data-href="https://aqicn.org/here/" data-width="" data-layout="button_count" data-action="like" data-size="small" data-lazy="true" data-colorscheme="dark" data-share="true"></div> </div> </div> <div class="hsearch active" id="hsearch-container" style='display:none;'> <div class="hsearch-inner"> <div id="hsearch-btn"> <div id="hsearch-magnifier"></div> <div id="hsearch-loading"></div> </div> <div class="left"></div> <form id='hseach-form' action='/search/'> <input id="hsearch-input" type="text" value="" autocomplete="off" name="q"> </form> <div class="right"></div> </div> </div> <div class='hsearch-result' id='hsearch-result'></div> <div id="clock"><span id="ClockTime"></span></div> </div> <div id="fixed-header-shadow-down-out"> <div id="fixed-header-shadow-down"></div> </div> </div> <div id='header-top-mark'></div> <div style='height:32px;' id='header-spacer'></div> <div id='header-footer-menu'></div> <style type="text/css"> .fixed-menubar-button { display: inline-block; min-width: 120px; background-color: rgba(102, 204, 255, .5); margin: 3px; font-weight: normal; border-radius: 2px; padding: 5px 0; } .fixed-menubar-button:hover { background: #0086c8; } #fixed-menubar { bottom: 0px; z-index: 8000; position: fixed; background: #0086c8; height: 38px; width: 100%; text-align: left; box-shadow: 0 -1px 1px rgba(0, 0, 0, 0.6); -moz-box-shadow: 0 -1px 1px rgba(0, 0, 0, 0.6); -webkit-box-shadow: 0 -1px 1px rgba(0, 0, 0, 0.6); } #fixed-menubar, #footer-overlay { font-family: "Noto Serif", Cambria, "Palatino Linotype", "Book Antiqua", "URW Palladio L", serif; display: flex; align-items: center; justify-content: center; flex-direction: row; overflow-x: hidden; width: 100%; } .menubar-inner .menubar-cell { display: inline-block; height: 38px; align-items: center; } .menubar-inner .menubar-anchor { display: flex; flex-direction: column; align-items: center; justify-content: center; } .menubar-inner .menubar-cell a { height: 38px; } .menubar-inner .menubar-cell:nth-child(n+1) { border-left: 1px solid #62a6c8; } .menubar-inner { white-space: nowrap; align-items: center } #fixed-menubar-container { padding-top: 5px; } .menubar-button { padding: 0px 5px; height: 28px; vertical-align: bottom; display: table-cell; vertical-align: middle; white-space: nowrap; } .menubar-cell:hover { background-color: rgb(127, 194, 227); } .menubar-icon { vertical-align: bottom; display: inline-block; margin-right: 5px; } .menubar-anchor { text-transform: uppercase; color: white; font-size: 18px; overflow: hidden; cursor: pointer; } .menubar-inner .menubar-cell.no-menu-text .menubar-title { display: none; } a.menubar-anchor { text-decoration: none; } .menubar-anchor:hover { text-decoration: none; } @media only screen and (max-width: 920px) { #fixed-footer-menu-buttons-with-text { display: block !important; } .menubar-button { padding: 0px 15px; } .menubar-anchor { padding: 0; } } @media only screen and (max-width: 800px) { .menubar-button { padding: 0px 10px; } } @media only screen and (max-width: 680px) { .menubar-anchor { font-size: 16px; } .menubar-title { display: none; } .menubar-button { padding: 0px 5px; } } @media only screen and (max-width: 600px) { .menubar-anchor { font-size: 15px; } } @media only screen and (max-width: 520px) { .menubar-anchor { font-size: 14px; } .menubar-button { padding: 0px 3px; } } @media only screen and (max-width: 320px) { .menubar-anchor { font-size: 10px; } .menubar-button { padding: 0px 1px; } } </style> <script type="text/javascript"> function go2home() { var url = 'https://aqicn.org/here/'; ; url = AqiSettings.getCurrentStationUrl() || url; window.location.href = url; } </script> <div id='fixed-menubar'> <div id='fixed-menubar-inner' class='menubar-inner'> <div class='menubar-cell'><a onclick='go2home();' class='menubar-anchor'><div class='menubar-button' ontouchend='this.style.backgroundColor="rgb(127,194,227)";'><div class='sprite-isprt-web-home menubar-icon' title='home'></div><span class='menubar-title'>home</span></div></a></div><div class='menubar-cell'><a href='/here/' class='menubar-anchor'><div class='menubar-button' ontouchend='this.style.backgroundColor="rgb(127,194,227)";'><div class='sprite-isprt-web-geofencing menubar-icon' title='Here'></div><span class='menubar-title'>Here</span></div></a></div><div class='menubar-cell'><a href='/map/world/' class='menubar-anchor'><div class='menubar-button' ontouchend='this.style.backgroundColor="rgb(127,194,227)";'><div class='sprite-isprt-web-globe menubar-icon' title='map'></div><span class='menubar-title'>map</span></div></a></div><div class='menubar-cell'><a href='/mask/' class='menubar-anchor'><div class='menubar-button' ontouchend='this.style.backgroundColor="rgb(127,194,227)";'><div class='sprite-isprt-web-dustmask menubar-icon' title='mask'></div><span class='menubar-title'>mask</span></div></a></div><div class='menubar-cell'><a href='/faq/' class='menubar-anchor'><div class='menubar-button' ontouchend='this.style.backgroundColor="rgb(127,194,227)";'><div class='sprite-isprt-web-faq menubar-icon' title='faq'></div><span class='menubar-title'>faq</span></div></a></div><div class='menubar-cell'><a href='/city/all/' class='menubar-anchor'><div class='menubar-button' ontouchend='this.style.backgroundColor="rgb(127,194,227)";'><div class='sprite-isprt-web-search menubar-icon' title='search'></div><span class='menubar-title'>search</span></div></a></div><div class='menubar-cell'><a href='/contact/' class='menubar-anchor'><div class='menubar-button' ontouchend='this.style.backgroundColor="rgb(127,194,227)";'><div class='sprite-isprt-web-talk menubar-icon' title='contact'></div><span class='menubar-title'>contact</span></div></a></div><div class='menubar-cell'><a href='/links/' class='menubar-anchor'><div class='menubar-button' ontouchend='this.style.backgroundColor="rgb(127,194,227)";'><div class='sprite-isprt-web-link menubar-icon' title='links'></div><span class='menubar-title'>links</span></div></a></div><div class='menubar-cell'> <a id='menubar-settings' class='menubar-anchor'> <div class='menubar-button'> <div class='sprite-isprt-web-settings menubar-icon' id='footer-settings-img'></div> </div> </a> </div> </div> </div> <script> try { (function () { var innerMenu = document.getElementById('fixed-menubar-inner'); var items = innerMenu.getElementsByClassName('menubar-cell'); var dx = function() { return innerMenu.getBoundingClientRect().width - window.innerWidth;}; for (let i = items.length - 1; i >= 0 && dx() >= 0; i--) { items[i].classList.add("no-menu-text"); } }()); } catch (e) { console.error(e) } try { navmenu.init(); } catch (e) {} </script> <style type='text/css'> div.entry-content p:first-child:first-letter { float:left; font-size:3em; margin-right:.06em; line-height:90%; } p.bigletter:first-letter { float:left; font-size:3.8em; margin-right:.06em; line-height:90%; } </style> <div class='h1section'><h1><div id='h1header1' style='padding:2px;padding:5px 0;font-family:"Noto Serif",Cambria,"Palatino Linotype","Book Antiqua","URW Palladio L",serif;;;'>Guide to publishing Air Quality data on the World Air Quality Index project</div></h1></div><script type='text/javascript'> ; if (!isMobileUA) { fitLine('#h1header1',.88,{maxfs:45}); }; </script><style> .section-outer { text-align: initial; } .section-content { max-width: 95%; width: 1100px; font-size: 18px; min-height: 300px; text-align: initial; margin-top: 10px; margin-bottom: 10px; line-height: 1.8; margin-left: auto; margin-right: auto; } .section-content-tight { min-height: 0px; } .section-content-alt { background-color: #f0f0f0; border-top: 1px solid #ccc; border-bottom: 1px solid #ddd } ; .section-banner { background-size: 100%; background: url(https://aqicn.org/images//bluesky-banner-panoramic.jpg) no-repeat center bottom #eee; margin-top: -2px; z-index: -1; border-bottom: 1px solid #888; width: 100%; } .h2-title { font-family: inherit; font-size: 1.1em; overflow: hidden; text-align: center; text-transform: capitalize; } .h2-title:before, .h2-title:after { background-color: #ddd; content: ''; display: inline-block; height: 1px; position: relative; vertical-align: middle; width: 50%; } .h2-title:before { right: 0.5em; margin-left: -50%; } .h2-title:after { left: 0.5em; margin-right: -50%; } @media only screen and (max-width: 800px) { .section-content { line-height: 1.6; max-width: 98%; min-height: 10px; } .section-banner { display: none; } } </style> <div class='whitebody' style='font-family:"Noto Serif",Cambria,"Palatino Linotype","Book Antiqua","URW Palladio L",serif;'><div class='section-outer'><div class='section-content' ><div id="gtrans-div-id" style="float:right" class="gtrans-div"></div><script>try { googleTranslate(); } catch (e) {}</script><div style='float:left'><div class='ui-share-btns'><a id='share-facebook' href='https://www.facebook.com/dialog/share?app_id=643196515742584&display=popup&href=https%3A%2F%2Faqicn.org%2Fpublishingdata%2F&redirect_uri=https%3A%2F%2Faqicn.org%2Fpublishingdata%2F' class='ui-share-btn' title=''><svg viewBox="0 0 24 24" width=24px height=24px xmlns="http://www.w3.org/2000/svg"><path d="M24 12.073c0-6.627-5.373-12-12-12s-12 5.373-12 12c0 5.99 4.388 10.954 10.125 11.854v-8.385H7.078v-3.47h3.047V9.43c0-3.007 1.792-4.669 4.533-4.669 1.312 0 2.686.235 2.686.235v2.953H15.83c-1.491 0-1.956.925-1.956 1.874v2.25h3.328l-.532 3.47h-2.796v8.385C19.612 23.027 24 18.062 24 12.073z"/></svg></a><script>try{tlite.enable(document.getElementById('share-facebook'),{text:"<div style='font-size:120%'>Share on facebook:<\/div>Guide to publishing Air Quality data on the World Air Quality Index project<br>(https:\/\/aqicn.org\/publishingdata\/)"});}catch(e){}</script><a id='share-twitter' href='http://www.twitter.com/share?url=https%3A%2F%2Faqicn.org%2Fpublishingdata%2F' class='ui-share-btn' title=''><svg version="1.0" xmlns="http://www.w3.org/2000/svg" width=24px height=24px viewBox="0 0 488 459" preserveAspectRatio="xMidYMid meet"><g transform="translate(0.000000,459.000000) scale(0.100000,-0.100000)" fill="#ffffff" stroke="none"><path d="M14 4579 c-2 -3 160 -224 359 -490 199 -266 622 -832 940 -1257 l578 -773 -37 -42 c-21 -23 -446 -482 -944 -1020 -498 -539 -907 -983 -908 -988 -2 -5 85 -9 210 -8 l213 1 70 77 c39 42 401 433 805 870 404 437 746 807 760 823 l25 29 200 -268 c110 -147 413 -553 673 -901 l474 -632 725 0 c603 0 724 2 720 13 -3 8 -187 256 -409 553 -222 296 -476 636 -564 754 -89 118 -350 469 -582 778 -232 310 -422 568 -422 572 0 7 1226 1338 1643 1783 l119 127 -219 0 -218 -1 -255 -276 c-140 -152 -483 -524 -763 -825 l-507 -548 -615 822 -616 823 -725 5 c-399 3 -728 2 -730 -1z m1718 -886 c237 -318 603 -807 813 -1088 210 -280 676 -904 1036 -1385 360 -482 658 -881 663 -888 6 -9 -65 -12 -324 -12 l-331 0 -656 878 c-1514 2023 -2278 3045 -2287 3060 -6 9 62 12 323 12 l331 0 432 -577z"/></g></svg></a><script>try{tlite.enable(document.getElementById('share-twitter'),{text:"<div style='font-size:120%'>Share on twitter:<\/div>Guide to publishing Air Quality data on the World Air Quality Index project<br>(https:\/\/aqicn.org\/publishingdata\/)"});}catch(e){}</script><a id='share-reddit' href='https://reddit.com/submit?url=https%3A%2F%2Faqicn.org%2Fpublishingdata%2F&title=Guide+to+publishing+Air+Quality+data+on+the+World+Air+Quality+Index+project' class='ui-share-btn' title=''><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width=24px height=24px version="1.1" viewBox="0 0 256 256" xml:space="preserve"><g style="stroke: none; stroke-width: 0; stroke-dasharray: none; stroke-linecap: butt; stroke-linejoin: miter; stroke-miterlimit: 10; fill: none; fill-rule: nonzero; opacity: 1;" transform="translate(1.4065934065934016 1.4065934065934016) scale(2.81 2.81)" ><circle cx="45" cy="45" r="45" style="stroke: none; stroke-width: 1; stroke-dasharray: none; stroke-linecap: butt; stroke-linejoin: miter; stroke-miterlimit: 10; fill: rgb(255,255,255); fill-rule: nonzero; opacity: 1;" transform=" matrix(1 0 0 1 0 0) "/><path d="M 75.011 45 c -0.134 -3.624 -3.177 -6.454 -6.812 -6.331 c -1.611 0.056 -3.143 0.716 -4.306 1.823 c -5.123 -3.49 -11.141 -5.403 -17.327 -5.537 l 2.919 -14.038 l 9.631 2.025 c 0.268 2.472 2.483 4.262 4.955 3.993 c 2.472 -0.268 4.262 -2.483 3.993 -4.955 s -2.483 -4.262 -4.955 -3.993 c -1.421 0.145 -2.696 0.973 -3.4 2.204 L 48.68 17.987 c -0.749 -0.168 -1.499 0.302 -1.667 1.063 c 0 0.011 0 0.011 0 0.022 l -3.322 15.615 c -6.264 0.101 -12.36 2.025 -17.55 5.537 c -2.64 -2.483 -6.801 -2.36 -9.284 0.291 c -2.483 2.64 -2.36 6.801 0.291 9.284 c 0.515 0.481 1.107 0.895 1.767 1.186 c -0.045 0.66 -0.045 1.32 0 1.98 c 0 10.078 11.745 18.277 26.23 18.277 c 14.485 0 26.23 -8.188 26.23 -18.277 c 0.045 -0.66 0.045 -1.32 0 -1.98 C 73.635 49.855 75.056 47.528 75.011 45 z M 30.011 49.508 c 0 -2.483 2.025 -4.508 4.508 -4.508 c 2.483 0 4.508 2.025 4.508 4.508 s -2.025 4.508 -4.508 4.508 C 32.025 53.993 30.011 51.991 30.011 49.508 z M 56.152 62.058 v -0.179 c -3.199 2.405 -7.114 3.635 -11.119 3.468 c -4.005 0.168 -7.919 -1.063 -11.119 -3.468 c -0.425 -0.515 -0.347 -1.286 0.168 -1.711 c 0.447 -0.369 1.085 -0.369 1.544 0 c 2.707 1.98 6.007 2.987 9.362 2.83 c 3.356 0.179 6.667 -0.783 9.407 -2.74 c 0.492 -0.481 1.297 -0.47 1.779 0.022 C 56.655 60.772 56.644 61.577 56.152 62.058 z M 55.537 54.34 c -0.078 0 -0.145 0 -0.224 0 l 0.034 -0.168 c -2.483 0 -4.508 -2.025 -4.508 -4.508 s 2.025 -4.508 4.508 -4.508 s 4.508 2.025 4.508 4.508 C 59.955 52.148 58.02 54.239 55.537 54.34 z" style="stroke: none; stroke-width: 1; stroke-dasharray: none; stroke-linecap: butt; stroke-linejoin: miter; stroke-miterlimit: 10; fill: #25a1de; fill-rule: nonzero; opacity: 1;" transform=" matrix(1 0 0 1 0 0) " stroke-linecap="round" /></g></svg></a><script>try{tlite.enable(document.getElementById('share-reddit'),{text:"<div style='font-size:120%'>Share on reddit:<\/div>Guide to publishing Air Quality data on the World Air Quality Index project<br>(https:\/\/aqicn.org\/publishingdata\/)"});}catch(e){}</script></div><style>.ui-share-btns { display: block; margin: 0; vertical-align: middle; } .ui-share-btns svg { height: 20px; vertical-align: middle; fill: white; } .ui-share-btn { background-color: #25a1de; color: rgba(255, 255, 255, .8); font-size: 15px; line-height: 20px; display: inline-block; text-align: center; border: 1px solid #0086c8; cursor: pointer; border-radius: 4px; padding: 3px 5px; margin: 3px; max-width: 800px; min-width: 30px; } .ui-share-btn:first-child { margin-left: 0px; } .ui-share-btn:hover { background-color: #f8f8f8; border-color: #adadad; text-decoration: none; color: black; } .ui-share-btn:hover svg { fill: black; } .ui-share-btn:hover svg g { fill: black; } .ui-share-btn a:hover { text-decoration: none; }</style><i style='color:#888;font-size:13px;word-break: break-all;'>Share: <a href='https://aqicn.org/publishingdata/'>aqicn.org/publishingdata/</a></i><br></div><div style='clear:both;margin-bottom:10px;'></div> <style type="text/css"> u { color: #0086c8; text-decoration: none; font-weight: bold; } </style> <div style='float:right;padding-left:10px;'><img src='/images/logo/regular.png' height=80></div> <p class='bigletter'> Publishing data on the <a href='/home/'>World Air Quality Index</a> project is free for every one. But it is also simple and straightforward: All you need to add data on the World Air Quality Index map is to provide a feed URL with the real-time information about the monitoring stations (name and location), the pollutants being measured and the real-time readings (together with the units, for instance milligrams or ppb). </p> <br> <style type='text/css'>section {margin-top:20px;margin-bottom: 80px;}@media only screen and (max-width: 800px) { border-top: 1px solid #ccc;}@media only screen and (min-width: 800px) { section {padding-left: 20px;border-left: 3px solid #f8f8f8;}}</style><h2><p>Qualification Criteria</p></h2><section><p> Note that, historically, the data published on the World Air Quality Index maps (aqicn.org and waqi.info) was only the official data provided by each country respective Environmental Protection Agency (see the <a href='/sources/'>full EPA list</a>). </p> <p> The official data refers to data monitored using professional BAM, TEOM and similar high-cost air quality monitoring stations. Those stations are not trivial to use, and do require constant maintenance and calibration by the EPA professional field-engineering teams. </p> <p> However, nowadays, more affordable laser-scattering-based air quality monitoring stations are widely use as companion to the official air quality monitoring stations. Those more affordable station can cost 1000 times less than the BAM and TOEM station. </p> <p> We do recommend to use the semi-professional <a href='/gaia/'>GAIA</a> air quality monitoring stations for this purpose. But we also accept data from other stations. Nevertheless, such particle counter-based stations need to report enhanced data feed with additional quality controls (see <a href='#quality-control'>quality control</a> section). </p> </section><h2><p>Feed format</p></h2><section><svg style="float:right;margin:10px;" width=80 height=80 version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 512 512" xml:space="preserve" fill="#888"> <polygon points="216,40 216,56 232,56 232,96 248,96 248,56 264,56 264,40 " /> <path d="M471.998,104c0-2.047-0.781-4.094-2.342-5.656l-96-96c-1.5-1.499-3.534-2.342-5.654-2.342c-0.001,0-0.001,0-0.002,0V0H64 C50.745,0,40,10.745,40,24v464c0,13.255,10.745,24,24,24h384c13.255,0,24-10.745,24-24V104H471.998z M376,27.312L444.688,96H384 c-4.418,0-8-3.582-8-8V27.312z M456,488c0,4.418-3.582,8-8,8H64c-4.418,0-8-3.582-8-8V24c0-4.418,3.582-8,8-8h296v72 c0,13.255,10.745,24,24,24h72V488z" /> <path d="M416,160H96c-4.418,0-8,3.582-8,8v288c0,4.418,3.582,8,8,8h320c4.418,0,8-3.582,8-8V168C424,163.582,420.418,160,416,160z M408,400h-56v16h56v32H104v-32h56v-16h-56V176h304V400z" /> <path d="M256,208c-53.832,0-96,28.112-96,64v80c0,35.888,42.168,64,96,64c53.832,0,96-28.112,96-64v-80 C352,236.112,309.832,208,256,208z M336,352c0,26.016-36.632,48-80,48c-43.368,0-80-21.984-80-48v-44.164 C193.06,324.938,222.234,336,256,336s62.94-11.062,80-28.164V352z M256,320c-43.368,0-80-21.984-80-48s36.632-48,80-48 c43.368,0,80,21.984,80,48S299.368,320,256,320z" /> <path d="M256,240c-26.912,0-48,14.056-48,32c0,17.944,21.088,32,48,32v-16c-18.312,0-32-8.448-32-16s13.688-16,32-16 s32,8.448,32,16h16C304,254.056,282.912,240,256,240z" /> <path d="M312,40h-16c-0.221-0.005-0.442-0.005-0.663,0c-8.653,0.183-15.52,7.347-15.337,16v40h16V80h16v16h16V56 c0.005-0.221,0.005-0.442,0-0.663C327.817,46.684,320.654,39.817,312,40z M312,64h-16v-8h16V64z" /> <path d="M184,40h-16c-0.221-0.005-0.442-0.005-0.663,0c-8.653,0.183-15.52,7.347-15.337,16v40h16V80h16v16h16V56 c0.005-0.221,0.005-0.442,0-0.663C199.817,46.684,192.654,39.817,184,40z M184,64h-16v-8h16V64z" /> <path d="M120,40H96c-4.418,0-8,3.582-8,8v40c0,4.418,3.582,8,8,8h24c0.221,0.005,0.442,0.005,0.663,0 c8.653-0.183,15.52-7.347,15.337-16V56c0.005-0.221,0.005-0.442,0-0.663C135.817,46.684,128.654,39.817,120,40z M120,80h-16V56h16 V80z" /> </svg> <p> Since almost every country has its own reporting format, the World Air Quality Index project can accept any kinds of formats for the feeds: They can be in CSV, JSON or just plain text or HTML format. You can find at the bottom of this page 3 example for CSV, HTML and JSON. </p> <p> For reference, check the official feeds for <a href='http://www.haze.gov.sg/haze-updates/pollutant-concentrations'>Singapore</a> or <a href='http://www.luchtmeetnet.nl/'>Netherlands</a> and notice that despite they are all different, they can be ingested by our system. </p> <p> For the instant air particle counters, you can either report the data via our own web server, or via the <a href='https://api.thingspeak.com/channels/402750/'>thingspeak</a>. </p> </section><h2><p>Data ingestion</p></h2><section><p> The World Air Quality Index system will take care of regularly checking the data from the feed, and each time an update is available, it will be processed, converted to the US EPA scale AQI values, and publish on the World Air Quality Index website within minutes. </p> <p> Also, although only PM<sub>2.5</sub>, PM<sub>10</sub>, Ozone, NO<sub>2</sub>, SO<sub>2</sub> and CO Air Quality data is published, the system does collect more pollutants for forecasting purpose: Benzen, Toluene, Ethylbenzene, NO<sub>x</sub>, THC, NMHC, PM<sub>1</sub>, Formaldehyde, Mercury, Ammonia, Methane, Hydrogen sulfide, Nitrous acid, Phenol, Naphthalene, paraxylene (p-Xylen), metaxylene (m-Xylen), etc.. </p> <p> It is also possible to publish meteorological data: Temperature, Atmospheric Pressure, Humidity, Precipitation, Wind Speed, Wind Direction, Solar Radiation and UVI. If not provided, we will use other relevant meteorologic information sources. </p> </section><style type="text/css"> table.datainput { border: 2px solid black; width: 100%; border-spacing: 1px; background: white; } table.datainput th { font-size: 13px; border-right: solid 1px #DEDEDE; background: #0086c8; padding: 5px; color: white; } table.datainput tr td { background-color: #fff; color: #333; line-height: 22px; } table.datainput td { margin: 0px; padding: 3px; font-size: 15px; } .datainput td, .datainput th { text-align: center; border: 1px solid #d5d5d5; padding: 5px; } table.datainput tr:hover { background: #9AC9FF; } pre { font-size: 12px; background-color: ghostwhite; border: 1px solid silver; padding: 10px 20px; margin: 20px; } .json-key { color: brown; } .json-value { color: navy; } .json-string { color: olive; } .example { border: 1px solid black; padding: 10px; margin: 10px; background: #eee; } </style> <div style='height:20px;'></div></div></center><div style='background-color:#f8f8f8'><div class='h1section h1section-divider'><div class='h1section-rainbow'><div></div><div></div><div></div><div></div><div></div></div><h1><div id='h1header6' style='padding:2px;;'>Feed Example (CSV format)</div></h1></div><script type='text/javascript'> ; if (!isMobileUA) { fitLine('#h1header6',.88,{maxfs:45}); }; </script></div><center><div class='section-content' ><pre style='overflow-x: scroll;'> #ID: ID_BEI_DC<br> #City: Beijing<br> #Station: Dongcheng<br> #Name: 东城东四<br> #Latitude: 39.929<br> #Longitude: 116.417<br> #Timezone: +0800<br> Date,PM10,PM25,CO,Ozone,Sulphur Dioxide,Nitrogen Dioxide,AmbientTemperature,RelativeHumidity,WindDirection,WindSpeed,Pressure,RainGauge<br> Unit,ug/m3,ug/m3,ppm,µg/m3,µg/m3,µg/m3,°C,%,°,m/s,hPa,mm<br> 10/29/2016 13:00,16,3,,58,10,3,32,66,200,3,1001,0<br> 10/29/2016 14:00,19,8,,57,9,4,32,64,197,2,1001,0<br> 10/29/2016 15:00,15,9,,52,47,17,30,72,190,2,1001,0<br> 10/29/2016 16:00,31,19,,52,34,17,30,75,191,2,1001,0<br> 10/29/2016 17:00,31,17,,49,49,19,29,75,194,1,1002,0<br> 10/29/2016 18:00,37,18,,45,55,25,29,73,183,1,1003,0<br> 10/29/2016 19:00,24,13,,40,21,19,29,80,65,1,1004,0<br> 10/29/2016 20:00,39,22,,44,4,16,28,85,7,1,1005,0<br> 10/29/2016 21:00,24,16,,43,3,7,28,85,10,1,1005,0<br> </pre> <div style='height:20px;'></div></div></center><div style='background-color:#f8f8f8'><div class='h1section h1section-divider'><div class='h1section-rainbow'><div></div><div></div><div></div><div></div><div></div></div><h1><div id='h1header7' style='padding:2px;;'>Feed Example (HTML format)</div></h1></div><script type='text/javascript'> ; if (!isMobileUA) { fitLine('#h1header7',.88,{maxfs:45}); }; </script></div><center><div class='section-content' ><p> This is an example based on an HTML format (direct url: <a href='/publishingdata/html/'>publishingdata/html/</a>): </p> <div class='example'> <b>Station list:</b> <br> <div style='overflow-x:scroll'> <table class='datainput'> <tr> <th>Station ID <th>City or County Name <th>Station Name <th>Local name (optional) <th>Latitude/Longitude <th>Timezone (optional) <tr> <td>ID_BEI_DC <td>Beijing <td>Dongcheng <td>东城东四 <td>39.929/116.417 <td>+0800 <tr> <td>ID_BEI_WP <td>Beijing <td>West Park <td>西城官园 <td>39.929/116.339 <td>+0800 <tr> <td>ID_BEI_OP <td>Beijing <td>Olympic Park <td>朝阳奥体中心 <td>39.982/116.397 <td>+0800 <tr> <td>... <td>... <td>... <td>... <td>... <td>... </tr> </table> </div> <small> <ul> <li> The "<i translate="no">Station ID</i>" is the unique identifier for each station, and it can just be a number (eg ID8373), or the concatenation of station city and station name (eg. "Beijing/Dongcheng"). </li> <li> By default, the station will be available via the url <u translate="no">/city/<i translate="no">country-name</i>/<i translate="no">city-name</i>/<i translate="no">station-name</i></u>. </li> <li> The "<i translate="no">Station Name</i>" must use latin characters, so the optional "<i translate="no">Local Name</i>" can be provided to localize the webpage. </li> </ul> </small> <br> <b>Real-time pollutant list:</b> <br> <div style='overflow-x:scroll;'> <table class='datainput'> <tr> <th>Station ID <th>Pollutant <th>Unit <th>Update time <th>Value <th>Averaging <tr> <td>ID_BEI_DC <td>PM10 <td>mg/m3 <td>2025-03-20T20:00:00+09:00<td>27.8 <td>1 hour <tr> <td>ID_BEI_DC <td>PM25 <td>mg/m3 <td>2025-03-20T20:00:00+09:00<td>10.8 <td>1 hour <tr> <td>ID_BEI_DC <td>Ozone <td>mg/m3 <td>2025-03-20T20:00:00+09:00<td>15.2 <td>1 hour <tr> <td>ID_BEI_DC <td>Ozone <td>mg/m3 <td>2025-03-20T20:00:00+09:00<td>18.2 <td>8 hours <tr> <td>ID_BEI_DC <td>Temperature <td>Celcius <td>2025-03-20T20:00:00+09:00<td>22.3 <td>1 hour <tr> <td>ID_BEI_WP <td>PM10 <td>mg/m3 <td>2025-03-20T20:00:00+09:00<td>27.8 <td>1 hour <tr> <td>ID_BEI_WP <td>PM25 <td>mg/m3 <td>2025-03-20T20:00:00+09:00<td>10.8 <td>1 hour <tr> <td>ID_BEI_WP <td>SO2 <td>ppb <td>2025-03-20T20:00:00+09:00<td>15.2 <td>1 hour <tr> <td>ID_BEI_WP <td>Humidiy <td>% <td>2025-03-20T20:00:00+09:00<td>88 <td>1 hour <tr> <td>... <td>... <td>... <td>... <td>... <td> </tr> </table> </div> <small> <ul> <li> The "<i translate="no">Averaging</i>" column is use to specify the duration of the value. The most common averaging is 1 hour. It is also the preferred one, as our backend system will automatically do the 8 hour averaging computation for the Ozone and Carbon Monoxide. </li> <li>In the case the readings are provided more frequently than every hour (for instance every 30 minutes or 10 minutes), you can either provide the raw readings for the given period, or just the hourly averaging: Our back-end system will anyway process data even between the hour. </li> </ul> </small> </div> <div style='height:20px;'></div></div></center><div style='background-color:#f8f8f8'><div class='h1section h1section-divider'><div class='h1section-rainbow'><div></div><div></div><div></div><div></div><div></div></div><h1><div id='h1header8' style='padding:2px;;'>Feed Example (JSON format)</div></h1></div><script type='text/javascript'> ; if (!isMobileUA) { fitLine('#h1header8',.88,{maxfs:45}); }; </script></div><center><div class='section-content' ><p> This is an example based on JSON format (direct url: <a href='/publishingdata/json/'>/publishingdata/json/</a>) </p> <div class='example'> <div style='overflow-x:scroll;'> <pre><div id='json'>..</div></pre> </div> </div> <a name='quality-control'></a> <div style='height:20px;'></div></div></center><div style='background-color:#f8f8f8'><div class='h1section h1section-divider'><div class='h1section-rainbow'><div></div><div></div><div></div><div></div><div></div></div><h1><div id='h1header9' style='padding:2px;;'>Quality Control for particle counter sensors</div></h1></div><script type='text/javascript'> ; if (!isMobileUA) { fitLine('#h1header9',.88,{maxfs:45}); }; </script></div><center><div class='section-content' ><p> For instant particule counters, such as the <a href='/sensor/'>Plantower PMS</a> or <a href='/sensor/'>Nova SDS</a>, which provide instantaneous (in few seconds) particulate matter readings, the data is usually reported every minute. This data is usually computed based on several "averaged" readings from a one or two minute period. </p> <p> The use of averaging is however not good enough, especially for failing sensors (or sensor close of end-of-life). Therefore, for such sensors, it is required to provide additional metrics, such as the median, min, max, and standard-deviation. See for example the <code class='code-snippet-inline'>readings</code> object in the below JSON data feed. </p> <pre><div id='jsonqa'>..</div></pre> <p> You can use the following arduino-compatible code to collect those metrics: </p> <pre style='overflow-x: scroll;'><code>class Accumulator { #define OUTPUT_BUFFER_SIZE 120 char buffer[OUTPUT_BUFFER_SIZE]; #define MAXACCVALUES 120 int vals[MAXACCVALUES]; int count = 0; public: Accumulator() { reset(); } void reset() { count = 0; for (int i=0;i< MAXACCVALUES;i++) { vals[i]=0; } } bool hasData() { return count!=0; } std::string output() { if (!hasData()) return std::string("{}"); sprintf(buffer, OUTPUT_BUFFER_SIZE, "{\"min\":%d,\"max\":%d,\"median\":%d,\"average\":%.1f,\"stddev\":%.1f,\"count\":%d}", vmin(), vmax(), median(), average(), stddev(), count); return std::string(buffer); } void add(int val) { if (count==MAXACCVALUES-1) { for (int i = 0; i < MAXACCVALUES - 1; i++) { vals[i] = vals[i + 1]; } count --; } vals[count++]=val; } float stddev() { if (!hasData()) return -1; int u =avg(); int t = 0; for (int i=0;i<count;i++) { t+=(vals[i]-u)*(vals[i]-u); } return sqrt(t)/count; } int median() { if (!hasData()) return -1; for (int i=0;i<count;i++) { for (int j=0;j<i;j++) { if (vals[i]>vals[j]) { float t = vals[j]; vals[j]=vals[i]; vals[i]=t; } } } return vals[count/2]; } float avg() { if (!hasData()) return -1; float t = 0; for (int i=0;i<count;i++) t+=vals[i]; return t/count; } float vmin() { if (!hasData()) return -1; float t = vals[0]; for (int i=0;i<count;i++) { if (t>vals[i]) { t=vals[i]; } } return t; } float vmax() { if (!hasData()) return -1; float t = vals[0]; for (int i=0;i<count;i++) { if (vals[i]>t) { t=vals[i]; } } return t; } };</code></pre> <script> function initPageNow() { if (!library) var library = {}; library.json = { replacer: function(match, pIndent, pKey, pVal, pEnd) { var key = '<span class=json-key>'; var val = '<span class=json-value>'; var str = '<span class=json-string>'; var r = pIndent || ''; if (pKey) r = r + key + pKey.replace(/[": ]/g, '') + '</span>: '; if (pVal) r = r + (pVal[0] == '"' ? str : val) + pVal + '</span>'; return r + (pEnd || ''); }, prettyPrint: function(obj) { var jsonLine = /^( *)("[\w]+": )?("[^"]*"|[\w.+-]*)?([,[{])?$/mg; return JSON.stringify(obj, null, 3) .replace(/&/g, '&amp;').replace(/\\"/g, '&quot;') .replace(/</g, '&lt;').replace(/>/g, '&gt;') .replace(jsonLine, library.json.replacer); } }; var aqidata = [{ id: "BEI001", cityName: "Beijing", stationName: "Dongcheng", localName: "东城东四", latitude: 39.929, longitude: 116.417, pollutants: [{ pol: "PM2.5", unit: "mg/m3", time: "2025-03-20T20:00:00+09:00", value: 18.7, averaging: "1 hour" }, { pol: "Ozone", unit: "ppb", time: "2025-03-20T20:00:00+09:00", value: 12.1, averaging: "1 hour" } ] }, { id: "BEI002", cityName: "Beijing", stationName: "WestPark", localName: "西城官园", latitude: 39.929, longitude: 116.417, pollutants: [{ pol: "PM10", unit: "mg/m3", time: "2025-03-20T20:00:00+09:00", value: 18.7, averaging: "1 hour" }, { pol: "Humidity", unit: "%", time: "2025-03-20T20:00:00+09:00", value: 88.8, averaging: "1 hour" } ] }, ]; var qaaqidata = [{ id: "BEI001", cityName: "Beijing", stationName: "Dongcheng", localName: "东城东四", latitude: 39.929, longitude: 116.417, pollutants: [{ pol: "PM2.5", unit: "mg/m3", time: "2025-03-20T19:47:00+09:00", averaging: "1 minute", readings: { median: 18.4, average: 18.8, stddev: 0.3, min: 16.9, max: 19.3, count: 60 } }] }]; document.getElementById("json").innerHTML = library.json.prettyPrint(aqidata); document.getElementById("jsonqa").innerHTML = library.json.prettyPrint(qaaqidata); } initPageNow(); </script> </div></div></div></div><div class='h1section h1section-divider'><div class='h1section-rainbow'><div></div><div></div><div></div><div></div><div></div></div><h1><div id='h1header2' style='padding:2px;font-family:"Noto Serif",Cambria,"Palatino Linotype","Book Antiqua","URW Palladio L",serif;;'>Inquiry Form</div></h1></div><script type='text/javascript'> ; if (!isMobileUA) { fitLine('#h1header2',.88,{maxfs:45}); }; </script><div class='whitebody' style='font-family:"Noto Serif",Cambria,"Palatino Linotype","Book Antiqua","URW Palladio L",serif;'><div class='section-outer'><div class='section-content' ><br> <div style='float:right;font-size:80%;color:#888;width:200px;max-width:33%;'> <img src='/air/view/faq/images/feed-upload/BAM.png' style='width:100%'><br> MetOne BAM 1020 station<br> <!-- <br> <br> <img src='/air/view/faq/images/feed-upload/lutfdaten.jpg' style='width:100%'><br> Luft-Daten DIY station<br> --> </div> <p> Publishing data on the World Air Quality Index maps (aqicn.org and waqi.info) is free and simple. </p> <p> Both professional and DIY air quality monitoring stations are accepted. </p> <p> However DIY stations, such as "luftdaten", go through an additional data quality control, to ensure <a href='/faq/using-statistical-distances-for-real-time-sensor-networks-validation/'>high quality data</a>. </p> <p> Once your data is validated, you will get a dedicated page for your station where you can see the real-time data, the Air Quality and weather forecast, as well as the historical data - all for free. </p> <p> If you do not have any monitoring station, and would like to get one, check our <a href='/gaia/'>GAIA</a> Air Quality monitoring stations. If you prefer a DIY station, check the <a href='/gaia/a08/'>GAIA A08</a>. </p> <center><br>-<svg xmlns="http://www.w3.org/2000/svg" width="28" height="28" version="1" viewBox="0 0 26 26" enable-background="new 0 0 26 26"><path d="M 15.65625 -0.03125 C 14.280846 -0.03760636 12.828752 0.09254274 11.3125 0.40625 C 8.28651 1.0323169 5.7746616 2.1709106 3.96875 3.59375 C 2.3885774 4.8387345 1.3097647 6.3321654 1.0625 7.96875 A 1.0001 1.0001 0 0 0 1 8.40625 C 1 8.4709766 0.99753847 8.5296394 1 8.59375 C 0.99939321 8.6245955 1 8.6565744 1 8.6875 C 1.0067678 8.8049913 1.0164368 8.9159604 1.03125 9.03125 C 1.0536237 9.2185949 1.1014372 9.4156735 1.15625 9.59375 C 1.4590854 10.826485 2.2046296 11.91918 3.21875 12.78125 C 4.0779092 13.511593 5.1369309 14.083861 6.3125 14.53125 A 1.0001 1.0001 0 0 0 6.53125 14.9375 C 8.1339345 16.910035 12.101162 19.118434 18.1875 18.59375 A 1.0043849 1.0043849 0 0 0 18 16.59375 C 14.906411 16.860439 12.500325 16.269357 10.78125 15.5 C 14.30154 15.772761 18.245209 15.070028 21.71875 12.96875 A 1.0021949 1.0021949 0 1 0 20.6875 11.25 C 16.887924 13.548509 12.317006 14.000584 8.78125 13.21875 C 8.6725971 13.194724 8.5753958 13.151278 8.46875 13.125 C 10.108287 13.189898 11.88322 13.060799 13.6875 12.6875 C 16.718701 12.060355 19.36029 10.886006 21.21875 9.4375 C 23.067114 7.9968631 24.272087 6.1533076 23.875 4.21875 C 23.8732 4.20861 23.8769 4.197602 23.875 4.1875 C 23.513143 2.2541955 21.685558 1.0369822 19.4375 0.4375 C 18.307598 0.13619269 17.031654 -0.02489364 15.65625 -0.03125 z M 15.65625 1.96875 C 16.883971 1.97489 18.004902 2.1263073 18.9375 2.375 C 20.802695 2.8723854 21.754612 3.7133252 21.90625 4.5625 A 1.0001 1.0001 0 0 0 21.9375 4.625 C 22.12047 5.4788616 21.54154 6.6735055 20 7.875 C 18.45846 9.0764945 16.081299 10.145895 13.3125 10.71875 C 10.546306 11.291066 7.7660826 11.269646 5.8125 10.78125 C 4.8357087 10.537052 4.0847823 10.157122 3.625 9.78125 C 3.3682882 9.5713881 3.1893221 9.3858538 3.09375 9.1875 C 3.0413411 8.9743851 3.0082478 8.7545393 3 8.53125 C 3.0633474 7.4789308 3.7648202 6.2771492 5.1875 5.15625 C 6.6815884 3.9790894 8.91349 2.9489331 11.6875 2.375 C 13.071248 2.0887073 14.428529 1.9626064 15.65625 1.96875 z M 15.96875 3.65625 C 14.93792 3.617106 13.843984 3.69192 12.71875 3.90625 A 1.0001 1.0001 0 0 0 12.6875 3.9375 C 9.8940815 4.582135 7.6159262 5.8506824 6.5625 7.5625 A 1.0001 1.0001 0 1 0 8.25 8.625 C 8.7942179 7.740646 10.701734 6.434394 13.09375 5.875 C 13.10453 5.87295 13.11421 5.87702 13.125 5.875 C 15.064267 5.5112859 17.031887 5.6468794 18.03125 6.03125 A 1.0040202 1.0040202 0 0 0 18.75 4.15625 C 17.952461 3.8495042 16.99958 3.6953943 15.96875 3.65625 z M 9.15625 17.59375 A 1.0001 1.0001 0 0 0 8.5625 19.25 C 8.5625 19.25 11.033033 22.015963 15.53125 21.90625 A 1.0004882 1.0004882 0 1 0 15.46875 19.90625 C 11.766967 19.996537 10.0625 17.9375 10.0625 17.9375 A 1.0001 1.0001 0 0 0 9.15625 17.59375 z M 8.125 20.1875 A 1.0001 1.0001 0 0 0 7.40625 21.65625 C 7.40625 21.65625 8.6869767 23.974979 11.65625 24.09375 A 1.001098 1.001098 0 0 0 11.75 22.09375 C 9.7192733 22.012521 9.1875 20.75 9.1875 20.75 A 1.0001 1.0001 0 0 0 8.21875 20.1875 A 1.0001 1.0001 0 0 0 8.125 20.1875 z M 7.59375 23.0625 A 1.0001 1.0001 0 0 0 7.4375 23.09375 A 1.0001 1.0001 0 0 0 6.9375 23.34375 C 6.9375 23.34375 6.19375 24 5.09375 24 A 1.0001 1.0001 0 1 0 5.09375 26 C 6.99375 26 8.28125 24.84375 8.28125 24.84375 A 1.0001 1.0001 0 0 0 7.59375 23.0625 z" color="#000" ></path></svg>-<br><br></center> <h2><p>Uploading the data</p></h2><section><p> There are three cases in order to upload your data into the map: </p> <ul> <svg fill="#000000" style='height:80px;float:left;padding-right:10px;' viewBox="0 0 96 96" id="Layer_1_1_" version="1.1" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <path d="M91,33.049V5.951C91,3.769,89.231,2,87.049,2H54.951C52.769,2,51,3.769,51,5.951V32h-5.184c-0.413-1.163-1.512-2-2.816-2 c-1.657,0-3,1.343-3,3s1.343,3,3,3c1.304,0,2.403-0.837,2.816-2H51v-0.951C51,35.231,52.769,37,54.951,37h32.098 C89.231,37,91,35.231,91,33.049z M75,34h-8v-2h8V34z M87,29H55V6h32V29z" /> <path d="M64.906,15.508l6.305,8.106C71.401,23.858,71.692,24,72,24c0.025,0,0.051-0.001,0.077-0.003 c0.335-0.025,0.634-0.218,0.797-0.512l4.079-7.343l1.152,2.305C78.275,18.786,78.621,19,79,19h4v-2h-3.382l-1.724-3.447 c-0.166-0.332-0.502-0.545-0.873-0.553c-0.373,0-0.716,0.189-0.896,0.515l-4.266,7.677l-6.071-7.806 c-0.176-0.227-0.44-0.366-0.727-0.384c-0.297-0.015-0.566,0.088-0.77,0.291l-6,6l1.414,1.414L64.906,15.508z" /> <rect height="4" width="8" x="67" y="39" /> <path d="M53,46v30c0,0.553,0.447,1,1,1h34c0.553,0,1-0.447,1-1V46c0-0.553-0.447-1-1-1H54C53.447,45,53,45.447,53,46z M55,47h32v28 H55V47z" /> <rect height="17" width="6" x="58" y="51" /> <rect height="9" width="6" x="68" y="59" /> <rect height="14" width="6" x="78" y="54" /> <rect height="2" width="2" x="60" y="71" /> <rect height="2" width="2" x="70" y="71" /> <rect height="2" width="2" x="80" y="71" /> <path d="M35.001,51.64l1.961-0.393c-0.831-4.156-4.053-7.378-8.209-8.209l-0.393,1.961C31.723,45.671,34.329,48.277,35.001,51.64z" /> <path d="M30.082,54.234l1.898-0.633c-0.874-2.622-2.96-4.708-5.582-5.582l-0.633,1.898C27.794,50.593,29.407,52.206,30.082,54.234z" /> <path d="M41.948,48.583C40.3,43.637,36.363,39.7,31.417,38.052l-0.633,1.896c4.353,1.451,7.816,4.915,9.268,9.268L41.948,48.583z" /> <path d="M6,16h14c2.209,0,4-1.791,4-4c0-2.209-1.791-4-4-4c-0.353,0-0.689,0.06-1.015,0.146C18.987,8.096,19,8.05,19,8 c0-2.761-2.239-5-5-5S9,5.239,9,8c0,0.047,0.013,0.091,0.014,0.137C7.943,8.41,7.055,9.112,6.526,10.053C6.355,10.023,6.18,10,6,10 c-1.657,0-3,1.343-3,3S4.343,16,6,16z" /> <path d="M48,78l-5-0.625v-3.444c3.945-0.493,7-3.852,7-7.931c-4.079,0-7.438,3.055-7.931,7h-0.138c-0.493-3.945-3.852-7-7.931-7 c0,4.079,3.055,7.438,7,7.931v3.194L40,77l-5,2h-3l-3,1h-2v6h-1.168V74c0-0.197-0.059-0.391-0.168-0.555L24,70.949V63 c0-3.314-2.686-6-6-6s-6,2.686-6,6v7.949l-1.664,2.496c-0.109,0.164-0.168,0.357-0.168,0.555v12H9v-6H7l-5-2v16h92V80H52L48,78z M17,62h2v2h-2V62z M12,90h-2v-2h2V90z M13,80v6h-1V74l0.818-1H17v13h-1v-6H13z M19,90h-2v-2h2V90z M20,80v6h-1V73h4.052L24,74.303 V86h-1v-6H20z M25.832,90h-2v-2h2V90z M44,90h-4v-2h4V90z M86,87h4v2h-4V87z M68,84h5v2h-5V84z" /> </svg> <p> Either you have a known Air Quality monitoring station (IQAir, Oizom, Luftdaten, Sensor Community, PurpleAir, U-Rad, LUN, ...), or a known Weather Station with an air quality sensor module (Weather Link, Eco-Witt, Ambient Weather...). In which case, you only need to tell us your station details, such as the ID/Name. We already have adapters for those stations. </p> <br><br> <svg style='height:80px;float:left;padding-right:10px;' viewBox="0 0 64 64" xmlns="http://www.w3.org/2000/svg"> <g id="server"> <path d="m11 36h-4a1 1 0 0 0 -1 1v4a1 1 0 0 0 1 1h4a1 1 0 0 0 1-1v-4a1 1 0 0 0 -1-1zm-1 4h-2v-2h2z" /> <path d="m19 36h-4a1 1 0 0 0 -1 1v4a1 1 0 0 0 1 1h4a1 1 0 0 0 1-1v-4a1 1 0 0 0 -1-1zm-1 4h-2v-2h2z" /> <path d="m22 40h14v2h-14z" /> <path d="m38 40h2v2h-2z" /> <path d="m11 20h-4a1 1 0 0 0 -1 1v4a1 1 0 0 0 1 1h4a1 1 0 0 0 1-1v-4a1 1 0 0 0 -1-1zm-1 4h-2v-2h2z" /> <path d="m19 20h-4a1 1 0 0 0 -1 1v4a1 1 0 0 0 1 1h4a1 1 0 0 0 1-1v-4a1 1 0 0 0 -1-1zm-1 4h-2v-2h2z" /> <path d="m7 58h4a1 1 0 0 0 1-1v-4a1 1 0 0 0 -1-1h-4a1 1 0 0 0 -1 1v4a1 1 0 0 0 1 1zm1-4h2v2h-2z" /> <path d="m15 58h4a1 1 0 0 0 1-1v-4a1 1 0 0 0 -1-1h-4a1 1 0 0 0 -1 1v4a1 1 0 0 0 1 1zm1-4h2v2h-2z" /> <path d="m22 52h14v2h-14z" /> <path d="m38 52h2v2h-2z" /> <path d="m22 56h14v2h-14z" /> <path d="m38 56h2v2h-2z" /> <path d="m59 2h-34a3.009 3.009 0 0 0 -3 3v11h-17a3.009 3.009 0 0 0 -3 3v8a3.009 3.009 0 0 0 3 3h1v2h-1a3.009 3.009 0 0 0 -3 3v8a3.009 3.009 0 0 0 3 3h1v2h-1a3.009 3.009 0 0 0 -3 3v8a3.009 3.009 0 0 0 3 3h36a3.009 3.009 0 0 0 3-3v-8a3.009 3.009 0 0 0 -3-3h-1v-2h1a3.009 3.009 0 0 0 3-3v-5h15a3.009 3.009 0 0 0 3-3v-30a3.009 3.009 0 0 0 -3-3zm-54 26a1 1 0 0 1 -1-1v-8a1 1 0 0 1 1-1h17v10zm17 2v2h-8v-2zm-10 0v2h-4v-2zm29 20a1 1 0 0 1 1 1v8a1 1 0 0 1 -1 1h-36a1 1 0 0 1 -1-1v-8a1 1 0 0 1 1-1zm-33-2v-2h4v2zm6 0v-2h18v2zm20 0v-2h4v2zm8-5a1 1 0 0 1 -1 1h-36a1 1 0 0 1 -1-1v-8a1 1 0 0 1 1-1h17v1a3.009 3.009 0 0 0 3 3h17zm18-8a1 1 0 0 1 -1 1h-34a1 1 0 0 1 -1-1v-23h36zm0-25h-36v-5a1 1 0 0 1 1-1h34a1 1 0 0 1 1 1z" /> <path d="m56 6h2v2h-2z" /> <path d="m52 6h2v2h-2z" /> <path d="m48 6h2v2h-2z" /> <path d="m36.293 17.293-6 6a1 1 0 0 0 0 1.414l6 6 1.414-1.414-5.293-5.293 5.293-5.293z" /> <path d="m47.707 17.293-1.414 1.414 5.293 5.293-5.293 5.293 1.414 1.414 6-6a1 1 0 0 0 0-1.414z" /> <path d="m32.513 23h18.974v1.999h-18.974z" transform="matrix(.317 -.949 .949 .317 5.94 56.244)" /> </g> </svg> <p> Either you already have a website (or a feed such as thing-speak) from which we can collect the data from your stations. In this case our system will periodically load your page, extract the data and then republish it on our map. Check the <a href='/data-feed/templates/'>feed examples</a> for website examples. </p> <br> <svg style='height:80px;float:left;padding-right:10px;' version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 612 612" xml:space="preserve"> <g> <path d="M472.322,235.219c-1.655,0-3.312,0.031-4.969,0.089c-8.127-81.861-77.388-146.003-161.352-146.003 c-83.963,0-153.226,64.143-161.352,146.004c-1.659-0.06-3.317-0.089-4.972-0.089C62.659,235.219,0,297.88,0,374.897 c0,77.02,62.659,139.678,139.678,139.678c8.967,0,16.234-7.268,16.234-16.234c0-8.965-7.268-16.234-16.234-16.234 c-59.113,0-107.209-48.093-107.209-107.209s48.096-107.209,107.209-107.209c5.916,0,11.893,0.495,17.77,1.472 c4.745,0.789,9.597-0.568,13.245-3.704c3.647-3.136,5.717-7.729,5.65-12.54l-0.009-0.586c-0.005-0.292-0.011-0.584-0.011-0.878 c0-71.504,58.173-129.679,129.68-129.679c71.506,0,129.679,58.175,129.679,129.679c0,0.276-0.005,0.551-0.009,0.825l-0.009,0.675 c-0.058,4.805,2.018,9.388,5.666,12.515c3.649,3.126,8.489,4.479,13.235,3.689c5.858-0.975,11.832-1.471,17.759-1.471 c59.116,0,107.209,48.094,107.209,107.209c0,59.115-48.093,107.209-107.209,107.209c-8.965,0-16.234,7.269-16.234,16.234 c0,8.967,7.269,16.234,16.234,16.234c77.02,0,139.678-62.658,139.678-139.678C612,297.88,549.342,235.219,472.322,235.219z" /> <path d="M228.476,245.689c0-38.489,31.312-69.802,69.802-69.802c8.967,0,16.234-7.268,16.234-16.234 c0-8.965-7.268-16.234-16.234-16.234c-56.393,0-102.271,45.878-102.271,102.271c0,8.967,7.268,16.234,16.234,16.234 C221.207,261.924,228.476,254.656,228.476,245.689z" /> <path d="M445.537,426.62l-129.941-95.209c-5.712-4.186-13.479-4.186-19.19,0l-130.535,95.644 c-5.664,4.149-8.02,11.47-5.835,18.143c2.184,6.674,8.409,11.187,15.431,11.187h46.962v50.075 c0,8.967,7.269,16.234,16.234,16.234h134.676c8.967,0,16.234-7.268,16.234-16.234v-50.075h46.965c0.008,0,0.018,0,0.027,0 c8.965,0,16.234-7.268,16.234-16.234C452.797,434.502,449.914,429.527,445.537,426.62z M373.338,423.916 c-8.965,0-16.234,7.269-16.234,16.234v50.075H254.896V440.15c0-8.965-7.268-16.234-16.234-16.234H225.09l80.912-59.283 l80.911,59.283H373.338z" /> </g> </svg> <p> Either you do not have a website, but you have a station, and you would like to "push" the data directly to our system. In this case, you will need to write a small program to "post" your station data via our upload API. We have code example for Arduino and Python. The code samples are available from the <a href='/data-feed/upload-api/'>upload API</a> page. </p> </ul> <br> <p>If you fall in the two first categories (have a known station or a website), or if you have any doubts, send us a message using the form below. If you fall in the second category, and want to programmatically post the data via our upload API, check our <a href='/data-feed/upload-api/'>data upload scripts and API</a> page. </p> <div style='clear:both'></div> </section><h2><p>Contact form</p></h2><section><script src='/jscripts/moment/bundle.min.js?_=20200103.150752&type=script'></script><script src='https://aqicn.org/air-cache/jquery-3.7.1.min.js?_=20250116.195014' type='text/javascript'></script><script src='/jscripts/formantic-ui/dist/components/calendar.min.js?_=20191228.123631&type=script'></script><script src='/jscripts/formantic-ui/dist/semantic.min.js?_=20191228.123631&type=script'></script><link href='/jscripts/formantic-ui/dist/semantic.min.css?_=20191228.123631&type=css' rel='stylesheet'/> <form class='ui raised form segment messenger data-feed' id='data-feed-form' style='border:none;background:none;'> <input class='form-input' type='hidden' name="source" value='data-feed'> <div class='row-fluid'> <div class='column-left'> Your name - eg <i class='input-example'>&quot;John Doe&quot;</i><br> <input class='form-input' name="name" required placeholder='your name'> <br><br> Your email address - eg <i class='input-example'>&quot;john.doe@mail.com&quot;</i><br> <input class='form-input' type="email" name="email" required placeholder="your email address" pattern="[^ @]*@[^ @]*"> <br><br> Your data-feed URL - eg <i class='input-example'>&quot;https://airnow.gov/&quot;</i><br> or station Id - eg <i class='input-example'>&quot;https://weatherlink.com/...&quot;</i> <input class='form-input' name="website" placeholder='your data-feed or web-site URL'> </div> <div class='column-right'> <p>Tell us what kind of help you need or can provide.</p> <textarea class='form-input' name="message" required placeholder='write few words about your request' style='height:242px'></textarea> </div> </div> <div style='clear: both'></div> <div> <center id='captcha'> <div class="aqspinner3"><div class="r1"></div><div class="r2"></div><div class="r3"></div><div class="r4"></div><div class="r5"></div></div> </center> </div> </form> <script>var i18nTexts=(i18nTexts||[]);i18nTexts.push([])</script><script type='text/javascript'>/*webapp:messenger-dyn.e2a00c8ffd7823e25b11*/var messenger;!function(){"use strict";var e,n,t={},r={};function o(e){var n=r[e];if(void 0!==n)return n.exports;var i=r[e]={id:e,exports:{}};return t[e].call(i.exports,i,i.exports,o),i.exports}o.m=t,o.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(n,{a:n}),n},o.d=function(e,n){for(var t in n)o.o(n,t)&&!o.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:n[t]})},o.f={},o.e=function(e){return Promise.all(Object.keys(o.f).reduce((function(n,t){return o.f[t](e,n),n}),[]))},o.u=function(e){return e+"-dyn.b568e9d1f1b92876dc59.js"},o.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),o.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},e={},n="messenger:",o.l=function(t,r,i,u){if(e[t])e[t].push(r);else{var a,c;if(void 0!==i)for(var f=document.getElementsByTagName("script"),s=0;s<f.length;s++){var d=f[s];if(d.getAttribute("src")==t||d.getAttribute("data-webpack")==n+i){a=d;break}}a||(c=!0,(a=document.createElement("script")).charset="utf-8",a.timeout=120,o.nc&&a.setAttribute("nonce",o.nc),a.setAttribute("data-webpack",n+i),a.src=t),e[t]=[r];var l=function(n,r){a.onerror=a.onload=null,clearTimeout(p);var o=e[t];if(delete e[t],a.parentNode&&a.parentNode.removeChild(a),o&&o.forEach((function(e){return e(r)})),n)return n(r)},p=setTimeout(l.bind(null,void 0,{type:"timeout",target:a}),12e4);a.onerror=l.bind(null,a.onerror),a.onload=l.bind(null,a.onload),c&&document.head.appendChild(a)}},o.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},o.p="/webapp/dist/",function(){var e={messenger:0};o.f.j=function(n,t){var r=o.o(e,n)?e[n]:void 0;if(0!==r)if(r)t.push(r[2]);else{var i=new Promise((function(t,o){r=e[n]=[t,o]}));t.push(r[2]=i);var u=o.p+o.u(n),a=new Error;o.l(u,(function(t){if(o.o(e,n)&&(0!==(r=e[n])&&(e[n]=void 0),r)){var i=t&&("load"===t.type?"missing":t.type),u=t&&t.target&&t.target.src;a.message="Loading chunk "+n+" failed.\n("+i+": "+u+")",a.name="ChunkLoadError",a.type=i,a.request=u,r[1](a)}}),"chunk-"+n,n)}};var n=function(n,t){var r,i,u=t[0],a=t[1],c=t[2],f=0;if(u.some((function(n){return 0!==e[n]}))){for(r in a)o.o(a,r)&&(o.m[r]=a[r]);c&&c(o)}for(n&&n(t);f<u.length;f++)i=u[f],o.o(e,i)&&e[i]&&e[i][0](),e[i]=0},t=self.webpackChunkmessenger=self.webpackChunkmessenger||[];t.forEach(n.bind(null,0)),t.push=n.bind(null,t.push.bind(t))}();var i={};function u(e,n){void 0===n&&(n={}),o.e("messenger-module").then(o.bind(o,4914)).then((function(t){t.initCaptcha(e,n)}))}function a(e){var n="messenger-"+Date.now();document.write("<div id='"+n+"'></div>"),o.e("messenger-module").then(o.bind(o,4914)).then((function(t){t.initForm("#"+n,e)}))}o.r(i),o.d(i,{form:function(){return a},init:function(){return u}}),messenger=i}();</script><script> messenger.init("#data-feed-form", { answer: { title: "[WAQI] Air Quality data feed" } }) </script> <style type="text/css"> .row-fluid .column-left { float: left; width: calc(50% - 20px); padding-right: 20px; } .row-fluid .column-right { float: left; width: 50%; box-sizing: border-box; } .row-fluid { width: 100%; text-align: left; } @media only screen and (max-width: 920px) { form.data-feed input { margin-bottom: 10px; } .column-left-inner { width: 100%; text-align: center; } .row-fluid .column-right>div { padding-left: 0px; } .row-fluid .column-left>div { padding-right: 0px; } .row-fluid .column-left { width: 100%; padding-right: 0; } .row-fluid .column-right { width: 100%; } form.data-feed input { width: 100%; } } </style> </section><h2><p>Data Validation</p></h2><section><p> If you own a luftdaten or similar low cost sensor, you can check the air quality data validation service: </p> <center><a href='/data-feed/validation/'>https://aqicn.org/data-feed/validation/</a></center> <p> For example, for the "luftdaten" sensor 84804, you can check the page <a href='/data-feed/validation/#/luftdaten/84804'>aqicn.org/data-feed/validation/#/luftdaten/84804</a> </p> <p> The data validation and qualification is also done automatically once a day. </p></div></div></div><div class='h1section h1section-divider'><div class='h1section-rainbow'><div></div><div></div><div></div><div></div><div></div></div><h1><div id='h1header3' style='padding:2px;padding:5px 0;font-family:"Noto Serif",Cambria,"Palatino Linotype","Book Antiqua","URW Palladio L",serif;;;'><span>Do you know of any Air Quality stations in your area?</span></div><div id='h1header4' class='h1sub'><span>why not participate to the map with your own air quality station?</span></div></h1></div><script type='text/javascript'> ; if (!isMobileUA) { fitLine('#h1header3',.88,{maxfs:45});fitLine('#h1header4',.88,{maxfs:38}); }; </script><div class='whitebody' style='font-family:"Noto Serif",Cambria,"Palatino Linotype","Book Antiqua","URW Palladio L",serif;'><div class='section-outer'><div class='section-content' ><style> .gaia-fluid-left { float: left; width: 62%; padding: 0; margin: 0; } .gaia-fluid-right { float: right; width: calc(38% - 10px); padding: 0; margin: 0; margin-top: 10px; padding-left: 10px; } @media only screen and (max-width: 800px) { .gaia-fluid-left { width: 100%; box-sizing: border-box; } .gaia-fluid-right { width: 100%; border: none; margin-top: 20px; } } .gaia-product { box-shadow: 0px 0px 3px rgba(0, 0, 0, .20); display: inline-block; margin: 5px; background: #f8f8f8; line-height: 1.2; border: 1px solid #f8f8f8; max-width: 420px; width: 90%; } .gaia-product:hover { border: 1px solid #888; } .ui.btn.primary { cursor: pointer; background-color: rgba(0, 134, 200, .8); color: white; border: none; border-radius: 3px; text-shadow: none; width: 100%; margin: 0 0 20px 0; } </style> <div class='gaia-fluid-left'> <p> Our GAIA air quality monitors are very easy to set up: You only need a WIFI access point and a USB compatible power supply. </p> <p> Once connected, your real time air pollution levels are instantaneously available on the maps and through the API. </p> <p> The station comes with a 10-meter water-proof power cable, a USB power supply, mounting equipment and an optional solar panel. </p> </div> <div class='gaia-fluid-right'> <center> <a href='/gaia/list/'> <div> <img src='/air/view/gaia/images/gaia-series-a12-large-with-map.png' style='width:100%' title='GAIA A12 Air Quality Monitoring Station'> </div> <div class='ui primary btn'> Click for more information </div> </a> </center> </div> <div style="clear: both;"></div></div></div></div><a name="infoaqi"></a><div class='h1section h1section-divider'><div class='h1section-rainbow'><div></div><div></div><div></div><div></div><div></div></div><h1><div id='h1header5' style='padding:2px;font-family:"Noto Serif",Cambria,"Palatino Linotype","Book Antiqua","URW Palladio L",serif;;'>About the Air Quality and Pollution Measurement:</div></h1></div><script type='text/javascript'> ; if (!isMobileUA) { fitLine('#h1header5',.88,{maxfs:45}); }; </script><div class='whitebody' style='font-family:"Noto Serif",Cambria,"Palatino Linotype","Book Antiqua","URW Palladio L",serif;'><div class='section-outer'><div class='section-content' > <center>About the Air Quality Levels<br> <br> <style type="text/css"> #legend-full table.infoaqitable { line-height: 1.5; background-color: white; max-width: 1000px; width: 95%; margin: 0px; border: 1px solid black; cursor: pointer; } #legend-full table.infoaqitable td { padding: 5px; font-size: 15px; text-shadow: none; } #legend-full .aqiwtxt { color: #ffffff; } #legend-full .aqibtxt { color: #000000; } @media only screen and (max-width: 800px) { #legend-full table.infoaqitable { width: 98%; } } @media only screen and (max-width: 800px) { #legend-full table.infoaqitable td { display: block; } #legend-full table.infoaqitable td:nth-child(1) { display: inline-block; font-size: 1.2em; } #legend-full table.infoaqitable td:nth-child(2) { display: inline-block; font-weight: 800; font-size: 1.2em; } } </style> <div id='legend-full' onclick='window.location="/scale/"'> <table class="infoaqitable cautionary"> <thead> <tr> <td>AQI</td> <td>Air Pollution Level</td> <td>Health Implications</td> <td>Cautionary Statement (for PM2.5)</td> </tr> </thead> <tr style="background-color:#009966;"> <td class='aqiwtxt' nowrap="true">0 - 50</td> <td class='aqiwtxt'>Good</td> <td class='aqiwtxt'>Air quality is considered satisfactory, and air pollution poses little or no risk</td> <td class='aqiwtxt'>None</td> </tr> <tr style="background-color:#ffde33" class='aqibtxt'> <td class='aqibtxt' nowrap="true">51 -100</td> <td class='aqibtxt'>Moderate</td> <td class='aqibtxt'>Air quality is acceptable; however, for some pollutants there may be a moderate health concern for a very small number of people who are unusually sensitive to air pollution.</td> <td class='aqibtxt'>Active children and adults, and people with respiratory disease, such as asthma, should limit prolonged outdoor exertion.</td> </tr> <tr style="background-color:#ff9933;"> <td class='aqibtxt' nowrap="true">101-150</td> <td class='aqibtxt'>Unhealthy for Sensitive Groups</td> <td class='aqibtxt'>Members of sensitive groups may experience health effects. The general public is not likely to be affected.</td> <td class='aqibtxt'>Active children and adults, and people with respiratory disease, such as asthma, should limit prolonged outdoor exertion.</td> </tr> <tr style="background-color:#cc0033;"> <td class='aqiwtxt' nowrap="true">151-200</td> <td class='aqiwtxt'>Unhealthy</td> <td class='aqiwtxt'>Everyone may begin to experience health effects; members of sensitive groups may experience more serious health effects</td> <td class='aqiwtxt'>Active children and adults, and people with respiratory disease, such as asthma, should avoid prolonged outdoor exertion; everyone else, especially children, should limit prolonged outdoor exertion</td> </tr> <tr style="background-color:#660099;"> <td class='aqiwtxt' nowrap="true">201-300</td> <td class='aqiwtxt'>Very Unhealthy</td> <td class='aqiwtxt'>Health warnings of emergency conditions. The entire population is more likely to be affected.</td> <td class='aqiwtxt'>Active children and adults, and people with respiratory disease, such as asthma, should avoid all outdoor exertion; everyone else, especially children, should limit outdoor exertion.</td> </tr> <tr style="background-color:#7e0023;"> <td class='aqiwtxt' nowrap="true">300+</td> <td class='aqiwtxt'>Hazardous</td> <td class='aqiwtxt'>Health alert: everyone may experience more serious health effects</td> <td class='aqiwtxt'>Everyone should avoid all outdoor exertion</td> </tr> </table></div><br>To know more about Air Quality and Pollution, check the <a href='http://en.wikipedia.org/wiki/Air_quality'>wikipedia Air Quality topic</a> or the <a href='http://www.airnow.gov/index.cfm?action=aqibasics.aqi'>airnow guide to Air Quality and Your Health</a>.<br><br>For very useful health advices of Beijing Doctor Richard Saint Cyr MD, check <a href='http://www.myhealthbeijing.com/'>www.myhealthbeijing.com</a> blog.<br><br></center></div></div></div> <center> <br> <!-- responsive ad --> <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-0281575029452656" data-ad-slot="2455076269" data-ad-format="auto"></ins> <script>(adsbygoogle = window.adsbygoogle || []).push({});</script> <style type='text/css'> .usage-notice { line-height:1.5; max-width:95%; width:1000px; margin-top:10px; padding:5px; font-size: 15px; background-color:#ffffff; text-shadow: 1px 1px 1px white; -webkit-box-shadow: 1px 1px 8px -3px rgba(0,0,0,0.3); } </style> <div class="textshadowwhite usage-notice" style=''> <b>Usage Notice</b>: All the Air Quality data are unvalidated at the time of publication, and due to quality assurance these data may be amended, without notice, at any time. The World Air Quality Index project has exercised all reasonable skill and care in compiling the contents of this information and under no circumstances will the World Air Quality Index project team or its agents be liable in contract, tort or otherwise for any loss, injury or damage arising directly or indirectly from the supply of this data.</div> <br> <br> <br> </center> <!-- The floating-footer-marker is used to detect screen height --> <div id="fixed-footer-marker" class="locked"></div> <!-- Place holder for the floating footer --> <div id="floating-footer" class="footer-overlay floating-footer-overlay footer"> </div> <div id="fixed-footer" class="footer"> <div id="footer-overlay" class="footer-overlay"></div> <br> <br> <center> <div id='fixed-footer-menu-buttons-with-text' style='max-width:80%;margin-bottom:20px;display:none;'> <a href='javascript:go2home();' class='menubar-text'><div class='fixed-menubar-button'><div class='sprite-isprt-web-home'></div>home</div></a> <a href='/here/' class='menubar-text'><div class='fixed-menubar-button'><div class='sprite-isprt-web-geofencing'></div>Here</div></a> <a href='/map/world/' class='menubar-text'><div class='fixed-menubar-button'><div class='sprite-isprt-web-globe'></div>map</div></a> <a href='/mask/' class='menubar-text'><div class='fixed-menubar-button'><div class='sprite-isprt-web-dustmask'></div>mask</div></a> <a href='/faq/' class='menubar-text'><div class='fixed-menubar-button'><div class='sprite-isprt-web-faq'></div>faq</div></a> <a href='/city/all/' class='menubar-text'><div class='fixed-menubar-button'><div class='sprite-isprt-web-search'></div>search</div></a> <a href='/contact/' class='menubar-text'><div class='fixed-menubar-button'><div class='sprite-isprt-web-talk'></div>contact</div></a> <a href='/links/' class='menubar-text'><div class='fixed-menubar-button'><div class='sprite-isprt-web-link'></div>links</div></a> </div> <div class='footercolumnout'> <div class='footercolumn1 footercolumn'> <h3>About This Project</h3> <br> <li><a href='/contact/'>Contact The World Air Quality Index Project Team</a></li> <li><a href='/media/'>Press And Media Kit</a></li> <br> <h3><a href='/research/'>air quality research</a></h3> <br> <li><a href='/faq/'>Air Quality Knowledge Base And Articles</a></li> <li><a href='/research/'>Air Quality Experimentation</a></li> <li><a href='/sensor/'>Air Quality Sensors Analysis</a></li> <br> <h3><a href='/faq/'>Frequently Asked Questions</a></h3> <br> <li><a href='/sources/'>Air Quality Data source</a></li> <li><a href='/faq/2015-03-15/air-quality-nowcast-a-beginners-guide/'>Air Quality Index Calculation</a></li> <li><a href='/forecast/'>Air Quality Forecasting</a></li> <li><a href='/products/'>Air Quality Products (masks, Monitors…)</a></li> <li><a href='/api/'>API (Application Programming Interface)</a></li> <li><a href='/data-platform/'>Historical Data Platform</a></li> </div> <div class='footercolumn2 footercolumn'> <h3>Credits</h3> <br> <li><a href='/sources/'>All the EPA in the world for their excellent work in maintaining, measuring and providing Air Quality information to the world citizens</a></li> <li><a href='http://www.maxmind.com' target=_>This product includes GeoLite2 data created by MaxMind, available from maxmind.com.</a> <li><a href='http://geonames.org' target=_>This product includes GeoNames city information, available from geonames.org.</a> <li><a href="http://openweathermap.org/" target="__s">Open Weather Map, combined with qweather&trade; improvement algorithm</a> <li><a href='http://wxqa.com' target="__s">Citizen Weather Observer Program</a> via <a href='https://cwop.waqi.info' target="__s">cwop.waqi.info</a> <li><a href="http://atmosphere.copernicus.eu/" target="__s">Contains modified Copernicus Atmosphere Monitoring Service Information</a> <li><a href="https://www.flaticon.com/" target="__s" title="Flaticon">Some of the icons made by Freepik from www.flaticon.com</a> <li><a href="https://locationiq.com/" target="__s" title="location IQ">Reverse geocoding by locationiq.com</a> <li><a href="https://www.openstreetmap.org/copyright" target="__s" title="Open Street Map">Base map and data from OpenStreetMap.</a> </div> <div class='footercolumn3 footercolumn'> <center> &copy; 2008-2025 <br> <a href='https://waqi.info'> The World Air Quality Index Project </a> <br> <br> <img src='https://waqi.info/icons/logo.png?_=1742467623' class='footer-logo' alt='the World Air Quality Index project logo' border=0 height=100> &nbsp; &nbsp; <img class='async-img' data-src='https://aqicn.org/images/MadeInBJ.png?_=1742467623' class='madeinbjlogo' alt='made in 北京' border=0> <br> <br> </center> </div> </div> </center> <div style='clear:both'></div> <div style='clear:both;'></div> <center> <div id='xatzcaqd'> </center> <br> <div id='mailing-list-footer'> <style type="text/css"> #mailing-list-footer .mailing-list-subscription { text-shadow: #000 1px 1px 1px; font-size: 15px; color: white; } </style> <script>var i18nTexts=(i18nTexts||[]);i18nTexts.push([])</script><script src='/webapp/dist/mailing-dyn.b37d52498ecc6e0dde16.js?_=1737642178' type='text/javascript'></script> </div> <center style='clear:both;'> <br><small>This page has been generated on Thursday, Mar 20th 2025, 18:47 pm CST from jp2n</small><br> <small><span id='gentime'></span></small> <br> <br> </center> <br> <br> </div> <div id='settingsdiv-outer'> <div id='settingsdiv'> <div onclick='settingsMenu.close()'> <svg height="24px" viewBox="0 0 512 512" width="24px" style='float:right;fill:white;'> <path d="M74.966,437.013c-99.97-99.97-99.97-262.065,0-362.037c100.002-99.97,262.066-99.97,362.067,0 c99.971,99.971,99.971,262.067,0,362.037C337.032,536.998,174.968,536.998,74.966,437.013z M391.782,120.227 c-75.001-74.985-196.564-74.985-271.534,0c-75.001,74.985-75.001,196.55,0,271.535c74.97,74.986,196.533,74.986,271.534,0 C466.754,316.775,466.754,195.212,391.782,120.227z M188.124,369.137l-45.251-45.266l67.876-67.877l-67.876-67.876l45.251-45.267 L256,210.743l67.877-67.892l45.25,45.267l-67.876,67.876l67.876,67.877l-45.25,45.266L256,301.245L188.124,369.137z" /> </svg> <h2>Settings</h2> </div> <br> <center> <div id='settings-lang'> Language Settings:<br> <div class='sprite-isprt-web-gb flag'></div> <div class='sprite-isprt-web-cn flag'></div> <div class='sprite-isprt-web-jp flag'></div> <div class='sprite-isprt-web-kr flag'></div> <div class='sprite-isprt-web-pl flag'></div> <br> <select onchange='location.href = this.value'> <option value='https://aqicn.org/publishingdata/' selected>English</option><option value='https://aqicn.org/publishingdata/cn/' >简体中文 - Chinese</option><option value='https://aqicn.org/publishingdata/jp/' >日本 - Japanese</option><option value='https://aqicn.org/publishingdata/es/' >español - Spanish</option><option value='https://aqicn.org/publishingdata/kr/' >한국의 - Korean</option><option value='https://aqicn.org/publishingdata/ru/' >русский - Russian</option><option value='https://aqicn.org/publishingdata/hk/' >繁體中文 - Traditional Chinese</option><option value='https://aqicn.org/publishingdata/fr/' >Francais - French</option><option value='https://aqicn.org/publishingdata/pl/' >Polski - Polish</option><option value='https://aqicn.org/publishingdata/de/' >Deutsch - German</option><option value='https://aqicn.org/publishingdata/pt/' >Português - Portuguese</option><option value='https://aqicn.org/publishingdata/vn/' >Tiếng Việt - Vietnamese</option><option value='https://aqicn.org/publishingdata/it/' >Italiano - Italian</option><option value='https://aqicn.org/publishingdata/id/' >bahasa Indonesia - Indonesian</option><option value='https://aqicn.org/publishingdata/nl/' >Nederlands - Dutch</option><option value='https://aqicn.org/publishingdata/fa/' >فارسی - Persian</option><option value='https://aqicn.org/publishingdata/th/' >ภาษาไทย - Thai</option><option value='https://aqicn.org/publishingdata/hu/' >Magyar - Hungarian</option><option value='https://aqicn.org/publishingdata/el/' >Ελληνικά - Greek</option><option value='https://aqicn.org/publishingdata/ro/' >Română - Romanian</option><option value='https://aqicn.org/publishingdata/bg/' >български - Bulgarian</option><option value='https://aqicn.org/publishingdata/ur/' >اردو - Urdu</option><option value='https://aqicn.org/publishingdata/hi/' >हिंदी - Hindi</option><option value='https://aqicn.org/publishingdata/ar/' >العربية - Arabic</option><option value='https://aqicn.org/publishingdata/sr/' >Српски - Serbian</option><option value='https://aqicn.org/publishingdata/bn/' >বাংলা - Bangla</option><option value='https://aqicn.org/publishingdata/bs/' >босански - Bosnian</option><option value='https://aqicn.org/publishingdata/hr/' >hrvatski - Croatian</option><option value='https://aqicn.org/publishingdata/tr/' >Türkçe - Turkish</option><option value='https://aqicn.org/publishingdata/uk/' >українська - Ukrainian</option><option value='https://aqicn.org/publishingdata/cs/' >čeština - Czech</option><option value='https://aqicn.org/publishingdata/be/' >беларускі - Belarusian</option><option value='https://aqicn.org/publishingdata/km/' >ខ្មែរ - Khmer</option><option value='https://aqicn.org/publishingdata/lo/' >ລາວ - Lao</option></select> </div> <br> <table> <tr> <td> <center> <i>Temperature unit:</i><br> <span style='font-size:18px'> <span style='display:;' id='settings-temp-label-on'>Celcius</span> <span style='display:none;' id='settings-temp-label-off'>Fahrenheit</span> </span> </center> </td> <td> <div class="onoffswitch" onclick='settingsMenu.click("temp")'> <input type="checkbox" name="onoffswitch" class="onoffswitch-checkbox" id="settings-temp" checked> <label class="onoffswitch-label" for="myonoffswitch"> <span class="onoffswitch-inner"></span> <span class="onoffswitch-switch"></span> </label> </div> </table> </center> <br> </div> <div style='display:none;height:0px;' id='settingsdiv-arrow'><div style='width: 0; height: 0; border: 7px solid transparent;top:0px;border-top: 7px solid #fff;position:relative;;margin-left:100px;'></div></div> </div> <link rel='stylesheet' type='text/css' href='https://aqicn.org/air-cache/generic/scripts/dist/navmenu.css?_=20250118.191236' /><script async src='https://aqicn.org/air-cache/generic/scripts/dist/navmenu.js?_=20250121.194619' type='text/javascript'></script> <script type="text/javascript"> fitLine(".link",.9); </script> <script type="text/javascript"> function initTime() { if (isMobileUA) return; function setTimeText() { var minutes = new Date().getMinutes(); var hours = new Date().getHours(); var time = ( hours < 10 ? "0" : "" ) + hours; time += ":"+( minutes < 10 ? "0" : "" ) + minutes; var ot = document.getElementById("ClockTime"); if (ot) ot.innerHTML = time; } setInterval( function() { setTimeText() }, 1000*60*15 ); setTimeText(); }; aqi18n.register('aqi-implication-0-50',"Air quality is considered satisfactory, and air pollution poses little or no risk");aqi18n.register('aqi-level-0-50',"Good");aqi18n.register('aqi-implication-50-100',"Air quality is acceptable; however, for some pollutants there may be a moderate health concern for a very small number of people who are unusually sensitive to air pollution.");aqi18n.register('aqi-level-50-100',"Moderate");aqi18n.register('aqi-implication-100-150',"Members of sensitive groups may experience health effects. The general public is not likely to be affected.");aqi18n.register('aqi-level-100-150',"Unhealthy for sensitive groups");aqi18n.register('aqi-level-100-150-html',"<div style='font-size:66%'>Unhealthy for sensitive groups<\/div>");aqi18n.register('aqi-implication-150-200',"Everyone may begin to experience health effects; members of sensitive groups may experience more serious health effects");aqi18n.register('aqi-level-150-200',"Unhealthy");aqi18n.register('aqi-implication-200-300',"Health warnings of emergency conditions. The entire population is more likely to be affected.");aqi18n.register('aqi-level-200-300',"Very Unhealthy");aqi18n.register('aqi-level-200-300-html',"<div style='line-height:1.1'><span style='font-size:16px;'>Very<\/span><br>Unhealthy<\/div>");aqi18n.register('aqi-implication-300-500',"Health alert: everyone may experience more serious health effects");aqi18n.register('aqi-level-300-500',"Hazardous");aqi18n.register('updated',"Updated"); </script> <script type="text/javascript"> ["preInitPage","initTime"].forEach(function(f){ if (window[f]) { try { window[f](); } catch (e) { loge("error in "+f,e); }} }); </script> <script src='/jscripts/moment/bundle.min.js?_=20200103.150752&type=script'></script> <script src='https://aqicn.org/air-cache/tingle/0.15.1/tingle.min.js?_=20191109.130307' type='text/javascript'></script> <script type="text/javascript"> document.addEventListener("DOMContentLoaded", function() { ["Page","HeadSearch","Search","Notify","Geolocate","AqiForecast","Download","Sharing","Page2"].forEach(function(f){ f = "init"+f; if (window[f]) { try { window[f](); } catch (e) { loge ("error in "+f,e,e.stack);}; } }); if (typeof ntfOnInit != "undefined") ntfOnInit(); }); </script> <script type="text/javascript"> (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','https://www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-28507883-1', 'auto'); ga('send', 'pageview'); try { var images = document.querySelectorAll('.async-img'); var config = { rootMargin: '50px 0px', threshold: 0.01}; function preloadImage(img) { img.src = img.dataset.src; } function onIntersection(entries) { entries.forEach(function(entry) { if (entry.intersectionRatio > 0) { observer.unobserve(entry.target); preloadImage(entry.target); } }) } var observer = new IntersectionObserver(onIntersection, config); images.forEach(function(image){observer.observe(image)}); } catch (e) {} </script> <!-- Generated on jp2n on 2025-03-20T19:47:03+09:00 --> </body> </html> </section>

Pages: 1 2 3 4 5 6 7 8 9 10