Skip to content
Eden Engine

French Drinking Water Distribution Networks by Commune (Hub'Eau)

hubeau/drinking-water-networks

Lists the drinking-water distribution units (UDI networks) that supply a French commune, found by its INSEE code: network code and name, the part of the commune it serves, the date supply began and the year. A large commune has many networks. This names the networks only; it does not return water analysis results. An unknown code returns an empty list. Data from Hub'Eau (sanitary control produced by the Ministry of Solidarities and Health), Licence Ouverte Etalab; served by Eden Engine; not an official Hub'Eau 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

Hub'Eau

Source: Hub'Eau (hubeau.eaufrance.fr), producers OFB / BRGM / SCHAPI-Vigicrues, Licence Ouverte Etalab. Served by Eden Engine; not an official Hub'Eau 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: "hubeau/drinking-water-networks" })

// 3. learn: read the usage guide at runtime
omnial_learn({ tool: "hubeau/drinking-water-networks" })

// 4. run: price the exact call first, then run it
omnial_execute({ tool: "hubeau/drinking-water-networks", input: { /* see input_schema */ }, dry_run: true })
omnial_execute({ tool: "hubeau/drinking-water-networks", 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": [
    "code_commune"
  ],
  "properties": {
    "size": {
      "type": "integer",
      "default": 20,
      "maximum": 100,
      "minimum": 1,
      "description": "How many networks to return, 1 to 100. Defaults to 20. The response `count` gives the total that match, which can exceed this."
    },
    "code_commune": {
      "type": "string",
      "pattern": "^[0-9A-Za-z,-]{5,200}$",
      "description": "An INSEE commune code (5 characters, for example 75056 for Paris, 2A004 for a Corsican commune), or several separated by commas with no spaces. A code matching no commune returns an empty list."
    }
  },
  "additionalProperties": false
}
Output schema
output_schema.json
{
  "type": "object",
  "required": [
    "count",
    "data"
  ],
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "annee": {
            "type": [
              "string",
              "null"
            ],
            "description": "Reference year, as a string."
          },
          "debut_alim": {
            "type": [
              "string",
              "null"
            ],
            "description": "Date this network began supplying."
          },
          "nom_reseau": {
            "type": [
              "string",
              "null"
            ],
            "description": "Network (UDI) name."
          },
          "code_reseau": {
            "type": [
              "string",
              "null"
            ],
            "description": "Network (UDI) code."
          },
          "nom_commune": {
            "type": [
              "string",
              "null"
            ]
          },
          "code_commune": {
            "type": "string",
            "description": "INSEE commune code."
          },
          "nom_quartier": {
            "type": [
              "string",
              "null"
            ],
            "description": "The part of the commune this network serves; - means all of it."
          }
        },
        "additionalProperties": true
      }
    },
    "last": {
      "type": [
        "string",
        "null"
      ]
    },
    "next": {
      "type": [
        "string",
        "null"
      ]
    },
    "prev": {
      "type": [
        "string",
        "null"
      ]
    },
    "count": {
      "type": "integer",
      "description": "Total networks matching the code."
    },
    "first": {
      "type": [
        "string",
        "null"
      ]
    },
    "api_version": {
      "type": "string"
    }
  },
  "description": "The Hub'Eau response envelope: `count` is the total number of matching networks, `data` is the page returned. `first`, `last` and `next` are the service's own links; this tool does not follow them.",
  "additionalProperties": true
}