Api Endpoint

opendata402

Latest hourly air quality measurements (NO2, PM10, PM2.5, ozone) from about 3,000 official monitoring stations in Europe (European Environment Agency, up-to-date unvalidated data, refreshed hourly): nearest stations to a location, or all stations of a country, with station type (traffic, background, industrial), area, value, unit and measurement hour. Use it for health, travel and environment questions. EEA, CC BY 4.0.

Open interactive test console

Offering

Provider
opendata402.com
Method
GET
Offering type
Api Endpoint
Transport type
http
Category
Weather And Environment
Delivery
Not provided
Pricing model
Not provided
x402 version
2

Endpoint context

URL
https://opendata402.com/v1/air/eu
MIME type
application/json
First seen
2026-10-16T01:50:24.663Z
Last seen
Tags
air-quality, pollution, europe, eea, environment

Payment pricing

x402 payment terms are the authoritative price for calling this endpoint.

Payment option 1
0.001 USDC
Atomic price: 1000 · Network: eip155:8453 · Asset: USDC · Scheme: exact
Payment option 2
0.001 USDC
Atomic price: 1000 · Network: eip155:137 · Asset: USDC · Scheme: exact
Payment option 3
0.001 USDC
Atomic price: 1000 · Network: eip155:42161 · Asset: USDC · Scheme: exact
Raw x402 terms
[
  {
    "scheme": "exact",
    "network": "eip155:8453",
    "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
    "amount": "1000",
    "payTo": "0x295AA6c5a3460A0f8755823C8eE7bBC7CAf79fb1"
  },
  {
    "scheme": "exact",
    "network": "eip155:137",
    "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
    "amount": "1000",
    "payTo": "0x295AA6c5a3460A0f8755823C8eE7bBC7CAf79fb1"
  },
  {
    "scheme": "exact",
    "network": "eip155:42161",
    "asset": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831",
    "amount": "1000",
    "payTo": "0x295AA6c5a3460A0f8755823C8eE7bBC7CAf79fb1"
  }
]

Observed health

Status
Healthy
Latest latency
155 ms
Average latency
774 ms
HTTP status
402
Last checked
Reachability
100% over 14 checks

Latency is measured to the first response headers. A reachable result does not verify response accuracy or merchant identity.

Input schema

{
  "type": "object",
  "properties": {
    "type": {
      "type": "string",
      "const": "http"
    },
    "method": {
      "type": "string",
      "enum": [
        "GET"
      ]
    },
    "queryParams": {
      "type": "object",
      "properties": {
        "lat": {
          "type": "string",
          "pattern": "^-?[0-9]{1,2}(\\.[0-9]{1,6})?$",
          "description": "Latitude."
        },
        "lon": {
          "type": "string",
          "pattern": "^-?[0-9]{1,3}(\\.[0-9]{1,6})?$",
          "description": "Longitude."
        },
        "radius_km": {
          "type": "string",
          "pattern": "^([1-9]|[1-9][0-9]|1[0-9][0-9]|200)$",
          "description": "Search radius in km (default 25, max 200)."
        },
        "country": {
          "type": "string",
          "pattern": "^[A-Z]{2}$",
          "description": "ISO country code instead of a location."
        },
        "pollutant": {
          "type": "string",
          "enum": [
            "no2",
            "pm10",
            "pm25",
            "o3"
          ],
          "description": "Only stations measuring this pollutant."
        },
        "limit": {
          "type": "string",
          "pattern": "^([1-9]|1[0-9]|20)$",
          "description": "Max stations (default 10, max 20)."
        }
      }
    }
  },
  "required": [
    "type",
    "method"
  ],
  "additionalProperties": false
}

Output schema

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "input": {
      "additionalProperties": false,
      "properties": {
        "method": {
          "enum": [
            "GET"
          ],
          "type": "string"
        },
        "queryParams": {
          "properties": {
            "country": {
              "description": "ISO country code instead of a location.",
              "pattern": "^[A-Z]{2}$",
              "type": "string"
            },
            "lat": {
              "description": "Latitude.",
              "pattern": "^-?[0-9]{1,2}(\\.[0-9]{1,6})?$",
              "type": "string"
            },
            "limit": {
              "description": "Max stations (default 10, max 20).",
              "pattern": "^([1-9]|1[0-9]|20)$",
              "type": "string"
            },
            "lon": {
              "description": "Longitude.",
              "pattern": "^-?[0-9]{1,3}(\\.[0-9]{1,6})?$",
              "type": "string"
            },
            "pollutant": {
              "description": "Only stations measuring this pollutant.",
              "enum": [
                "no2",
                "pm10",
                "pm25",
                "o3"
              ],
              "type": "string"
            },
            "radius_km": {
              "description": "Search radius in km (default 25, max 200).",
              "pattern": "^([1-9]|[1-9][0-9]|1[0-9][0-9]|200)$",
              "type": "string"
            }
          },
          "type": "object"
        },
        "type": {
          "const": "http",
          "type": "string"
        }
      },
      "required": [
        "type",
        "method"
      ],
      "type": "object"
    },
    "output": {
      "properties": {
        "example": {
          "type": "object"
        },
        "type": {
          "type": "string"
        }
      },
      "required": [
        "type"
      ],
      "type": "object"
    }
  },
  "required": [
    "input"
  ],
  "type": "object"
}