4 WOCHEN PRO — OHNE ZAHLUNGSDATEN MONATLICH KÜNDBAR KEINE BEWERTUNG VERFÄLLT

◆ DealPilot Platform

DealPilot API

Greife programmatisch auf deinen Objektbestand zu — anlegen, lesen, ändern, löschen. Vollständige REST-Schnittstelle über HTTPS, JSON rein und raus. Enthalten im Pro- und im Partner-Plan.

REST · JSONHeader X-API-KeyBasis /api/v1Voller CRUD120 Anfragen/min

01 Was du damit machst

Voller Lese- und Schreibzugriff auf deinen eigenen Objektbestand. Ein Key sieht ausschließlich die Objekte des eigenen Kontos.

Objekte automatisiert anlegen

Investments aus Tabelle, CRM oder Akquise-Tool direkt nach DealPilot.

Bestand synchronisieren

Mieten, Konditionen, Sanierungskosten per PUT spiegeln.

Eigene Dashboards

Objektdaten abrufen und ins eigene Reporting/BI speisen.

Massen-Import

Ganzen Bestand übernehmen — Schleife, je ein POST.

02 Schnellstart

Basis-URL:

https://app.dealpilot.immo/api/v1

Key unter Einstellungen → Account & Sicherheit → DealPilot API (einmalig gezeigt, dpk_live_…).

# Objekte auflisten (Summaries, ?limit bis 500, ?offset)
curl -H "X-API-Key: dpk_live_KEY" …/api/v1/objects?limit=100&offset=0
# Objekt anlegen
curl -X POST -H "X-API-Key: dpk_live_KEY" -H "Content-Type: application/json" \
  -d '{"data":{"plz":"32609","ort":"Hüllhorst","str":"Musterweg 4","wfl":96,"nkm":820,"ek":40000}}' \
  …/api/v1/objects
# Objekt ändern (nur data-Felder senden, die sich ändern sollen ist NICHT möglich — data wird komplett ersetzt)
curl -X PUT -H "X-API-Key: dpk_live_KEY" -H "Content-Type: application/json" \
  -d '{"data":{ …kompletter Datensatz… }}' …/api/v1/objects/OBJEKT-ID

03 Authentifizierung

PunktDetails
HeaderX-API-Key: dpk_live_…
VoraussetzungAktiver Pro-Plan
Rate-Limit120 / min je Key (sonst 429)
SpeicherungNur SHA-256-Hash
Keys je KontoBis zu 5 aktive Keys, jeweils mit Namen und optionalem Ablaufdatum
SichtbarkeitKlartext-Key wird genau einmal bei Erstellung angezeigt
WiderrufJederzeit in den Einstellungen — gilt sofort

04 Endpunkte

GET/objectsListe als Summaries: Adresse, zuletzt gespeicherter KPI-Stand, Vorschaubild. ?limit (max 500) & ?offset
GET/objects/:idVolles Objekt: komplettes data, Fotos, KI-Analyse, Version
POST/objectsAnlegen — zählt gegen das Objektlimit deines Plans
PUT/objects/:idÄndern — data wird komplett ersetzt; optional expectedVersion gegen konkurrierende Änderungen
DEL/objects/:idEndgültig löschen (kein Papierkorb)
GET/objects/portfolio-exportDas ganze Portfolio in einem Abruf — alle Objekte mit vollem data, für Auswertungen und Sicherungen

Rechenkerne — auf Zuruf rechnen

Hier wird gerechnet, nicht nur gelesen. Diese beiden Endpunkte führen dieselben Kerne aus wie die App selbst — wörtlich dieselben Dateien, in das Backend gespiegelt. Eine zweite Rechnung gibt es nicht, damit Schnittstelle und App nie unterschiedlich urteilen.
POST/rechenkerne/rndRestnutzungsdauer nach Anlage 2 ImmoWertV, sechs Verfahren. Eingabe { objekt: … } (ein DealPilot-Datensatz) oder { eingabe: … } (direkt). Optional { afa: { gebaeudeanteil, grenzsteuersatz, standardAfaSatz } } — dann kommt der Steuervorteil mit. Zurück kommen final_rnd, final_source, alle Einzelverfahren und eingabe_verwendet
POST/rechenkerne/verkehrswertWertermittlung nach ImmoWertV: Boden-, Ertrags- und Sachwert, mit wert_stufe 1–3. Rechnet im Marktbericht-Dienst, weil dort das Register der Gutachterausschüsse liegt
GET/rechenkerne/Beschreibt sich selbst: welche Kerne es gibt, wo sie rechnen, welche Eingabe sie erwarten
Zwei Dinge, die die Antwort mitliefert — und die wichtiger sind als die Zahl: eingabe_verwendet zeigt, womit wirklich gerechnet wurde (ein Feld, das nicht ankommt, wird sonst still durch einen Standardwert ersetzt), und pruefung.uebernahme_gesperrt sagt, wann das Ergebnis nicht ohne Sachverständigenprüfung übernommen werden darf. Wer nur final_rnd ausliest, übersieht beides.

