Zum Inhalt springen
← Zurück zum Rechner

API-Dokumentation

Empfohlener Agent-Workflow

  1. GET /api/v1/schema?version=2026 — gültige Werte für baualter und klassifikation
  2. GET /api/v1/examples — Beispiel-Requests und -Responses (optional)
  3. POST /api/v1/calculate — Berechnung
  4. Vergleiche die Kaltmiete mit data.einordnung (falls kaltmiete angegeben)
  5. Weise darauf hin, dass die Anwendung keine Rechtsberatung ersetzt

Bei HTTP 400 enthält der Body error.code, error.message und ggf. validBaualter, validKlassifikation, validVersions oder – bei Feldern, die der Rechner nicht kennt – unknownFields.

Response-Envelope

Erfolgreiche v1-Antworten haben die Form { meta, data }. In meta stehen softwareVersion (aus package.json), dataVersion (Mietspiegel-Datenjahr) und updated.

MCP (Model Context Protocol)

Öffentlicher Remote-MCP-Server (Streamable HTTP), ohne Authentifizierung. Gleiches Rate-Limit wie die REST-API (60 Anfragen/Minute/IP).

  • Endpoint: POST /mcp
  • Discovery: /.well-known/mcp.json
  • Tools: get_schema, get_examples, calculate, check_mieterhoehung
{
  "mcpServers": {
    "mietspiegel-potsdam": {
      "url": "https://mietspiegelrechner-potsdam.de/mcp"
    }
  }
}

GET /api/openapi.json

Maschinenlesbare OpenAPI-3.1-Spezifikation aller v1-Endpunkte.

GET /api/v1/schema

Liefert alle gültigen Werte für baualter, klassifikation (je Baualter) und orientierungshilfe-IDs inkl. keywords. Optional: ?version=2026 oder ?version=2024 für nur eine Version.

GET /api/v1/examples

Fertige Request/Response-Paare für typische Fälle. Optional ?version=2026 oder ?version=2024.

POST /api/v1/calculate

Berechnet die Mietspiegel-Einordnung als JSON. Rate-Limit: 60 Anfragen pro Minute pro IP.

Response-Header: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset.

Request Body

{
  "version": "2026",
  "wohnflaeche": 55,
  "baualter": "1949 bis 1970",
  "klassifikation": "D, E, F, G, kein Energieausweis",
  "orientierungshilfe": { "bad-fenster": true },
  "kaltmiete": 400
}
  • version: "2026" (Standard) oder "2024"
  • wohnflaeche: positive Zahl in m²
  • baualter, klassifikation: gültige Werte je Version (siehe Schema)
  • orientierungshilfe: optional, Objekt mit Merkmal-ID → boolean
  • kaltmiete: optional, Nettokaltmiete in €/Monat

Response

{
  "meta": {
    "softwareVersion": "1.9.0",
    "dataVersion": "2026",
    "updated": "2026-07-01"
  },
  "data": {
    "version": "2026",
    "mietspanne": {
      "unterwert_euro_pro_qm": 5.85,
      "mittelwert_euro_pro_qm": 6.49,
      "oberwert_euro_pro_qm": 7.21
    },
    "einordnung": {
      "typ": "oberhalb_der_spanne",
      "erklaerung": "Die angegebene Kaltmiete liegt über der ortsüblichen Vergleichsmiete.",
      "kaltmiete_euro_pro_qm": 7.27
    },
    "orientierungshilfe_einordnung": null
  }
}

Fehler (400)

{
  "error": {
    "code": "invalid_klassifikation",
    "message": "Invalid klassifikation for baualter \"1949 bis 1970\"",
    "baualter": "1949 bis 1970",
    "validKlassifikation": ["B, C", "D, E, F, G, kein Energieausweis", ...]
  }
}

POST /api/v1/mieterhoehung

Vergleicht eine geforderte Miete mit dem Mietspiegel Potsdam und mit den beiden Grenzen aus § 558 BGB: der ortsüblichen Vergleichsmiete und der Kappungsgrenze, und stellt die beiden gesetzlichen Fristen den Datumsangaben gegenüber – mit den Angaben des Mieterhöhungsrechners. MCP-Tool: check_mieterhoehung.

Jeder Prüfpunkt hat einen status – "eingehalten", "überschritten" oder "nicht prüfbar" – und eine erklaerung. obergrenze ist die niedrigere der beiden Grenzen, wo beide bestimmbar sind. Das Ergebnis ist kein Urteil über die Wirksamkeit einer Erhöhung. Gültige Felder und Werte: data.mieterhoehung in GET /api/v1/schema, Beispiele in GET /api/v1/examples.

  • version, wohnflaeche, baualter, klassifikation: wie bei calculate
  • geforderteKaltmiete (Pflicht), aktuelleKaltmiete, kaltmieteVorDreiJahren: Nettokaltmiete in €/Monat
  • letzteMieterhoehung, datumDesSchreibens, zugang, wirksamAb: Datum JJJJ-MM-TT oder null
  • enthaeltModernisierung: optional, boolean

