API Documentation

Everything you need to integrate municipal data into your application.

Introduction

The Infomance API provides programmatic access to European municipal data. With a single integration, you can access demographic, economic, and infrastructure indicators for over 98,000 municipalities across 34 EU countries.

Base URL: https://api.infomance.io

Key features:

  • RESTful API with JSON responses
  • TypeScript and Python SDKs
  • 40+ indicators per municipality
  • Quality scores in every response

Quickstart

Get your first response in under 2 minutes.

Step 1 — Create your account

Sign up for free — no credit card required. You get 5,000 free requests/month to explore the API.

Step 2 — Get your API key

After signing up, go to your dashboard and create an API key. It starts with inf_.

Step 3 — Make your first call

No need to authenticate — try this public endpoint first:

Public endpoint
# List all 34 EU countries (no API key required)
curl https://api.infomance.io/api/v1/eu/countries

Then use your API key for detailed data:

Authenticated endpoints
# Get Berlin municipality data
curl https://api.infomance.io/api/v1/eu/lau/DE_11000000 \
  -H "X-API-Key: YOUR_API_KEY"

# List Portuguese municipalities
curl "https://api.infomance.io/api/v1/eu/lau?country=PT&limit=10" \
  -H "X-API-Key: YOUR_API_KEY"

Step 4 — Use the SDK

import { InfomanceClient } from 'infomance'

const client = new InfomanceClient({ apiKey: 'YOUR_API_KEY' })
const berlin = await client.getEULAUById('DE_11000000')
console.log(berlin.name, berlin.population) // Berlin, 3644826

That's it. You're ready to build.

Authentication

All API requests require an API key. Pass it via the X-API-Key header (recommended) or as a Bearer token in the Authorization header.

Headers
# Recommended: X-API-Key header
X-API-Key: YOUR_API_KEY

# Alternative: Bearer token
Authorization: Bearer YOUR_API_KEY

Get your API key by creating an account at infomance.io. Keep your API key secure and never expose it in client-side code.

Endpoints

The API provides the following endpoints for accessing municipal data.

Brazil

GET/api/v1/geo/municipalities

List all Brazilian municipalities. Supports pagination and filtering by state.

GET/api/v1/geo/municipalities/{ibge_code}

Get detailed information for a specific municipality by its IBGE code.

GET/api/v1/cities/{ibge_code}/profile

Get full profile with indicators for a specific municipality.

GET/api/v1/geo/states

List all Brazilian states.

Europe

GET/api/v1/eu/countries

List all 34 EU countries with metadata and coverage stats.

GET/api/v1/eu/lau

List all LAU municipalities. Supports pagination and filtering by country.

GET/api/v1/eu/lau/{lau_id}

Get detailed information for a specific LAU municipality.

Cadastral Parcels (Beta)

Individual land parcels for NL, ES, PT and DE municipalities. Coverage expanding.

GET/api/v1/eu/parcels/{parcel_id}Beta

Get a single cadastral parcel by its canonical ID.

GET/api/v1/eu/parcels/lau/{lau_code}Beta

List parcels for a specific LAU municipality. Filter by land_use.

Country coverage (beta)

CountrySourceStatus
NLKadaster BAG (PDOK)Amsterdam + expanding
ESCatastro INSPIREMadrid + expanding
PTDGT OGC APILisboa + expanding
DEALKIS NRW WFSNRW region + expanding

Code Examples

Here are examples of how to make requests to the API using different languages and tools.

curl -X GET "https://api.infomance.io/api/v1/eu/lau/DE_11000000" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json"

Response Format

All responses are returned in JSON format. Here's an example response from the municipality endpoint.

Response
{
  "lau_code": "DE_11000000",
  "name": "Berlin",
  "country_code": "DE",
  "population": 3644826,
  "area_km2": 891.85,
  "indicators": {
    "demographics": {
      "population_density": 4050,
      "median_age": 42.1
    },
    "economy": {
      "gdp_per_capita": 48500.0,
      "employment_rate": 62.4
    }
  },
  "quality": {
    "completeness": 0.94,
    "last_updated": "2026-03-15",
    "source": "Eurostat"
  }
}

Rate Limits

API requests are rate limited based on your plan. When you exceed the limit, you'll receive a 429 response.

PlanRequestsRate Limit
Free5,000/month10 req/min
Starter10,000/month60 req/min
Professional100,000/month300 req/min
EnterpriseUnlimitedCustom

The Free plan includes 5,000 requests/month with no credit card required. Sign up →

Errors

The API uses standard HTTP status codes to indicate success or failure of requests.

401Unauthorized

Invalid or missing API key. Ensure your Authorization header is correctly formatted.

404Not Found

The requested resource was not found. Check the municipality code or endpoint URL.

429Rate Limited

You've exceeded your rate limit. Wait before making more requests or upgrade your plan.

500Internal Server Error

An unexpected error occurred on our servers. Please try again later.

Error Response Format

Error Response
{
  "error": {
    "code": "RATE_LIMITED",
    "message": "Rate limit exceeded. Please wait before retrying.",
    "retry_after": 60
  }
}