Marktbericht

GET/marktbericht/objectsObjekte mit Marktbericht-Bezug
GET/marktbericht/reports/oneEinen erzeugten Bericht abrufen
GET/marktbericht/objects/historyVerlauf der Berichte zu einem Objekt

Antwort-Beispiel GET /objects/:id (gekürzt):

{
  "id": "9b2f…",
  "version": 7,
  "data": { "plz": "32609", "ort": "Hüllhorst", "wfl": 96, "nkm": 820, "ek": 40000, … },
  "photos": ["data:image/jpeg;base64,…"],
  "aiAnalysis": "…",
  "updated_at": "2026-07-01T09:12:33Z"
}

05 Datenmodell — Feldreferenz

Voll durchlässig: data akzeptiert beliebige Schlüssel und gibt sie 1:1 zurück. Die App liest die unten stehenden Feld-IDs — wer sie beim Anlegen befüllt, sieht die Werte direkt in allen Modulen und Berechnungen.
Der schnellste Weg zur vollständigen Liste: Lege ein Referenzobjekt in der App an und fülle die Tabs aus, die du brauchst — ein GET /objects/:id zeigt dir anschließend jede Feld-ID deines Datensatzes 1:1 im data-Objekt. So ist deine Integration immer synchron zur App, auch wenn neue Felder dazukommen.

Objekt & Adresse

FeldBedeutung
plzPostleitzahl
ortOrt
strStraße
hnrHausnummer
objartObjektart (z. B. ETW, MFH)
wflWohnfläche in m²
baujahrBaujahr
kaufdatKaufdatum
wirtschaftlicher_uebergangWirtschaftlicher Übergang (Datum — Start für AfA/Mieten im Jahr 1)
kuerzelObjekt-Kürzel (Anzeige)
ausstAusstattungsniveau
halterHalter/Mandant (privat oder Gesellschaft)

These, Lage & Bewertung

FeldBedeutung
thesisInvestitionsthese (Freitext)
risikenBekannte Risiken (Freitext)
notizenNotizen
bankvalBankbewertung in €
svwertSachverständigenwert in €
makrolageMakrolage — Selbsteinschätzung
mikrolageMikrolage — Selbsteinschätzung
vermstandVermietungsstand
exitstrExit-Strategie

Investition & Erwerbskosten

FeldBedeutung
kpKaufpreis in €
makler_pMaklerprovision in %
notar_pNotar in %
gba_pGrundbuchamt in %
gest_pGrunderwerbsteuer in %
ji_pWeitere Erwerbskosten in %
sanSanierungskosten in €
moeblMöblierung in €
inv_kuecheInventar: Küche in €
inv_moebelInventar: Möbel in €
inv_geraeteInventar: Geräte in €
inv_pvInventar: Photovoltaik in €
inv_stellplatzInventar: Stellplatz in €
inv_sonstInventar: Sonstiges in €
brwBodenrichtwert in €/m²
meaMiteigentumsanteil
gsflGrundstücksfläche in m²

Annahmen & Projektion

FeldBedeutung
mietstgMietsteigerung in %/Jahr
wertstgWertsteigerung in %/Jahr
kostenstgKostensteigerung in %/Jahr
leerstandLeerstand in %
btjBetrachtungszeitraum in Jahren
exit_bmyExit-Bruttomietrendite in %

Miete & Steuer

FeldBedeutung
nkmNettokaltmiete in €/Monat
zeZusatzeinnahmen in €/Monat (Gesamt-Kaltmiete = nkm + ze)
umlagefUmlagefähige Kosten in €/Monat
afa_satzAfA-Satz in %
geb_antGebäudeanteil in %
zveZu versteuerndes Einkommen in €
grenzGrenzsteuersatz in %

