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.