Skip to content
Eden Engine

Luchtmeetnet Hourly Pollutant Measurements by Station (Netherlands)

luchtmeetnet/measurements

Returns the hourly readings of one pollutant (formula such as NO2, NO, NOx, O3 or PM10) at one Luchtmeetnet station in the Netherlands inside a required time window of at most 7 days, newest first. Each reading has its value, the time it was measured and the one-hour period it covers. A station number that does not exist, or a component the station does not measure, returns an empty data list. Luchtmeetnet (RIVM) data, served by Eden Engine; not an official RIVM product.

activeper callv1

Price

$0.0026 per call

You pay the price shown. If a call turns out to cost more than its quote, you pay the actual price, capped at twice the quote. No monthly minimum. Top-ups start at $5.

Data source

Luchtmeetnet (RIVM)

Data from Luchtmeetnet, the Dutch national air quality network operated by the RIVM (Rijksinstituut voor Volksgezondheid en Milieu), Ministry of Health, Welfare and Sport. Credit: Luchtmeetnet / RIVM. Served by Eden Engine; not an official RIVM product.

Use it

Five steps: search, inspect, learn, run, settle. No per-tool setup; your agent reaches this tool through the meta-tools it already has.

Connect once and your AI can find and run this tool, and any other it needs.

agent
// 1. search: find the tool
omnial_search({ query: "what you need" })

// 2. inspect: price and input schema
omnial_inspect({ tool: "luchtmeetnet/measurements" })

// 3. learn: read the usage guide at runtime
omnial_learn({ tool: "luchtmeetnet/measurements" })

// 4. run: price the exact call first, then run it
omnial_execute({ tool: "luchtmeetnet/measurements", input: { /* see input_schema */ }, dry_run: true })
omnial_execute({ tool: "luchtmeetnet/measurements", input: { /* ... */ } })

// 5. settle: the call is charged when it finishes, nothing to do

Not connected yet? Point your MCP client at https://mcp.eden-engine.com/mcp, then copy a config for your client.

Pricing

Every charge this tool can incur.

ChargePrice
Per call
$0.0026
Updated
Oct 20, 2026

Input and output schemas

Input schema
input_schema.json
{
  "type": "object",
  "required": [
    "station_number",
    "formula",
    "start",
    "end"
  ],
  "properties": {
    "end": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}Z$",
      "description": "End of the time window, a UTC instant such as 2026-10-20T00:00:00Z, at most 7 days after start. An end before start returns an empty data list."
    },
    "page": {
      "type": "integer",
      "minimum": 1,
      "description": "Page number, starting at 1. The response's `pagination.last_page` says how many pages exist."
    },
    "start": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}Z$",
      "description": "Start of the time window, a UTC instant such as 2026-10-19T00:00:00Z. The window from start to end may span at most 7 days: a longer one makes the API redirect and the call fails as VALIDATION."
    },
    "formula": {
      "type": "string",
      "minLength": 1,
      "description": "Component to read, for example NO2, NO, NOx, O3 or PM10 (the formulas seen in the API's responses). A component the station does not measure returns an empty `data` list."
    },
    "station_number": {
      "type": "string",
      "minLength": 1,
      "description": "Luchtmeetnet station number, for example NL10636 (Utrecht-Kardinaal de Jongweg). Station numbers come from the stations tool. An unknown number returns an empty `data` list."
    }
  },
  "additionalProperties": false
}
Output schema
output_schema.json
{
  "type": "object",
  "required": [
    "pagination",
    "data"
  ],
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "value": {
            "type": "number",
            "description": "The reading, as the API reports it."
          },
          "formula": {
            "type": "string",
            "description": "The component measured."
          },
          "station_number": {
            "type": "string"
          },
          "timestamp_measured": {
            "type": "string",
            "description": "End of the measured hour, UTC."
          },
          "timestamp_measured_end": {
            "type": "string"
          },
          "timestamp_measured_start": {
            "type": "string"
          }
        },
        "additionalProperties": true
      },
      "description": "The readings, newest first."
    },
    "pagination": {
      "type": "object",
      "description": "Page position: `current_page`, `last_page`, `next_page` and `page_list`. A `last_page` of 0 with an empty `data` list means nothing matched.",
      "additionalProperties": true
    }
  },
  "description": "One page of hourly readings in the API's envelope.",
  "additionalProperties": true
}