REST API-и оммавии версияи 1: хондан бе калидҳо, JSON аз рӯи пешфарз; қабули маълумоти истгоҳҳо — POST бо калиди истгоҳ. Спетсификатсияи OpenAPI 3.1 аз ҳамон схемаҳое тавлид мешавад, ки дархостҳо ва ҷавобҳои серверро месанҷанд.
- Суроғаи асосӣ
https://havo.tj- Иҷозат
- Барои хондан лозим нест (маҳдудият 120 дархост дар як дақиқа аз як IP). Қабули маълумоти истгоҳҳо — сарлавҳаи Authorization: Bearer <калиди истгоҳ>, маҳдудияти алоҳида 60 дархост дар як дақиқа барои ҳар истгоҳ.
- CORS
- Дархостҳо аз ҳар гуна сомонаҳо иҷозат дода шудаанд (Access-Control-Allow-Origin: *).
Сифати ҳаво
GET/api/v1/stationsкеш 60 s
Рӯйхати истгоҳҳои мониторинг
Истгоҳҳои оммавӣ (ба ғайр аз истифодабарӣ баровардашуда) ҳамчун GeoJSON FeatureCollection бо сатҳи ҷории индекс; 0 — маълумот нест ё кӯҳна шудааст.
Ҷавобҳо
200application/jsonҶавоби бомуваффақият
type "FeatureCollection"ҳатмӣfeatures object[]ҳатмӣ
type "Feature"ҳатмӣid integerҳатмӣgeometry objectҳатмӣ
type "Point"ҳатмӣcoordinates [number, number]ҳатмӣ
properties objectҳатмӣ
id integerҳатмӣslug stringҳатмӣcode stringҳатмӣ — Station code, e.g. DU-01name objectҳатмӣ — Localized text: Tajik (tg), Russian (ru), English (en)
tg stringru stringen string
kind "air" | "meteo" | "combined"ҳатмӣstatus "active" | "suspended" | "decommissioned"ҳатмӣregion object | nullҳатмӣ
tg stringru stringen string
level integerҳатмӣ — Air quality level 1–5 (1–6 for six-category scales such as US AQI); 0 — no dataindexValue number | nullҳатмӣ — Continuous index value (level + fraction)indexTime string (date-time) | nullҳатмӣ — Time of the index value
GET/api/v1/stations/{slug}/measurementsкеш 60 s
Силсилаи ченакҳои истгоҳ
Миёнаи соатӣ (24h, 7d) ё шабонарӯзӣ аз рӯи вақти маҳаллӣ (30d, 1y) аз ченакҳои эътимоднок бо min/max ва шумораи қиматҳо. CSV — бо параметри format=csv. Қиматҳо ва майдони unit — дар воҳиди намоише, ки Агентӣ интихоб кардааст (µg/m³ ё mg/m³).
Параметрҳо| Параметр | Ҷой | Намуд | Тавсиф |
|---|
slugҳатмӣ | path | string | Суроғаи истгоҳ (майдони slug аз рӯйхати истгоҳҳо) |
range | query | 24h | 7d | 30d | 1y = 24h | Давра: 24h, 7d, 30d ё 1y |
pollutant | query | string | Рамзи модда (PM25, PM10, NO2, SO2, CO, O3, NO, CH2O, C6H5OH, HF, TSP, CO2, TVOC); бе параметр — ҳама |
format | query | json | csv = json | json ё csv |
Намунаи дархост
curl "https://havo.tj/api/v1/stations/dushanbe-centre/measurements?range=7d&pollutant=PM25"
Кушодан дар браузер → →Ҷавобҳо
200application/jsonҶавоби бомуваффақият
station objectҳатмӣ
id integerҳатмӣslug stringҳатмӣcode stringҳатмӣname objectҳатмӣ — Localized text: Tajik (tg), Russian (ru), English (en)
tg stringru stringen string
range "24h" | "7d" | "30d" | "1y"ҳатмӣfrom string (date-time)ҳатмӣ — ISO 8601 timestamp (UTC)to string (date-time)ҳатмӣ — ISO 8601 timestamp (UTC)aggregation "hour" | "day"ҳатмӣ — hour for 24h/7d, day (local time) for 30d/1ytimezone "Asia/Dushanbe"ҳатмӣseries object[]ҳатмӣ
pollutant objectҳатмӣ
id integerҳатмӣcode stringҳатмӣshortName stringҳатмӣunit stringҳатмӣ — Display unit configured by the Agency: µg/m³ or mg/m³ (CO always mg/m³; CO2 ppm, TVOC ppb). Values are converted to itdecimals integerҳатмӣ
points object[]ҳатмӣ
t string (date-time)ҳатмӣ — Start of the hour/dayv number | nullҳатмӣ — Mean of valid measurements, in `unit`min number | nullҳатмӣmax number | nullҳатмӣn integerҳатмӣ — Number of measurements in the bin
200text/csvCSV (UTF-8 бо BOM): time_utc, time_local, pollutant, value, min, max, n
400application/jsonПараметрҳо нодурустанд
404application/jsonОбъект ёфт нашуд
GET/api/v1/index/currentкеш 60 s
Индекси ҷорӣ аз рӯи истгоҳҳо
Индекси охирини ҳисобшудаи ҳар истгоҳи оммавӣ: сатҳ, қимат, моддаи муайянкунанда, зериндексҳо ва аломати кӯҳнашавӣ (аз 6 соат кӯҳнатар). Барои шкалаи RATIO_TO_LIMIT — нишондодҳои методикаи Агентӣ (indicators): ҷамъи NO₂+SO₂, консентратсияҳои якмаротибагии баландтарин бо нисбат ба ҲМҒ(як), нишонаҳои ИБ/НИБ; units — воҳидҳои намоиш аз рӯи моддаҳо.
Параметрҳо| Параметр | Ҷой | Намуд | Тавсиф |
|---|
scale | query | string | Рамзи шкала: NATIONAL_OPERATIONAL (пешфарз), WHO_24H ё IZA |
Ҷавобҳо
200application/jsonҶавоби бомуваффақият
scale objectҳатмӣ
code stringҳатмӣkind "breakpoints" | "ratio_to_limit" | "iza"ҳатмӣlevels object[]ҳатмӣ
level integerҳатмӣcolor stringҳатмӣ — Hex colourlabel objectҳатмӣ — Localized text: Tajik (tg), Russian (ru), English (en)
tg stringru stringen string
lo numberhi number | null
generatedAt string (date-time)ҳатмӣ — ISO 8601 timestamp (UTC)units objectҳатмӣ — Display unit per pollutant code (µg/m³ or mg/m³ as configured by the Agency; ppm, ppb)stations object[]ҳатмӣ
id integerҳатмӣslug stringҳатмӣcode stringҳатмӣname objectҳатмӣ — Localized text: Tajik (tg), Russian (ru), English (en)
tg stringru stringen string
level integerҳатмӣ — Air quality level 1–5 (1–6 for six-category scales such as US AQI); 0 — no datavalue number | nullҳатмӣtime string (date-time) | nullҳатмӣstale booleanҳатмӣ — Index older than 6 hoursdominantPollutant string | nullҳатмӣ — Pollutant code with the worst sub-indexsubIndices objectҳатмӣ
value numberҳатмӣ — Concentration used for the sub-index, in the display unitlevel integerҳатмӣindex numberҳатмӣ — Continuous sub-index; for RATIO_TO_LIMIT — ratio to the daily limit
indicators object | nullҳатмӣ
no2so2Sum number | nullҳатмӣ — NO2 + SO2 summation: sum of the daily-limit ratios; null when one of them is not measuredhighPollution booleanҳатмӣ — High pollution (ВЗ): a pollutant reached 10 single limitsextremeHighPollution booleanҳатмӣ — Extremely high pollution (ЭВЗ): a pollutant reached 50 single limitsmaxSingle objectҳатмӣ
value numberҳатмӣ — Maximum single (hourly) concentration of the last 24 hours, in the display unitratio number | nullҳатмӣ — Ratio to the single limit; null without a limit
flagged objectҳатмӣ — Pollutants with high/extremely high pollution: ratio to the single limit
404application/jsonОбъект ёфт нашуд
GET/api/v1/exceedancesкеш 60 s
Зиёдшавиҳои фаъоли ҳадҳо
Ҳодисаҳои кушодаи зиёдшавӣ аз рӯи қоидаҳои огоҳиҳои Агентӣ (канали «портал»).
Ҷавобҳо
200application/jsonҶавоби бомуваффақият
generatedAt string (date-time)ҳатмӣ — ISO 8601 timestamp (UTC)events object[]ҳатмӣ
id integerҳатмӣstartedAt string (date-time)ҳатмӣ — ISO 8601 timestamp (UTC)station objectҳатмӣ
id integerҳатмӣslug stringҳатмӣname objectҳатмӣ — Localized text: Tajik (tg), Russian (ru), English (en)
tg stringru stringen string
rule stringҳатмӣkind "pollutant" | "index"ҳатмӣpollutant string | nullҳатмӣunit string | nullҳатмӣvalue number | nullҳатмӣthreshold numberҳатмӣlevel integer | nullҳатмӣ
Пешгӯиҳо
GET/api/v1/forecast/{slug}кеш 300 s
Пешгӯии обу ҳаво барои нуқта
Силсилаи соатӣ ва ҷамъбасти шабонарӯзии SmartMet Server; вақти оғози модел ва истеҳсолкунандаи маълумот.
Параметрҳо| Параметр | Ҷой | Намуд | Тавсиф |
|---|
slugҳатмӣ | path | string | Суроғаи нуқтаи пешгӯӣ, масалан dushanbe |
hours | query | integer = 72 | Шумораи соатҳои силсилаи соатӣ (1–240) |
days | query | integer = 10 | Шумораи рӯзҳои пешгӯии шабонарӯзӣ (1–16) |
Ҷавобҳо
200application/jsonҶавоби бомуваффақият
location objectҳатмӣ
slug stringҳатмӣname objectҳатмӣ — Localized text: Tajik (tg), Russian (ru), English (en)
tg stringru stringen string
lat numberҳатмӣlon numberҳатмӣregion object | nullҳатмӣ
tg stringru stringen string
producer string | nullҳатмӣ — SmartMet producer, e.g. ecmwforiginTime string (date-time) | nullҳатмӣ — Model run timefetchedAt string (date-time) | nullҳатмӣtimeZone "Asia/Dushanbe"ҳатмӣhourly object[]ҳатмӣ
time string (date-time)ҳатмӣ — ISO 8601 timestamp (UTC)t number | null — Air temperature, °Cws number | null — Wind speed, m/swd number | null — Wind direction, degreesgust number | null — Wind gust, m/srh number | null — Relative humidity, %p number | null — Pressure, hPadew number | null — Dew point, °Cprecip number | null — Precipitation, mm/hcloud number | null — Total cloud cover, %symbol integer | null — FMI SmartSymbol code (1xx — night variant)
daily object[]ҳатмӣ
date string (date-time)ҳатмӣ — Local midnight (UTC+5) of the daytmax number | nulltmin number | nullprecipSum number | null — Daily precipitation, mmws number | null — Max wind speed, m/scloud number | nullsymbol integer | null
404application/jsonОбъект ёфт нашуд
GET/api/v1/silam/{slug}кеш 600 s
Пешгӯии сифати ҳавои SILAM барои нуқта
Консентратсияҳои соатӣ ва сатҳҳо аз рӯи моддаҳо ва ҷамъбасти шабонарӯзӣ (миёна дар шабонарӯзи маҳаллӣ, сатҳ аз рӯи бадтарин модда).
Параметрҳо| Параметр | Ҷой | Намуд | Тавсиф |
|---|
slugҳатмӣ | path | string | Суроғаи нуқтаи пешгӯӣ, масалан dushanbe |
Ҷавобҳо
200application/jsonҶавоби бомуваффақият
location objectҳатмӣ
slug stringҳатмӣname objectҳатмӣ — Localized text: Tajik (tg), Russian (ru), English (en)
tg stringru stringen string
lat numberҳатмӣlon numberҳатмӣ
run object | nullҳатмӣ
originTime string (date-time)ҳатмӣ — ISO 8601 timestamp (UTC)fetchedAt string (date-time)ҳатмӣ — ISO 8601 timestamp (UTC)
units objectҳатмӣ — Unit per pollutant codehourly objectҳатмӣ — Hourly [time, value, level] per pollutantdays object[]ҳатмӣ
date stringҳатмӣ — YYYY-MM-DD, local timelevel integerҳатмӣ — Air quality level 1–5 (1–6 for six-category scales such as US AQI); 0 — no datadominantPollutant string | nullҳатмӣmeans objectҳатмӣ — Daily mean per pollutant code
404application/jsonОбъект ёфт нашуд
GET/api/v1/silam/layersкеш 600 s
Феҳристи қабатҳои растрии SILAM
Сарҳадҳои тӯр ва кадрҳои PNG аз рӯи моддаҳо ва соатҳои иҷрои охирин — барои гузоштан ба харита.
Ҷавобҳо
200application/jsonҶавоби бомуваффақият
run object | nullҳатмӣ
originTime string (date-time)ҳатмӣ — ISO 8601 timestamp (UTC)fetchedAt string (date-time)ҳатмӣ — ISO 8601 timestamp (UTC)hours integerҳатмӣbounds object | nullҳатмӣ — Grid bounds in degrees for image placement
west numberҳатмӣsouth numberҳатмӣeast numberҳатмӣnorth numberҳатмӣ
pollutants object[]ҳатмӣ
code stringҳатмӣframes object[]ҳатмӣ
time string (date-time)ҳатмӣ — ISO 8601 timestamp (UTC)url stringҳатмӣ — Relative URL of the PNG layermax number | nullҳатмӣ — Maximum concentration in the domain
Огоҳиҳо
GET/api/v1/alertsкеш 60 s
Огоҳиҳои CAP
Рӯйхати меъёршудаи огоҳиҳои SmartMet Alert бо забони интихобшуда (бо фолбэк) ё GeoJSON полигонҳо барои харита.
Параметрҳо| Параметр | Ҷой | Намуд | Тавсиф |
|---|
active | query | 1 | 1 — танҳо ҳоло амалкунанда |
region | query | string | Рамзи минтақаи огоҳиҳо (DU, SU, KT, GB, RRP) |
lang | query | tg | ru | en = tg | Забони матнҳо: tg, ru ё en |
days | query | integer = 7 | Уфуқ дар рӯзҳо (1–14) |
format | query | json | geojson = json | json ё geojson |
Ҷавобҳо
200application/jsonҶавоби бомуваффақият
generatedAt string (date-time)ҳатмӣ — ISO 8601 timestamp (UTC)lang "tg" | "ru" | "en"ҳатмӣcount integerҳатмӣalerts object[]ҳатмӣ
id integerҳатмӣidentifier stringҳатмӣ — CAP identifiersent string (date-time)ҳатмӣ — ISO 8601 timestamp (UTC)msgType "Alert" | "Update" | "Cancel" | "Ack" | "Error"ҳатмӣlanguage stringҳатмӣevent stringҳатмӣheadline stringҳатмӣdescription string | nullҳатмӣinstruction string | nullҳатмӣseverity "Extreme" | "Severe" | "Moderate" | "Minor" | "Unknown"ҳатмӣcolor "red" | "orange" | "yellow" | "none"ҳатмӣcolorHex stringҳатмӣurgency stringҳатмӣcertainty stringҳатмӣeffective string (date-time) | nullҳатмӣonset string (date-time) | nullҳатмӣexpires string (date-time) | nullҳатмӣstart string (date-time)ҳатмӣ — ISO 8601 timestamp (UTC)end string (date-time) | nullҳатмӣactive booleanҳатмӣupcoming booleanҳатмӣregions object[]ҳатмӣ
code stringҳатмӣname objectҳатмӣ — Localized text: Tajik (tg), Russian (ru), English (en)
tg stringru stringen string
areas string[]ҳатмӣ — areaDesc valuesweb string | nullҳатмӣxml stringҳатмӣ — URL of the original CAP XML
200application/geo+jsonGeoJSON ҳангоми format=geojson
type "FeatureCollection"ҳатмӣgeneratedAt string (date-time)ҳатмӣ — ISO 8601 timestamp (UTC)features object[]ҳатмӣ
type "Feature"ҳатмӣid stringҳатмӣgeometry objectҳатмӣ
type stringҳатмӣcoordinates any[]ҳатмӣ
properties objectҳатмӣ
id integerҳатмӣidentifier stringҳатмӣevent stringҳатмӣheadline stringҳатмӣseverity stringҳатмӣlevel integerҳатмӣcolor stringҳатмӣstart string (date-time)ҳатмӣ — ISO 8601 timestamp (UTC)end string (date-time) | nullҳатмӣactive booleanҳатмӣregion string | nullҳатмӣareaDesc stringҳатмӣhref stringҳатмӣ
Параметрҳо| Параметр | Ҷой | Намуд | Тавсиф |
|---|
idҳатмӣ | path | string | Идентификатори огоҳӣ аз рӯйхат |
Ҷавобҳо
200application/cap+xmlПаёми аслии CAP 1.2
404application/jsonОбъект ёфт нашуд
Ахбор
Параметрҳо| Параметр | Ҷой | Намуд | Тавсиф |
|---|
locale | query | tg | ru | en = tg | Забон: tg, ru ё en |
page | query | integer = 1 | Рақами саҳифа |
pageSize | query | integer = 12 | Андозаи саҳифа (1–50) |
category | query | string | Slug-и рубрика |
Ҷавобҳо
200application/jsonҶавоби бомуваффақият
locale "tg" | "ru" | "en"ҳатмӣpage integerҳатмӣpageSize integerҳатмӣtotal integerҳатмӣitems object[]ҳатмӣ
id integerҳатмӣslug stringҳатмӣtitle stringҳатмӣexcerpt stringҳатмӣpublishedAt string (date-time) | nullҳатмӣupdatedAt string (date-time)ҳатмӣ — ISO 8601 timestamp (UTC)pinned booleanҳатмӣcategory object | nullҳатмӣ
slug stringҳатмӣname stringҳатмӣ
cover string | nullҳатмӣ — Absolute URL of the cover imageurl stringҳатмӣ — Absolute URL of the article
География
GET/api/v1/regionsкеш 600 s
Сарҳадҳои маъмурӣ: вилоятҳо
Вилоятҳо, Душанбе ва НТҶ бо полигонҳои соддакардашуда, сентроидҳо, шумораи истгоҳҳо ва бадтарин сатҳи ҷории индекс (0 — маълумот нест). Кэш 10 дақиқа, ETag.
Ҷавобҳо
200application/jsonҶавоби бомуваффақият
type "FeatureCollection"ҳатмӣfeatures object[]ҳатмӣ
type "Feature"ҳатмӣid integerҳатмӣgeometry objectҳатмӣ
type "MultiPolygon"ҳатмӣcoordinates any[]ҳатмӣ
properties objectҳатмӣ
id integerҳатмӣcode stringҳатмӣname objectҳатмӣ — Localized text: Tajik (tg), Russian (ru), English (en)
tg stringru stringen string
stationsCount integerҳатмӣ — Public stations located inside the unitlevel integerҳатмӣ — Worst current index level among the unit's stations; 0 — no data or stalesortOrder integerҳатмӣcentroid [number, number] | nullҳатмӣ
GET/api/v1/districtsкеш 600 s
Сарҳадҳои маъмурӣ: ноҳияҳо
Ноҳияҳо ва шаҳрҳои тобеи вилоят бо полигонҳои соддакардашуда, рамзи вилоят, шумораи истгоҳҳо ва бадтарин сатҳи ҷории индекс. Воҳидҳои бе геометрия дохил карда намешаванд.
Ҷавобҳо
200application/jsonҶавоби бомуваффақият
type "FeatureCollection"ҳатмӣfeatures object[]ҳатмӣ
type "Feature"ҳатмӣid integerҳатмӣgeometry objectҳатмӣ
type "MultiPolygon"ҳатмӣcoordinates any[]ҳатмӣ
properties objectҳатмӣ
id integerҳатмӣcode stringҳатмӣname objectҳатмӣ — Localized text: Tajik (tg), Russian (ru), English (en)
tg stringru stringen string
stationsCount integerҳатмӣ — Public stations located inside the unitlevel integerҳатмӣ — Worst current index level among the unit's stations; 0 — no data or staleregionId integerҳатмӣ — Parent region idregionCode stringҳатмӣ — Parent region code (DU, RRP, SU, KT, GB)
Қабули маълумоти истгоҳҳо
POST/api/v1/ingest/{code}
Қабули ченакҳо аз истгоҳ
Логгер, агенти истгоҳ ё нармафзори истеҳсолкунанда массиви JSON-и ченакҳоро мефиристад (то 1000 дар як дархост). Вақт — ISO 8601 бо минтақа ё маҳаллӣ (Asia/Dushanbe); моддаҳо — рамзҳои PM25, PM10, NO2, SO2, CO, O3 ё муродифҳо; воҳиди пешфарз — воҳиди вуруди истгоҳ. Қиматҳо ба воҳиди модда табдил дода, аз қоидаи доираи QC мегузаранд ва аз рӯи калиди вақт/модда/миёнагирӣ сабт мешаванд — фиристодани такрорӣ идемпотент аст, қарорҳои оператор нигоҳ дошта мешаванд. Ҷавоб шумораи сабтҳои қабулшуда ва радшуда ва сабабҳоро барои ҳар кадом дар бар мегирад. Пас аз сабт индекс ва қоидаҳои огоҳӣ аз нав ҳисоб мешаванд.
Параметрҳо| Параметр | Ҷой | Намуд | Тавсиф |
|---|
codeҳатмӣ | path | string | Рамзи истгоҳ аз феҳрист (масалан DU-01) |
Иҷозат: Калиди API-и истгоҳ аз корти истгоҳ дар панели маъмурӣ; бо сарлавҳаи Authorization: Bearer <калид> фиристода мешавад. Дар пойгоҳ танҳо хэши калид нигоҳ дошта мешавад.
Матни дархост
application/jsonobject[] | object
Намунаи дархост
curl -X POST "https://havo.tj/api/v1/ingest/DU-01" \
-H "Authorization: Bearer <station-api-key>" \
-H "Content-Type: application/json" \
-d '[
{
"time": "2026-10-18T07:00:00Z",
"pollutant": "PM25",
"value": 42.5
},
{
"time": "2026-10-18 12:00",
"pollutant": "pm2.5",
"value": "12,5",
"unit": "µg/m³"
},
{
"time": "2026-10-18T07:00:00Z",
"pollutant": "NO2",
"value": 10,
"unit": "ppb",
"flag": "valid"
},
{
"time": "2026-10-18T07:00:00Z",
"pollutant": "CO",
"value": null,
"flag": "missing"
}
]'
Ҷавобҳо
200application/jsonАқаллан як сабт қабул шуд (сабабҳои радшудаҳо — дар errors)
station objectҳатмӣ
id integerҳатмӣcode stringҳатмӣslug stringҳатмӣ
received integerҳатмӣ — Records in the requestaccepted integerҳатмӣ — Records stored (distinct time/pollutant/averaging keys)rejected integerҳатмӣ — Records rejected; see errorsinserted integerҳатмӣ — New rowsupdated integerҳатмӣ — Existing rows overwritten (idempotent re-sends)skippedLocked integerҳатмӣ — Rows kept as decided by an operator (qc_locked)invalidRange integerҳатмӣ — Accepted values outside the QC range, stored with flag invalidduplicates integerҳатмӣ — Records superseded by a later record with the same keyfrom string (date-time) | nullҳатмӣto string (date-time) | nullҳатмӣpollutants string[]ҳатмӣ — Pollutant codes of accepted recordserrors object[]ҳатмӣ — Per-record reasons for rejected and superseded records
index integerҳатмӣ — Index of the record in the request arraymessage stringҳатмӣ — Reason: time, futureTime, tooOld, unknownPollutant:X, pollutantNotConfigured:X, emptyValue, value:X, unit:X, unitConversion:X, averagingMin:X, duplicate
400application/jsonПараметрҳо нодурустанд
error stringҳатмӣ — unauthorized | station_inactive | invalid_json | validation | payload_too_large | rate_limitedmessage stringissues object[]
path stringҳатмӣmessage stringҳатмӣ
401application/jsonСарлавҳаи Authorization нест ё калид ба рамзи истгоҳ мувофиқ нест
error stringҳатмӣ — unauthorized | station_inactive | invalid_json | validation | payload_too_large | rate_limitedmessage stringissues object[]
path stringҳатмӣmessage stringҳатмӣ
403application/jsonИстгоҳ боздошта ё аз истифода бароварда шудааст
error stringҳатмӣ — unauthorized | station_inactive | invalid_json | validation | payload_too_large | rate_limitedmessage stringissues object[]
path stringҳатмӣmessage stringҳатмӣ
413application/jsonМатн аз 2 МБ калонтар аст
error stringҳатмӣ — unauthorized | station_inactive | invalid_json | validation | payload_too_large | rate_limitedmessage stringissues object[]
path stringҳатмӣmessage stringҳатмӣ
422application/jsonЯгон сабт қабул нашуд — ниг. errors
station objectҳатмӣ
id integerҳатмӣcode stringҳатмӣslug stringҳатмӣ
received integerҳатмӣ — Records in the requestaccepted integerҳатмӣ — Records stored (distinct time/pollutant/averaging keys)rejected integerҳатмӣ — Records rejected; see errorsinserted integerҳатмӣ — New rowsupdated integerҳатмӣ — Existing rows overwritten (idempotent re-sends)skippedLocked integerҳатмӣ — Rows kept as decided by an operator (qc_locked)invalidRange integerҳатмӣ — Accepted values outside the QC range, stored with flag invalidduplicates integerҳатмӣ — Records superseded by a later record with the same keyfrom string (date-time) | nullҳатмӣto string (date-time) | nullҳатмӣpollutants string[]ҳатмӣ — Pollutant codes of accepted recordserrors object[]ҳатмӣ — Per-record reasons for rejected and superseded records
index integerҳатмӣ — Index of the record in the request arraymessage stringҳатмӣ — Reason: time, futureTime, tooOld, unknownPollutant:X, pollutantNotConfigured:X, emptyValue, value:X, unit:X, unitConversion:X, averagingMin:X, duplicate
429application/jsonМаҳдудияти дархостҳои истгоҳ гузашт (ниг. Retry-After)
error stringҳатмӣ — unauthorized | station_inactive | invalid_json | validation | payload_too_large | rate_limitedmessage stringissues object[]
path stringҳатмӣmessage stringҳатмӣ
Маълумот — тибқи иҷозатномаи CC BY 4.0 бо нишон додани манбаъ; пешгӯиҳои FMI — бо нишон додани Институти обуҳавошиносии Финляндия.
Барои сомонаҳои бе таҳия виджетҳои iframe /embed/aqi, /embed/forecast ва /embed/alerts мавҷуданд (ниг. «Маълумоти кушода»).