Navigation
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:
# List all 34 EU countries (no API key required)
curl https://api.infomance.io/api/v1/eu/countriesThen use your API key for detailed data:
# 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, 3644826That'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.
# Recommended: X-API-Key header
X-API-Key: YOUR_API_KEY
# Alternative: Bearer token
Authorization: Bearer YOUR_API_KEYGet 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
/api/v1/geo/municipalitiesList all Brazilian municipalities. Supports pagination and filtering by state.
/api/v1/geo/municipalities/{ibge_code}Get detailed information for a specific municipality by its IBGE code.
/api/v1/cities/{ibge_code}/profileGet full profile with indicators for a specific municipality.
/api/v1/geo/statesList all Brazilian states.
Europe
/api/v1/eu/countriesList all 34 EU countries with metadata and coverage stats.
/api/v1/eu/lauList all LAU municipalities. Supports pagination and filtering by country.
/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.
/api/v1/eu/parcels/{parcel_id}BetaGet a single cadastral parcel by its canonical ID.
/api/v1/eu/parcels/lau/{lau_code}BetaList parcels for a specific LAU municipality. Filter by land_use.
Country coverage (beta)
| Country | Source | Status |
|---|---|---|
| NL | Kadaster BAG (PDOK) | Amsterdam + expanding |
| ES | Catastro INSPIRE | Madrid + expanding |
| PT | DGT OGC API | Lisboa + expanding |
| DE | ALKIS NRW WFS | NRW 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.
{
"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.
| Plan | Requests | Rate Limit |
|---|---|---|
| Free | 5,000/month | 10 req/min |
| Starter | 10,000/month | 60 req/min |
| Professional | 100,000/month | 300 req/min |
| Enterprise | Unlimited | Custom |
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.
Invalid or missing API key. Ensure your Authorization header is correctly formatted.
The requested resource was not found. Check the municipality code or endpoint URL.
You've exceeded your rate limit. Wait before making more requests or upgrade your plan.
An unexpected error occurred on our servers. Please try again later.
Error Response Format
{
"error": {
"code": "RATE_LIMITED",
"message": "Rate limit exceeded. Please wait before retrying.",
"retry_after": 60
}
}