Finanzierung — Darlehen 1

FeldBedeutung
ekEigenkapital in €
d1Darlehenssumme in €
d1zSollzins in %
d1tAnfängliche Tilgung in %
d1_bindjZinsbindung in Jahren
d1_typeDarlehenstyp
d1_auszahlAuszahlungsdatum (Start der Finanzierung in Jahr 1)
d1_vertragVertragsnummer
anschl_zAnschluss-Zins in %
anschl_tAnschluss-Tilgung in %
anschl_bjAnschluss: Bindung in Jahren
bank_instBank / Institut

Finanzierung — Darlehen 2 & Bauspar

FeldBedeutung
d2Darlehen 2: Summe in €
d2zD2: Sollzins in %
d2tD2: Tilgung in %
d2_bindjD2: Zinsbindung in Jahren
d2_instD2: Institut
d2_typeD2: Typ (z. B. Tilgungsaussetzung)
d2_auszahlD2: Auszahlungsdatum
d2_azD2: Anschluss-Zins in %
d2_atD2: Anschluss-Tilgung in %
bspar_instBauspar: Institut
bspar_vertragBauspar: Vertragsnummer
bspar_sumBauspar: Summe in €
bspar_rateBauspar: Sparrate in €/Monat
bspar_zuteilBauspar: Zuteilungsdatum
bspar_zinsBauspar: Guthabenzins in %
bspar_quote_minBauspar: Mindest-Sparquote in %
bspar_dar_zBauspar-Darlehen: Zins in %
bspar_dar_tBauspar-Darlehen: Tilgung in %

Bewirtschaftung

FeldBedeutung
hg_ulHausgeld umlagefähig in €/Monat
hg_nulHausgeld nicht umlagefähig in €/Monat
grundsteuerGrundsteuer
ul_sonstSonstige umlagefähige Kosten
weg_rWEG-Rücklage
eigen_rEigene Rücklage
mietausfallMietausfallwagnis
nul_sonstSonstige nicht umlagefähige Kosten
bwk_ul_pctPauschale umlagefähig in %
bwk_nul_pctPauschale nicht umlagefähig in %
bwk_kp_pctPauschale vom Kaufpreis in %

Verhandlung & KI-Texte

FeldBedeutung
kp1 … kp4Kaufpreis-Szenarien (Werte in €)
kp1l … kp4lLabels der Szenarien
ai_stratKI-Text: Strategie
ai_verkKI-Text: Verkäufer/Verhandlung
ai_riskKI-Text: Risiko
ai_marktKI-Text: Markt

Mietentwicklung (Detail-Modus)

FeldBedeutung
mietspiegelMietspiegel-Referenz in €/m²
me_modusModus der Mietentwicklung (einfach / detailliert)
me_sollSollmiete in €/Monat
me_anzAnzahl Anpassungsschritte
me_intIntervall zwischen Schritten in Jahren
me_pctAnpassung je Schritt in %

Deal Score 2.0 — Zusatzangaben

FeldBedeutung
ds2_zustandObjektzustand
ds2_energieEnergieklasse
ds2_mietausfallMietausfall-Einschätzung
ds2_marktmieteMarktmiete in €/m²
ds2_bevoelkerungBevölkerungsentwicklung am Standort
ds2_nachfrageNachfrage-Einschätzung
ds2_marktfaktorMarktfaktor
ds2_wertsteigerungWertsteigerungs-Erwartung
ds2_entwicklungEntwicklungspotenzial

Qualität, Zustand & Objektdetails

FeldBedeutung
rate_kueche / rate_bad / rate_boden / rate_fensterSterne-Bewertung Küche / Bad / Boden / Fenster
qual_kueche / qual_bad / qual_boden / qual_fensterQualitätsstufe Küche / Bad / Boden / Fenster
zimmerZimmeranzahl
bad_anzAnzahl Bäder
etageEtage
etagen_gesEtagen gesamt
modernisModernisierungsjahr
garagenGaragenplätze
stellpl_aussenAußenstellplätze
balkon_flaeBalkon-/Terrassenfläche in m²
einheitenAnzahl Einheiten (bei Mehrfamilienhäusern)

Ausstattung für AVM-Bewertung

