Dokumentacja API
Historia
Średnie dobowe miasta za dowolny okres od 2017 roku i cała jego historia w miesiącach ze średnimi rocznymi i rekordami.
Historia dobowa
GEThttps://api.atmy.ai/v1/air-quality/history
Średnie dobowe Data Hub (UTC): ostatnie doby przez days= lub dowolny okres od 2017 roku przez from= i to=, maksymalnie 400 dób na zapytanie; doby ze zbyt małą liczbą czujników brak. Od 2026-01-19 każdy dzień ma też swoją pogodę: średnią, najniższą i najwyższą temperaturę, wilgotność, ciśnienie, wiatr, najsilniejszy poryw i zachmurzenie.
Parametry zapytania
city string opcjonalny
Nazwa miasta w dowolnym języku strony, slug (kraj/miasto) lub id.
country string opcjonalny
Nazwa lub slug kraju, by odróżnić miasta o tej samej nazwie.
days integer opcjonalny
Ile dni wstecz od ostatniej pełnej doby; pomijane przy from i to.
Domyślnie: 30
from date opcjonalny
Pierwszy dzień (UTC), 2017-01-01 lub później.
to date opcjonalny
Ostatni dzień (UTC); domyślnie ostatnia pełna doba. Najwyżej 400 dni na zapytanie.
lang string opcjonalny
Język nazw miasta i kraju oraz linku do strony.
Domyślnie: en
curl "https://api.atmy.ai/v1/air-quality/history?city=germany/berlin&days=30"const response = await fetch("https://api.atmy.ai/v1/air-quality/history?city=germany/berlin&days=30");
const data = await response.json();import requests
data = requests.get("https://api.atmy.ai/v1/air-quality/history?city=germany/berlin&days=30").json(){
"city": {
"id": 50037,
"slug": "germany/berlin",
"name": "Berlin",
"country": "Germany",
"timezone": "Europe/Berlin",
"center": {
"lat": 52.5073,
"lon": 13.3979
},
"page": "https://atmy.ai/air-quality/germany/berlin/"
},
"unit": "ug/m3",
"method": "datahub_daily",
"period_timezone": "UTC",
"category_scale": "US_EPA_2024",
"from": "2026-10-24",
"to": "2026-10-26",
"available_since": "2017-01-01",
"days": [
{
"date": "2026-10-24",
"pm25": 3.4,
"sensors": 172,
"level": "good",
"weather": {
"temperature_c": 10.1,
"temperature_min_c": 6.7,
"temperature_max_c": 14.7,
"humidity_percent": 71,
"pressure_hpa": 1010,
"wind_m_s": 4.3,
"wind_gust_max_m_s": 12.7,
"clouds_percent": 83,
"observations": 7
}
},
{
"date": "2026-10-25",
"pm25": 3.9,
"sensors": 174,
"level": "good",
"weather": {
"temperature_c": 9.8,
"temperature_min_c": 7.2,
"temperature_max_c": 14.6,
"humidity_percent": 72,
"pressure_hpa": 1002,
"wind_m_s": 5,
"wind_gust_max_m_s": 14.7,
"clouds_percent": 86,
"observations": 7
}
},
{
"date": "2026-10-26",
"pm25": 4.6,
"sensors": 176,
"level": "good",
"weather": {
"temperature_c": 9,
"temperature_min_c": 7.2,
"temperature_max_c": 13.4,
"humidity_percent": 73,
"pressure_hpa": 1014,
"wind_m_s": 3.2,
"wind_gust_max_m_s": 11.2,
"clouds_percent": 44,
"observations": 7
}
}
],
"weather_since": "2026-01-19",
"weather_notes": "weather: means of the readings Atmy stored for the city on the UTC day (observations: how many); temperature_min_c and temperature_max_c are the lowest and highest the provider reported for the day; wind_gust_max_m_s the strongest gust. No precipitation sum: the readings are instants.",
"weather_attribution": "Weather: OpenWeatherMap (to 2026-07-08, CC BY-SA 4.0) and Open-Meteo.com (from 2026-07-09, CC BY 4.0), collected by Atmy."
}Historia miesięczna
GEThttps://api.atmy.ai/v1/air-quality/history/monthly
Cała historia pomiarów miasta w podziale na miesiące: średnie roczne (pełne lata oznaczone), najbardziej i najmniej zanieczyszczone miesiące i doby. Wartości oparte na średnich dobowych samej sieci czujników są oznaczone. Od stycznia 2026 każdy miesiąc ma też swoją pogodę.
Parametry zapytania
city string opcjonalny
Nazwa miasta w dowolnym języku strony, slug (kraj/miasto) lub id.
country string opcjonalny
Nazwa lub slug kraju, by odróżnić miasta o tej samej nazwie.
lang string opcjonalny
Język nazw miasta i kraju oraz linku do strony.
Domyślnie: en
curl "https://api.atmy.ai/v1/air-quality/history/monthly?city=germany/berlin"const response = await fetch("https://api.atmy.ai/v1/air-quality/history/monthly?city=germany/berlin");
const data = await response.json();import requests
data = requests.get("https://api.atmy.ai/v1/air-quality/history/monthly?city=germany/berlin").json(){
"city": {
"id": 50037,
"slug": "germany/berlin",
"name": "Berlin",
"country": "Germany",
"timezone": "Europe/Berlin",
"center": {
"lat": 52.5073,
"lon": 13.3979
},
"page": "https://atmy.ai/air-quality/germany/berlin/"
},
"unit": "ug/m3",
"method": "datahub_monthly",
"period_timezone": "UTC",
"notes": "A month is the mean of its sensors; a sensor is the mean of its quality-checked days. Yearly means use months with data on at least half of their days; only complete years (12 months) compare as a whole. The number of sensors grew over the years, so comparisons are approximate. source_daily_days / source_daily_sensors: values that include the daily means of the sensor network itself where no hourly readings were kept. weather: means of the readings Atmy stored for the city in the month, its lowest and highest temperature.",
"since": "2025-01",
"months": [
{
"month": "2025-01",
"pm25": 8.1,
"sensors": 174,
"days_with_data": 30,
"days": 31
},
{
"month": "2025-02",
"pm25": 14.5,
"sensors": 175,
"days_with_data": 28,
"days": 28
}
],
"years": [
{
"year": "2025",
"pm25": 9,
"months": 12,
"complete": true
},
{
"year": "2026",
"pm25": 8.7,
"months": 10,
"complete": false
}
],
"dirtiest_months": [
{
"month": "2026-01",
"pm25": 18.3,
"sensors": 191,
"days_with_data": 31,
"days": 31
},
{
"month": "2026-02",
"pm25": 15.8,
"sensors": 193,
"days_with_data": 28,
"days": 28
}
],
"cleanest_months": [
{
"month": "2026-09",
"pm25": 4.5,
"sensors": 205,
"days_with_data": 30,
"days": 30
},
{
"month": "2026-06",
"pm25": 5.1,
"sensors": 195,
"days_with_data": 30,
"days": 30
}
],
"dirtiest_days": [
{
"date": "2026-01-23",
"pm25": 40.3,
"sensors": 183
},
{
"date": "2025-02-13",
"pm25": 35.5,
"sensors": 162
}
],
"cleanest_days": [
{
"date": "2025-04-06",
"pm25": 1.7,
"sensors": 173
},
{
"date": "2025-04-07",
"pm25": 1.7,
"sensors": 170
}
],
"weather_since": "2026-01-19",
"weather_attribution": "Weather: OpenWeatherMap (to 2026-07-08, CC BY-SA 4.0) and Open-Meteo.com (from 2026-07-09, CC BY 4.0), collected by Atmy."
}