Developers

API reference

Current readings

The latest reading of every sensor in one request, updated every minute

Current readings of every sensor

GEThttps://api.atmy.ai/v1/sensors/current

60 requests a minute from one IP address, no key. Each answer carries X-RateLimit-Remaining. /v1/sensors/current is rebuilt once a minute: asking more often returns the same data.

Query parameters

network string optional

sensor_community, airgradient or atmy

quality string optional

All or passed

Default: all

min_rating number optional

Only sensors rated at least this, from 0 to 10

bbox string optional

min_lon,min_lat,max_lon,max_lat

GET/sensors/current?quality=passed&min_rating=8
curl "https://api.atmy.ai/v1/sensors/current?quality=passed&min_rating=8"
200Response
{
  "api_version": "2.0",
  "generated_at": "2026-10-27T11:11:32+00:00",
  "count": 1644,
  "sensors": [
    {
      "id": 40656,
      "network_id": "airgradient",
      "lat": 19.094645,
      "lon": 101.529558,
      "city": null,
      "time": "2026-10-27T11:03:32+00:00",
      "pm1": 2.8,
      "pm25": 6.4,
      "pm10": 7.3,
      "temperature_c": 31,
      "humidity_percent": 48,
      "tvoc": 110.1,
      "quality": {
        "status": "good",
        "pm_eligible": true,
        "rating": 10
      }
    },
    {
      "id": 40657,
      "network_id": "airgradient",
      "lat": -34.0467846944686,
      "lon": 151.1229561199615,
      "city": "australia/sydney",
      "time": "2026-10-27T11:02:53+00:00",
      "pm25": 1,
      "temperature_c": 22.6,
      "humidity_percent": 63,
      "tvoc": 293.3,
      "quality": {
        "status": "good",
        "pm_eligible": true,
        "rating": 10
      }
    }
  ],
  "attribution": "Sensor data: Atmy (atmy.ai), from the networks named in each sensor's \"network\", under that network's license.",
  "terms": "https://atmy.ai/legal/data/"
}

Current readings of one network

GEThttps://api.atmy.ai/v1/networks/{network}/sensors/current

The same answer for one network only.

Path parameters

network string required

sensor_community, airgradient or atmy.

Query parameters

quality string optional

All or passed

Default: all

min_rating number optional

Only sensors rated at least this, from 0 to 10

bbox string optional

min_lon,min_lat,max_lon,max_lat

GET/networks/airgradient/sensors/current?quality=passed
curl "https://api.atmy.ai/v1/networks/airgradient/sensors/current?quality=passed"
200Response
{
  "api_version": "2.0",
  "generated_at": "2026-10-27T11:11:32+00:00",
  "count": 1644,
  "sensors": [
    {
      "id": 40656,
      "network_id": "airgradient",
      "lat": 19.094645,
      "lon": 101.529558,
      "city": null,
      "time": "2026-10-27T11:03:32+00:00",
      "pm1": 2.8,
      "pm25": 6.4,
      "pm10": 7.3,
      "temperature_c": 31,
      "humidity_percent": 48,
      "tvoc": 110.1,
      "quality": {
        "status": "good",
        "pm_eligible": true,
        "rating": 10
      }
    },
    {
      "id": 40657,
      "network_id": "airgradient",
      "lat": -34.0467846944686,
      "lon": 151.1229561199615,
      "city": "australia/sydney",
      "time": "2026-10-27T11:02:53+00:00",
      "pm25": 1,
      "temperature_c": 22.6,
      "humidity_percent": 63,
      "tvoc": 293.3,
      "quality": {
        "status": "good",
        "pm_eligible": true,
        "rating": 10
      }
    }
  ],
  "attribution": "Sensor data: Atmy (atmy.ai), from the networks named in each sensor's \"network\", under that network's license.",
  "terms": "https://atmy.ai/legal/data/"
}