REST API for real-time air quality index (AQI) and pollutant data. Query by city name or GPS coordinates.
Two endpoints: city name or lat/lon coordinates Returns AQI + 6 major pollutants (PM2.5, PM10, O₃, NO₂, SO₂, CO) Real-time data from global monitoring networks 5,000 requests/month on free tier Example Response: { "air_quality_index" : 85 , "PM2.5" : { "concentration" : 4.72 , "aqi" : 15 }, "PM10" : { "concentration" : 5.9 , "aqi" : 5 }, "ozone" : { "concentration" : 70.32 , "aqi" : 85 }, "nitrogen_dioxide" : { "concentration" : 12.09 , "aqi" : 15 }, "sulfur_dioxide" : { "concentration" : 6.92 , "aqi" : 10 }, "carbon_monoxide" : { "concentration" : 222.07 , "aqi" : 2 } } Create account at omkar.cloud
Get API key from omkar.cloud/api-key
Include API-Key header in requests curl -X GET " https://air-quality-api.omkar.cloud/air-quality/city?city=New%20York" \ -H " API-Key: YOUR_API_KEY" { "air_quality_index" : 85 , "PM2.5" : { "concentration" : 4.72 , "aqi" : 15 }, "ozone" : { "concentration" : 70.32 , "aqi" : 85 } } import requests response = requests .get ( "https://air-quality-api.omkar.cloud/air-quality/city" , params = {"city" : "New York" }, headers = {"API-Key" : "YOUR_API_KEY" } ) data = response .json () print (f"AQI: { data ['air_quality_index' ]} " ) import axios from "axios" ; const response = await axios . get ( "https://air-quality-api.omkar.cloud/air-quality/city" , { params : { city : "New York" } , headers : { "API-Key" : "YOUR_API_KEY" } } ) ; console . log ( `AQI: ${ response . data . air_quality_index } ` ) ; GET https://air-quality-api.omkar.cloud/air-quality/city GET https://air-quality-api.omkar.cloud/air-quality/coords
Headers Parameters (City Endpoint) Parameter Required Description city Yes City name (e.g., "New York", "London")
Parameters (Coords Endpoint) Parameter Required Description lat Yes Latitude (-90 to 90) lon Yes Longitude (-180 to 180)
Field Type Description air_quality_index number Overall AQI (0-500 scale) PM2.5 object Fine particles (<2.5μm) PM10 object Coarse particles (<10μm) ozone object Ground-level ozone (O₃) nitrogen_dioxide object NO₂ from combustion sulfur_dioxide object SO₂ from industrial sources carbon_monoxide object CO from incomplete combustion
Each pollutant object contains:
concentration — Measured value (μg/m³) aqi — Individual AQI for that pollutant Range Level Meaning 0-50 Good Safe for everyone 51-100 Moderate Acceptable 101-150 Unhealthy (Sensitive) Limit outdoor activity if sensitive 151-200 Unhealthy Everyone may feel effects 201-300 Very Unhealthy Health alert 301-500 Hazardous Emergency conditions
response = requests .get ( "https://air-quality-api.omkar.cloud/air-quality/city" , params = {"city" : "Tokyo" }, headers = {"API-Key" : "YOUR_API_KEY" } ) aqi = response .json ()["air_quality_index" ] print (f"Tokyo AQI: { aqi } " ) response = requests .get ( "https://air-quality-api.omkar.cloud/air-quality/coords" , params = {"lat" : 51.5074 , "lon" : - 0.1278 }, headers = {"API-Key" : "YOUR_API_KEY" } ) data = response .json () print (f"London AQI: { data ['air_quality_index' ]} " ) response = requests .get ( "https://air-quality-api.omkar.cloud/air-quality/city" , params = {"city" : "InvalidCity123" }, headers = {"API-Key" : "YOUR_API_KEY" } ) if response .status_code == 200 : data = response .json () elif response .status_code == 401 : # Invalid API key pass elif response .status_code == 429 : # Rate limit exceeded pass Plan Price Requests/Month Free $0 5,000 Starter $25 100,000 Grow $75 1,000,000 Scale $150 10,000,000
Questions? We have answers. Reach out anytime. We will solve your query within 1 working day.