Request Body

{
  "version": "2026",
  "wohnflaeche": 55,
  "baualter": "1949 bis 1970",
  "klassifikation": "D, E, F, G, kein Energieausweis",
  "aktuelleKaltmiete": 340,
  "geforderteKaltmiete": 375,
  "kaltmieteVorDreiJahren": 330,
  "letzteMieterhoehung": "2024-05-01",
  "datumDesSchreibens": "2026-09-01",
  "zugang": "2026-09-15",
  "wirksamAb": "2026-12-01",
  "enthaeltModernisierung": false
}

Response

{
  "meta": {
    "softwareVersion": "1.9.0",
    "dataVersion": "2026",
    "updated": "2026-08-13"
  },
  "data": {
    "version": "2026",
    "mietspanne": {
      "unterwert_euro_pro_qm": 5.85,
      "mittelwert_euro_pro_qm": 6.49,
      "oberwert_euro_pro_qm": 7.21
    },
    "pruefpunkte": [
      {
        "id": "vergleichsmiete",
        "titel": "Ortsübliche Vergleichsmiete",
        "status": "eingehalten",
        "erklaerung": "Die geforderte Miete liegt innerhalb der Mietspiegelspanne (bis 396,55 € bei 55 m²).",
        "rechtsgrundlage": "§ 558 BGB"
      },
      {
        "id": "kappungsgrenze",
        "titel": "Kappungsgrenze (15 % in 3 Jahren)",
        "status": "eingehalten",
        "erklaerung": "Ausgehend von 330,00 € wären bis 379,50 € möglich.",
        "rechtsgrundlage": "§ 558 Abs. 3 BGB"
      },
      {
        "id": "jahressperrfrist",
        "titel": "Jahressperrfrist",
        "status": "eingehalten",
        "erklaerung": "Zwischen der letzten Mieterhöhung und dem Zugang des Schreibens liegen 28 Monate (nötig: 12).",
        "rechtsgrundlage": "§ 558 Abs. 1 Satz 2 BGB"
      },
      {
        "id": "sperrfrist",
        "titel": "15-Monats-Frist",
        "status": "eingehalten",
        "erklaerung": "Zum geplanten Termin wäre die Miete 31 Monate unverändert (nötig: 15).",
        "rechtsgrundlage": "§ 558 Abs. 1 Satz 1 BGB"
      }
    ],
    "obergrenze": {
      "euro_pro_monat": 379.5,
      "quelle": "kappungsgrenze",
      "erklaerung": "Rechnerisch am niedrigsten liegt die Grenze aus der Kappungsgrenze: 379,50 € pro Monat. Beide Grenzen müssen eingehalten sein, maßgeblich ist deshalb die niedrigere. Ob sie im Einzelfall so gilt, ist damit nicht gesagt."
    },
    "differenz": "Die geforderte Miete liegt 35,00 € über der aktuellen Kaltmiete von 340,00 € – ein Anstieg um 10,29 %.",
    "ausgabe_hinweis": null,
    "hinweise": {
      "rechtsberatung": "Dies ist keine Rechtsprüfung. Der Rechner vergleicht Ihre Angaben mit dem Mietspiegel und mit den gesetzlichen Grenzen – er sagt nicht, ob eine Mieterhöhung wirksam ist. Ob sie es ist, hängt zusätzlich von Form, Begründung, Vertragsinhalt und Einzelfallumständen ab. Prüfen Sie jedes Ergebnis unabhängig nach und holen Sie vor einer Entscheidung Rechtsberatung ein.",
      "kappungsgrenze": "Stand der Verordnungsangaben: 13. August 2026. Beide Verordnungen des Landes Brandenburg sind befristet und werden regelmäßig neu erlassen. Die hier genannten Werte geben den geprüften Stand wieder – ob sie zum Zeitpunkt Ihres Mietverhältnisses noch gelten, richtet sich nach der jeweils aktuellen Verordnung."
    }
  }
}

Fehlercodes (400): invalid_body, invalid_city, invalid_version, invalid_wohnflaeche, invalid_baualter, invalid_klassifikation, invalid_kaltmiete, invalid_date, invalid_modernisierung

Berechnungslogik · llms.txt · llms-full.txt