Environment / Air quality
Official hourly Tbilisi air-quality station observations
Detailed official station JSON combining station identity and coordinates, pollutant definitions and units, AQI threshold bands, chart metadata, and hourly pollutant values with measurement times for five Tbilisi stations.
Provenance and access
How the data is reached
Unauthenticated parameterized JSON GET; trailing slash redirects/should be retained.
Unclear; no explicit machine-readable data license found
Air-quality portal
https://air.gov.ge/en/ ↗- Method
- GET
- Format
- HTML
- Authentication
- None observed
- Method
- GET
- Format
- JSON
- Authentication
- None observed
Select time range, station, municipality, substance, latest-only, chart, and format
Field-level detail
What is actually returned
Station
Top-level array item.
| Field / path | Type | Null? | Example | Meaning | Freshness |
|---|---|---|---|---|---|
id | integer | No | 6 | Internal station ID | reference |
municipality_id | integer | No | 51 | Municipality ID | reference |
code | string | No | TSRT | Station code | reference |
settlement | string | No | Georgian text | Settlement name in Georgian | reference |
settlement_en | string | Yes | Settlement name in English | reference | |
address | string | Yes | №105 | Default-locale address component | reference |
address_en | string | Yes | varies | English address component | reference |
lat | number | No | 41.7419 | Station latitude | reference |
long | number | No | 44.77931 | Station longitude | reference |
elev | number | Unknown | 412 | Station elevationUnit absent in field | reference |
stationequipment_set | array<object> | No | [...] | Equipment/pollutants and readings | live |
equipment_count | integer | No | 13 | Equipment-entry count | derived |
stationimage_set | array<object> | No | [] | Station image records | reference |
description_short_ge | string | Yes | varies | Short Georgian station description | reference |
description_short_en | string | Yes | varies | Short English station description | reference |
station_type | string | Yes | Georgian text | Monitoring-station type | reference |
st_full_address_ge | string | Yes | varies | Full Georgian station address | reference |
st_full_address_en | string | Yes | varies | Full English station address | reference |
representativeness_distance | string | Yes | 400 | Configured representativeness distanceNumeric-looking string; unit absent | reference |
Station equipment
stationequipment_set[*].
| Field / path | Type | Null? | Example | Meaning | Freshness |
|---|---|---|---|---|---|
equipment | object | null | Yes | null | Optional physical equipment metadata | reference |
substance | object | No | {...} | Pollutant definition, units, and AQI bands | reference |
chart_color | string | Yes | UI series color | reference | |
line_chart_dashstyle | string | Unknown | Solid | UI line style | reference |
line_chart_linewidth | integer | Unknown | 1 | UI line width | reference |
point_chart_linewidth | integer | Unknown | 1 | UI point-outline width | reference |
point_chart_symbol | string | Yes | circle | UI point symbol | reference |
point_chart_radius | integer | Unknown | 6 | UI point radius | reference |
data1hour_set | array<object> | No | [{"value":30.6958,"date_time":"2026-07-22T13:00:00"}] | Hourly measurement series | live |
Substance
stationequipment_set[*].substance.
| Field / path | Type | Null? | Example | Meaning | Freshness |
|---|---|---|---|---|---|
name | string | No | PM10 | Pollutant code/name | reference |
unit_ge | string (HTML) | No | formatted unit | Georgian/default formatted unit | reference |
unit_en | string (HTML) | No | μg/m<sup>3</sup> | English formatted unitCO observed in mg/m³ | reference |
annotation_ge | string (HTML) | Yes | varies | Long Georgian explanation | reference |
annotation_en | string (HTML) | Yes | varies | Long English explanation | reference |
annotation_short_ge | string | Yes | varies | Short Georgian label/explanation | reference |
annotation_short_en | string | Yes | varies | Short English label/explanation | reference |
airqualityindexlevel_set | array<object> | No | [{...}] | Pollutant-specific AQI bands | reference |
AQI bands
airqualityindexlevel_set[*]; PM10 examples shown.
| Field / path | Type | Null? | Example | Meaning | Freshness |
|---|---|---|---|---|---|
good_from | number | No | 0 | Good lower threshold | reference |
good_to | number | No | 20 | Good upper threshold | reference |
good_color | string | No | #35eee6 | Good display color | reference |
fair_from | number | No | 20 | Fair lower threshold | reference |
fair_to | number | No | 35 | Fair upper threshold | reference |
fair_color | string | No | #29a884 | Fair display color | reference |
moderate_from | number | No | 35 | Moderate lower threshold | reference |
moderate_to | number | No | 50 | Moderate upper threshold | reference |
moderate_color | string | No | #f0e641 | Moderate display color | reference |
poor_from | number | No | 50 | Poor lower threshold | reference |
poor_to | number | No | 100 | Poor upper threshold | reference |
poor_color | string | No | #fa504f | Poor display color | reference |
very_poor_from | number | No | 100 | Very-poor lower threshold | reference |
very_poor_to | number | No | 1200 | Very-poor upper threshold | reference |
very_poor_color | string | No | #960432 | Very-poor display color | reference |
Hourly measurement
data1hour_set[*].
| Field / path | Type | Null? | Example | Meaning | Freshness |
|---|---|---|---|---|---|
value | number | No | 30.6958333333333 | Hourly concentration in parent substance unit | live |
date_time | local datetime string | No | 2026-07-22T13:00:00 | Measurement/aggregation hourOffset absent | live |
Representative evidence
Sample records
TSRT PM10 hourly reading
Retrieved 2026-07-22T13:37:00+04:00
{"id":6,"municipality_id":51,"code":"TSRT","lat":41.7419,"long":44.77931,"elev":412,"equipment_count":13,"stationequipment_set":[{"substance":{"name":"PM10","unit_en":"μg/m<sup>3</sup>"},"data1hour_set":[{"value":30.6958333333333,"date_time":"2026-07-22T13:00:00"}]}]}Boundaries
Reliability, caveats, and privacy
What held up
- Source measurement time is supplied per value
- Five station objects returned for Tbilisi
- Coordinates and stable-looking station codes support joins
- Last-known values can be cached with original timestamps
What can go wrong
- Automatic observations are provisional until verified
- Some English/localized fields are empty or remain Georgian
- A station or pollutant series can be empty/delayed
- Pollutant units differ; CO used mg/m³ in the sample
Cross-source possibilities
Ideas using this source
Source trail
Primary pages and documentation
- PrimaryOfficial air portal ↗
https://air.gov.ge/en/ - PrimaryMonitoring network page ↗
https://www.air.gov.ge/en/pages/14/14 - PrimaryHourly JSON request ↗
https://air.gov.ge/api/get_data_1hour/?from_date_time=2026-07-22T11:00:00&to_date_time=2026-07-22T13:00:00&station_code=all&municipality_id=51&substance=all&last_data=true&chart=false&format=json