/openmeteo/air-quality
curl --request POST \
--url https://api.anysite.io/api/openmeteo/air-quality \
--header 'Content-Type: application/json' \
--header 'access-token: <api-key>' \
--data '
{
"latitude": 0,
"longitude": 0,
"timeout": 300,
"timezone": "GMT",
"timeformat": "iso8601",
"hourly": [],
"current": [],
"domains": "auto",
"forecast_days": 3,
"past_days": 46
}
'import requests
url = "https://api.anysite.io/api/openmeteo/air-quality"
payload = {
"latitude": 0,
"longitude": 0,
"timeout": 300,
"timezone": "GMT",
"timeformat": "iso8601",
"hourly": [],
"current": [],
"domains": "auto",
"forecast_days": 3,
"past_days": 46
}
headers = {
"access-token": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'access-token': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
latitude: 0,
longitude: 0,
timeout: 300,
timezone: 'GMT',
timeformat: 'iso8601',
hourly: [],
current: [],
domains: 'auto',
forecast_days: 3,
past_days: 46
})
};
fetch('https://api.anysite.io/api/openmeteo/air-quality', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.anysite.io/api/openmeteo/air-quality",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'latitude' => 0,
'longitude' => 0,
'timeout' => 300,
'timezone' => 'GMT',
'timeformat' => 'iso8601',
'hourly' => [
],
'current' => [
],
'domains' => 'auto',
'forecast_days' => 3,
'past_days' => 46
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"access-token: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.anysite.io/api/openmeteo/air-quality"
payload := strings.NewReader("{\n \"latitude\": 0,\n \"longitude\": 0,\n \"timeout\": 300,\n \"timezone\": \"GMT\",\n \"timeformat\": \"iso8601\",\n \"hourly\": [],\n \"current\": [],\n \"domains\": \"auto\",\n \"forecast_days\": 3,\n \"past_days\": 46\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("access-token", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.anysite.io/api/openmeteo/air-quality")
.header("access-token", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"latitude\": 0,\n \"longitude\": 0,\n \"timeout\": 300,\n \"timezone\": \"GMT\",\n \"timeformat\": \"iso8601\",\n \"hourly\": [],\n \"current\": [],\n \"domains\": \"auto\",\n \"forecast_days\": 3,\n \"past_days\": 46\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.anysite.io/api/openmeteo/air-quality")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["access-token"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"latitude\": 0,\n \"longitude\": 0,\n \"timeout\": 300,\n \"timezone\": \"GMT\",\n \"timeformat\": \"iso8601\",\n \"hourly\": [],\n \"current\": [],\n \"domains\": \"auto\",\n \"forecast_days\": 3,\n \"past_days\": 46\n}"
response = http.request(request)
puts response.read_body[
{
"latitude": 123,
"longitude": 123,
"@type": "OpenmeteoWeather",
"generation_time_ms": 123,
"utc_offset_seconds": 123,
"timezone": "<string>",
"timezone_abbreviation": "<string>",
"elevation": 123,
"current": {
"@type": "OpenmeteoCurrentConditions",
"units": {},
"values": {}
},
"minutely_15": {
"@type": "OpenmeteoTimeSeries",
"units": {},
"records": []
},
"hourly": {
"@type": "OpenmeteoTimeSeries",
"units": {},
"records": []
},
"daily": {
"@type": "OpenmeteoTimeSeries",
"units": {},
"records": []
}
}
]{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}/openmeteo
/openmeteo/air-quality
Get air-quality data (particulates, gases, pollen, AQI) for a geographic point
Price: 1 credit
⚠️ Common errors: 412: No data available for the location
POST
/
api
/
openmeteo
/
air-quality
/openmeteo/air-quality
curl --request POST \
--url https://api.anysite.io/api/openmeteo/air-quality \
--header 'Content-Type: application/json' \
--header 'access-token: <api-key>' \
--data '
{
"latitude": 0,
"longitude": 0,
"timeout": 300,
"timezone": "GMT",
"timeformat": "iso8601",
"hourly": [],
"current": [],
"domains": "auto",
"forecast_days": 3,
"past_days": 46
}
'import requests
url = "https://api.anysite.io/api/openmeteo/air-quality"
payload = {
"latitude": 0,
"longitude": 0,
"timeout": 300,
"timezone": "GMT",
"timeformat": "iso8601",
"hourly": [],
"current": [],
"domains": "auto",
"forecast_days": 3,
"past_days": 46
}
headers = {
"access-token": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'access-token': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
latitude: 0,
longitude: 0,
timeout: 300,
timezone: 'GMT',
timeformat: 'iso8601',
hourly: [],
current: [],
domains: 'auto',
forecast_days: 3,
past_days: 46
})
};
fetch('https://api.anysite.io/api/openmeteo/air-quality', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.anysite.io/api/openmeteo/air-quality",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'latitude' => 0,
'longitude' => 0,
'timeout' => 300,
'timezone' => 'GMT',
'timeformat' => 'iso8601',
'hourly' => [
],
'current' => [
],
'domains' => 'auto',
'forecast_days' => 3,
'past_days' => 46
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"access-token: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.anysite.io/api/openmeteo/air-quality"
payload := strings.NewReader("{\n \"latitude\": 0,\n \"longitude\": 0,\n \"timeout\": 300,\n \"timezone\": \"GMT\",\n \"timeformat\": \"iso8601\",\n \"hourly\": [],\n \"current\": [],\n \"domains\": \"auto\",\n \"forecast_days\": 3,\n \"past_days\": 46\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("access-token", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.anysite.io/api/openmeteo/air-quality")
.header("access-token", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"latitude\": 0,\n \"longitude\": 0,\n \"timeout\": 300,\n \"timezone\": \"GMT\",\n \"timeformat\": \"iso8601\",\n \"hourly\": [],\n \"current\": [],\n \"domains\": \"auto\",\n \"forecast_days\": 3,\n \"past_days\": 46\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.anysite.io/api/openmeteo/air-quality")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["access-token"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"latitude\": 0,\n \"longitude\": 0,\n \"timeout\": 300,\n \"timezone\": \"GMT\",\n \"timeformat\": \"iso8601\",\n \"hourly\": [],\n \"current\": [],\n \"domains\": \"auto\",\n \"forecast_days\": 3,\n \"past_days\": 46\n}"
response = http.request(request)
puts response.read_body[
{
"latitude": 123,
"longitude": 123,
"@type": "OpenmeteoWeather",
"generation_time_ms": 123,
"utc_offset_seconds": 123,
"timezone": "<string>",
"timezone_abbreviation": "<string>",
"elevation": 123,
"current": {
"@type": "OpenmeteoCurrentConditions",
"units": {},
"values": {}
},
"minutely_15": {
"@type": "OpenmeteoTimeSeries",
"units": {},
"records": []
},
"hourly": {
"@type": "OpenmeteoTimeSeries",
"units": {},
"records": []
},
"daily": {
"@type": "OpenmeteoTimeSeries",
"units": {},
"records": []
}
}
]{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Authorizations
API token from the dashboard
Headers
Body
application/json
Required range:
-90 <= x <= 90Required range:
-180 <= x <= 180Required range:
20 <= x <= 1500Available options:
iso8601, unixtime Available options:
pm10, pm2_5, carbon_monoxide, nitrogen_dioxide, sulphur_dioxide, ozone, aerosol_optical_depth, dust, uv_index, uv_index_clear_sky, ammonia, methane, alder_pollen, birch_pollen, grass_pollen, mugwort_pollen, olive_pollen, ragweed_pollen, european_aqi, european_aqi_pm2_5, european_aqi_pm10, european_aqi_no2, european_aqi_o3, european_aqi_so2, us_aqi, us_aqi_pm2_5, us_aqi_pm10, us_aqi_no2, us_aqi_o3, us_aqi_so2, us_aqi_co Available options:
pm10, pm2_5, carbon_monoxide, nitrogen_dioxide, sulphur_dioxide, ozone, aerosol_optical_depth, dust, uv_index, uv_index_clear_sky, ammonia, methane, alder_pollen, birch_pollen, grass_pollen, mugwort_pollen, olive_pollen, ragweed_pollen, european_aqi, european_aqi_pm2_5, european_aqi_pm10, european_aqi_no2, european_aqi_o3, european_aqi_so2, us_aqi, us_aqi_pm2_5, us_aqi_pm10, us_aqi_no2, us_aqi_o3, us_aqi_so2, us_aqi_co Available options:
auto, cams_europe, cams_global Required range:
0 <= x <= 7Required range:
0 <= x <= 92Response
Successful Response
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes