Nildema · API & SDK · Deutschland

The Mietspiegel,machine-readable.

Rent indexes and ESG location intelligence for every German municipality. One §558-canonical schema, versioned editions, delivered as an API your stack can build on.

Registry
10,961 municipalities
Legal axis
§558 BGB, canonical
Editions
Versioned, citable
ESG layer
Joined by AGS key

Two data layers, one spine

Rent law and location risk, on the same key.

Mietspiegel layer

Qualified and simple rent indexes, parsed from the official documents into one comparable schema: spans, adjustments, Wohnlagen, building vintages. Queried by address, answered with the ortsübliche Vergleichsmiete and the edition it came from.

  • POST /v1/valuateaddress in, rent span out
  • GET /v1/comparemunicipalities on the §558 axis
  • GET /schemaself-describing, versioned

ESG · location layer

Location intelligence joined to the same municipal spine: energy, socio-economics, accessibility, environmental risk. Scored per Gemeinde, keyed by AGS, so a valuation and its ESG context arrive in one response.

  • GET /v1/locations/:agspillar scores per municipality
  • GET /v1/locations/:ags/contextindicators behind the score

Specimen · /v1/valuate

An address in. A defensible rent span out.

Every response cites its edition and legal basis, so the number you show a customer is the number you can defend to a regulator.

Request
curl -s https://api.nildema.de/v1/valuate \
  -H "Authorization: Bearer $NILDEMA_KEY" \
  -d '{
    "address":     "Doberaner Str. 115, 18057 Rostock",
    "wohnflaeche": 72,
    "baujahr":     1962
  }'
Response · 200
{
  "vergleichsmiete": {
    "min": 6.10, "mid": 7.35, "max": 8.61,
    "unit": "EUR/m2/Monat"
  },
  "basis":   "§558 BGB",
  "edition": "MSP_2026",
  "typ":     "qualifiziert",
  "gemeinde": { "ags": "13003000", "name": "Rostock" }
}

SDKs: TypeScript · Python · Go  /  median latency < 60 ms  /  OpenAPI spec at /schema

Auszug aus dem Register

Every Gemeinde is in the registry.

10,961 municipalities, from Aachen to Zwickau, each resolved to its official municipality key — with Mietspiegel status, edition history and ESG spine. Where no index exists, the API says so, explicitly, instead of guessing.

Extract of the municipal registry
AGSGemeindeEditionTypStatus
11000000BerlinMSP_2026qualifiziertlive
02000000HamburgMSP_2025qualifiziertlive
09162000MünchenMSP_2025qualifiziertlive
05315000KölnMSP_2026qualifiziertlive
14713000LeipzigMSP_2026qualifiziertlive
13003000RostockMSP_2026qualifiziertlive
08111000StuttgartMSP_2025qualifiziertlive
… and 10,954 more rows in GET /v1/registry

Monitoring · Pipeline

From municipal PDF to monitored record.

Roughly one in eight German municipalities publishes a rent index, each on its own site, in its own format, on its own schedule. Documents are replaced in place, and a Mietspiegel is valid for two years — without monitoring, a rent database quietly fills with dead law.

  1. 01Crawl

    Every known source, visited on schedule.

    Automated crawlers walk the full registry of Mietspiegel locations: municipal sites, district portals, archives. No source is checked by hand.

  2. 02Hash

    Every file fingerprinted. Every change caught.

    Each document gets a cryptographic hash. When a municipality swaps a PDF in place, the mismatch surfaces it immediately.

  3. 03Version

    Changes become lineage, not overwrites.

    A detected change opens a new version with full history: what changed, when it appeared, and which edition it replaced.

  4. 04Review

    Ambiguity goes to humans, ranked by impact.

    Structural or legal ambiguities are routed to a prioritized review queue. Machines handle volume; people handle judgment.

Method · Fußnoten

Built like the documents it reads.

  1. Legal axis first

    Every rent figure is normalized to the comparable-rent axis of §558 BGB. Qualified and simple Mietspiegel, tables and formulas, all answer the same question the same way.

  2. Official geometry

    Municipal boundaries follow the federal VG250 register, keyed by AGS. No fuzzy geocoding: an address resolves to exactly one Gemeinde, or the API tells you why not.

  3. Editions, not overwrites

    Mietspiegel change. Nildema versions every edition and never silently replaces one. Responses cite edition and legal basis, so historical valuations stay reproducible.

  4. 2022 reform

    Since the 2022 Mietspiegel reform, every municipality above 50,000 residents must maintain a rent index, and qualified indexes must follow recognized scientific principles. The map is filling in — Nildema keeps it navigable.

Put the Mietspiegel in your product.

Evaluation key with 500 calls. Full registry, full schema, no card.