Check out our latest APIs:Random Word

Air Quality API

The Air Quality API provides the latest air quality information for any city or geographic location in the world. It provides not only the wholistic Air Quality Index (AQI) but also concentrations for major pollutants:

  • Carbon monoxide (CO)
  • Nitrogen dioxide (NO2)
  • Ozone (O3)
  • Sulphur dioxide (SO2)
  • PM2.5 particulates
  • PM10 particulates

/v1/airquality

HTTP GET

Get air quality by city or location coordinates (latitude/longitude). Returns the air quality index (AQI) and concentrations of major pollutants.

Parameters

lat (required) - latitude of desired location.

lon (required) - longitude of desired location.

— or —

city (required) - city name.

state (optional) - US state (for United States cities only).

country (optional) - country name.

Headers

X-Api-Key (required) - API Key associated with your account.

Sample Request URL

Live Demo!

https://api.api-ninjas.com/v1/airquality?city=

Sample Response

{
  "overall_aqi": 55,
  "CO": {
    "concentration": 223.64,
    "aqi": 2
  },
  "PM10": {
    "concentration": 3.62,
    "aqi": 3
  },
  "SO2": {
    "concentration": 5.13,
    "aqi": 7
  },
  "PM2.5": {
    "concentration": 1.82,
    "aqi": 5
  },
  "O3": {
    "concentration": 60.8,
    "aqi": 55
  },
  "NO2": {
    "concentration": 9.68,
    "aqi": 12
  }
}

import requests
city = 'london'
api_url = 'https://api.api-ninjas.com/v1/airquality?city={}'.format(city)
response = requests.get(api_url, headers={'X-Api-Key': 'YOUR_API_KEY'})
if response.status_code == requests.codes.ok:
    print(response.text)
else:
    print("Error:", response.status_code, response.text)
var city = 'london'
$.ajax({
    method: 'GET',
    url: 'https://api.api-ninjas.com/v1/airquality?city=' + city,
    headers: { 'X-Api-Key': 'YOUR_API_KEY'},
    contentType: 'application/json',
    success: function(result) {
        console.log(result);
    },
    error: function ajaxError(jqXHR) {
        console.error('Error: ', jqXHR.responseText);
    }
});
const request = require('request');
var city = 'london';
request.get({
  url: 'https://api.api-ninjas.com/v1/airquality?city=' + city,
  headers: {
    'X-Api-Key': 'YOUR_API_KEY'
  },
}, function(error, response, body) {
  if(error) return console.error('Request failed:', error);
  else if(response.statusCode != 200) return console.error('Error:', response.statusCode, body.toString('utf8'));
  else console.log(body)
});
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;

import com.fasterxml.jackson.databind.ObjectMapper;

URL url = new URL("https://api.api-ninjas.com/v1/airquality?city=london");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestProperty("accept", "application/json");
InputStream responseStream = connection.getInputStream();
ObjectMapper mapper = new ObjectMapper();
JsonNode root = mapper.readTree(responseStream);
System.out.println(root.path("fact").asText());
let city = "london".addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)
let url = URL(string: "https://api.api-ninjas.com/v1/airquality?city="+city!)!
var request = URLRequest(url: url)
request.setValue("YOUR_API_KEY", forHTTPHeaderField: "X-Api-Key")
let task = URLSession.shared.dataTask(with: request) {(data, response, error) in
    guard let data = data else { return }
    print(String(data: data, encoding: .utf8)!)
}
task.resume()

If your programming language is not listed in the Code Example above, you can still make API calls by using a HTTP request library written in your programming language and following the above documentation.