FeldBedeutung
eq_heatingHeizung
eq_windowsFenster
eq_floorBodenbeläge
eq_bathBad
eq_guest_wcGäste-WC
eq_store_roomAbstellraum
eq_wallsWände
eq_roofDach
eq_elevatorAufzug
Werte = Ausstattungs-Stufen, wie sie die App in den Ausstattungsdetails anbietet — am einfachsten per Referenzobjekt ablesen.

Steuerliche Übernahme

FeldBedeutung
san_tax_activeSanierung als Werbungskosten ansetzen (Checkbox)
san_tax_yearsVerteilung der Sanierung in Jahren
moebl_tax_activeMöblierung/Inventar steuerlich ansetzen (Checkbox)
moebl_tax_yearsVerteilung des Inventars in Jahren

Erwerb & Inserat

FeldBedeutung
erwerbsartErwerbsart
anbietertypAnbietertyp (privat / Makler / Bauträger …)

Mandant & Überführung

FeldBedeutung
halter_seitHalter seit (Datum)
obj_herkunftHerkunft des Objekts (Kauf / Überführung)
verkehrswert_ueberfVerkehrswert bei Überführung in €
ueberf_preisÜberführungspreis in €
gesellschafterdarlehenGesellschafterdarlehen in €
ueberf_restschuldÜbernommene Restschuld in €
ueberf_rest_zinsZins der übernommenen Restschuld in %
ueberf_endePrivat-Phase: Enddatum

App-interne Felder (nicht setzen)

Felder mit Unterstrich-Präfix verwaltet die App selbst — z. B. _thumb (Vorschaubild), _avm_state, _mb_state, _immometrica_id, _ueberf_link sowie Caches wie ai_lage_cache und brw_ki_result. Beim Schreiben nicht erfinden und nicht leeren.

Wichtig beim PUT: data wird komplett ersetzt. Deshalb immer Read-Modify-Write: erst GET /objects/:id, die gewünschten Felder im zurückgelieferten data ändern, dann das komplette Objekt zurücksenden — sonst gehen App-interne Felder und Caches verloren.

Top-Level (neben data)

FeldBedeutung
photos[]Objektfotos als Base64-Data-URLs (App verkleinert auf max. 1600 px + Thumbnail)
aiAnalysisText der letzten KI-Analyse
expectedVersionOptionale Versionsnummer beim PUT — schützt gegen konkurrierende Änderungen
Die Liste (GET /objects) liefert zusätzlich den zuletzt in der App gespeicherten KPI-Stand je Objekt (u. a. Bruttomietrendite, Cashflow, DSCR, LTV) — praktisch fürs eigene Reporting, ohne das volle Objekt zu laden.

06 Fehler & Limits

StatusBedeutung
401Kein/ungültiger Key
403Kein Pro / deaktiviert
404Objekt nicht gefunden
400Validierungsfehler — Details stehen im Antwort-Body
429Rate-Limit — kurz warten, dann erneut senden

07 Grenzen & Roadmap

Damit du weißt, woran du bist: Die DealPilot-API ist heute eine Daten-API für deinen Objektbestand — bewusst schlank und stabil.

Das kann sie heute

Vollen Lese- und Schreibzugriff auf deine Objekte (CRUD), Summaries mit letztem KPI-Stand, Fotos und KI-Analyse-Text inklusive. Ideal für Import, Sync und eigenes Reporting.

Berechnungen

Deal Score, DSCR, Cashflow und Steuer werden in der App gerechnet; die API liefert dafür Rohdaten plus den zuletzt gespeicherten KPI-Stand. Restnutzungsdauer und Verkehrswert rechnet die API auf Zuruf — über POST /rechenkerne/rnd und POST /rechenkerne/verkehrswert, mit denselben Kernen wie die App.

Noch nicht per API

KI-Co-Pilot und AVM-Marktbewertungen, PDF-Export-Erzeugung, Webhooks bei Änderungen sowie Volltextsuche/Filter (aktuell limit/offset). Deal Score, DSCR und Cashflow gibt es nur als gespeicherten Stand, nicht auf Zuruf.

Roadmap

Genau diese Punkte stehen auf der Ausbauliste. Du brauchst einen davon zuerst? Schreib an info@dealpilot.immo — API-Wünsche fließen direkt in die Priorisierung.