Skip to content
Eden Engine

French Commune by INSEE Code (API Geo)

geoapifr/commune-lookup

Returns one French commune by its INSEE code (five characters, for example 69123 for Lyon): name, SIREN, postal codes, population, surface in hectares, centre point, departement and region. An INSEE code that does not exist, or that belongs to a commune merged away, makes the service answer a plain-text 404 that surfaces as PROVIDER_ERROR; use communes-search to find a current code.

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 $0.50.

Data source

API Geo (api.gouv.fr, DINUM)

Data from API Geo, api.gouv.fr (DINUM, Etalab), published under the French Open Licence (Licence Ouverte). Served by Eden Engine; not an official api.gouv.fr 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: "geoapifr/commune-lookup" })

// 3. learn: read the usage guide at runtime
omnial_learn({ tool: "geoapifr/commune-lookup" })

// 4. run: price the exact call first, then run it
omnial_execute({ tool: "geoapifr/commune-lookup", input: { /* see input_schema */ }, dry_run: true })
omnial_execute({ tool: "geoapifr/commune-lookup", 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 25, 2026

Input and output schemas

Input schema
input_schema.json
{
  "type": "object",
  "required": [
    "insee"
  ],
  "properties": {
    "insee": {
      "type": "string",
      "pattern": "^([0-9]{5}|2[AB][0-9]{3})$",
      "description": "INSEE commune code: five digits, or 2A/2B followed by three digits for Corsica, for example 69123."
    }
  },
  "additionalProperties": false
}
Output schema
output_schema.json
{
  "type": "object",
  "required": [
    "nom",
    "code"
  ],
  "properties": {
    "nom": {
      "type": "string",
      "description": "Commune name."
    },
    "code": {
      "type": "string",
      "description": "INSEE commune code (5 characters; Corsica uses 2A or 2B as the first two)."
    },
    "siren": {
      "type": "string",
      "description": "SIREN of the commune."
    },
    "_score": {
      "type": "number",
      "description": "Relevance score of the name match; present only on name searches."
    },
    "centre": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "description": "Always Point."
        },
        "coordinates": {
          "type": "array",
          "items": {
            "type": "number",
            "description": "Longitude, then latitude (WGS84)."
          },
          "description": "[longitude, latitude]."
        }
      },
      "description": "Centre point of the commune as GeoJSON.",
      "additionalProperties": true
    },
    "region": {
      "type": "object",
      "properties": {
        "nom": {
          "type": "string",
          "description": "Region name."
        },
        "code": {
          "type": "string",
          "description": "Region code."
        }
      },
      "description": "The region of the commune.",
      "additionalProperties": true
    },
    "surface": {
      "type": "number",
      "description": "Surface in hectares."
    },
    "codeEpci": {
      "type": "string",
      "description": "Code of the inter-municipal body (EPCI) the commune belongs to."
    },
    "population": {
      "type": "number",
      "description": "Municipal population."
    },
    "departement": {
      "type": "object",
      "properties": {
        "nom": {
          "type": "string",
          "description": "Departement name."
        },
        "code": {
          "type": "string",
          "description": "Departement code."
        }
      },
      "description": "The departement of the commune.",
      "additionalProperties": true
    },
    "codesPostaux": {
      "type": "array",
      "items": {
        "type": "string",
        "description": "A postal code."
      },
      "description": "Postal codes served by the commune."
    }
  },
  "description": "One commune.",
  "additionalProperties": true
}