Authentifizierung

Zur Authentifizierung einer Anfrage wird ein API-Key Verfahren in Verbindung mit OAuth2 verwendet. Der API Key wird Ihnen von estate45 nach der Einrichtung zugewiesen. Er wird bei allen Requests im Request Header Authorization als Bearer angegeben: Authorization: Bearer {API-Key}

Ein API-Key wird vom System generiert und hat folgendes Format:

  • Länge: 36 Zeichen
  • Kodierung: UUID Type 4 Random [RFC 4122]
  • Beispiel: 87dbc6cd-91d2-4574-bcb5-2aaaf924386d

Wichtig

Die Verwendung der API Schnittstelle ist nur möglich, wenn Sie einen regulären, aktiven Account bei estate45 haben. API Keys werden in der Datenbank nur hochverschlüsselt gespeichert.

HTTP Status Codes und Fehlermeldungen

Die folgenden allgemeinen Status Codes können potentiell bei allen Aufrufen auftreten und müssen entsprechend behandelt werden.

HTTP Status Code Beschreibung
200 (OK) Der Request wurde erfolgreich ausgeführt.
204 (No Content) Der Request wurde erfolgreich ausgeführt. In der Response gibt es keinen Body.
401 (Unauthorized) Es wurde versucht, auf eine Ressource zuzugreifen, die geschützt ist. Entweder ist der API-Key falsch oder abgelaufen.
403 (Forbidden) Der Zugriff ist auf diese Ressource mit der verwendeten HTTP-Methode nicht erlaubt.
410 (Gone) Die API steht in dieser Version nicht mehr zur Verfügung.

Endpoint

Die Schnittstelle ist über folgende URL erreichbar: https://api.estate45.com/estate/

JSON Request Bodies

Stellen Sie sicher, dass Sie den HTTP-Header Content-Type application/json in Ihren JSON-Body aufnehmen, wenn Sie JSON für Ihre POST-Daten anstelle von URL-codierten Daten verwenden möchten.


Immobilienübersicht abrufen

Endpoint POST https://api.estate45.com/estate/{AccountID}
Content type application/json
Query Parameters
  • AccountID: string (required). Die AccountID erhalten Sie direkt von estate45 und ist ausschließlich mit Ihrem Account verknüpft.
Request Body
{
  "page": 1,
  "records": 10,
  "orderBy": "ObjID",
  "orderDir": "desc",
  "reference": false,
  "vma": 2,
  "art": 3,
  "country": 1
}
Request Parameters
  • page: (required) Aktuelle Seite
  • records: (required) Anzahl der Einträge pro Seite. Ist limitiert auf maximal 20.
  • orderBy: (optional) Nach diesem Feld soll sortiert werden. Standard: ObjID
  • orderDir: (optional) Gibt die Sortierrichtung an. desc (absteigend) oder asc (aufsteigend) sortiert. Standard: DESC
  • reference: (optional) Setzen Sie den Filter auf true, wenn es sich nbei der Übersicht um eine Referenzliste handelt.
  • vma: (optional) Gibt die Vermarktungsart an. 1: Objekte zur Miete. 2: Objekte zum Kauf
  • art: (optional) Gibt die Objektart an. Eine Liste der verfügbaren Arten finden Sie hier.
  • country: (optional) Gibt die Kennung für das Land an. Eine Liste der verfügbaren Länder finden Sie hier.
Responses Codes siehe Kapitel Fehlemeldungen
Response sample
{
  "totalCount": 83,
  "totalPages": 9,
  "currentPage": 1,
  "maxRows": 10,
  "data": [
    {
      "ObjID": 336674,
      "titel": "Elten: Garage zu vermieten!",
      "url": "336674_2021218091711_0717.jpg",
      "plz": "46446",
      "ort": "Emmerich - Elten",
      "vma": 1,
      "art": 3,
      "km": 50
    },
    {
      "ObjID": 336650,
      "titel": "Bocholt - Isselburg:  Wir suchen für unsere Kunden",
      "url": "336650_2021217133807_0131.jpg",
      "plz": "46395",
      "ort": "Bocholt",
      "vma": 2,
      "art": 3,
      "zimmer": 3,
      "grund": 300,
      "wf": 100
    }
  ]
}
Response Parameters
  • totalCount: Gesamtzahl aller Objekte, die nach den Filtereinstellungen in Frage kommen
  • totalPages: Maximale Seitenzahl aufgrund der Filtereinstellungen
  • currentPage: Aktuelle Seite
  • maxRows: Anzahl der Einträge pro Seite. Ist limitiert auf maximal 20.
  • ObjID: Die interne (estate45) ID des Objektes
  • headline: Überschrift
  • url: Der Name des Titelbildes. Zum Aufrufen des Fotos verwenden Sie bitte folgenden Link: https://www.estate45.com/objektfotos/{ObjID}/{url}
  • plz/ort: PLZ und Ort des Objektes
  • vma: Gibt die Vermarktungsart an. 1: Objekte zur Miete. 2: Objekte zum Kauf
  • zimmer: Anzahl der Zimmer
  • grund: Größe des Grundstücks
  • wf: Größe der Wohnfläche
  • kp: Kaufpreis des Objektes
  • km: Kaltmiete des Objektes
  • lon: Längengrad der Position des Objektes
  • lat: Breitengrad der Position des Objektes

Immobilien Exposé abrufen

Endpoint POST https://api.estate45.com/estate/{ObjID}
Content type application/json
Query Parameters
  • accountID: string (required)
  • haendlerID: integer (required)
Request Body

Für die Abfage aller Stellen ist kein Body Eintrag erforderlich. Wenn Sie die Positionen eingrenzen wollen, können Sie die folgenden Werte im Body als JSON senden.

{
  "filter": {
    "DateFrom": "2021-05-12",
    "DateUntil": "2021-09-29",
    "ScoreFrom": 1500,
    "ScoreUntil": 2500,
    "lon": 9.171926,
    "lat": 48.497956,
    "dist": 5000,    
    "stellenart": "GF"
  }
}
Request Parameters
  • filter/DateFrom: Startdatum: alle Stellen anzeigen, die ab diesem Datum verfügbar sind
  • filter/DateUntil: Enddatum: alle Stellen anzeigen, die bis zu diesem Datum verfügbar sind. Auch kombinierbar mit "Startdatum".
  • filter/ScoreFrom: Mindestwert für das Feld "bewertung"
  • filter/ScoreUntil: Maximalwert für das Feld "bewertung"
  • filter/lon: Längengrad des Standortes
  • filter/lat: Breitengrad des Standortes
  • filter/dist: Umkreis in Metern vom Lat/Lon Zentrum des Standortes
  • filter/available: true = nur verfügbare Stellen anzeigen.
  • filter/stellenart: Nur bestimmte Stellenarten anzeigen. Siehe: Verfügbare Stellenarten
Responses Codes siehe Kapitel Fehlemeldungen
Response samples

Das ist ein Beispiel Exposé. Der Umfang variiert je nach Objektart, Ausstattung, Bildmaterial, Texte,...

{
  "headline": "Exklusive Wohnung",
  "preise": {
    "kaufpreis": 123456,
    "aussen_courtage": "{Zusätzliche Provisionsinfo}",
    "hausgeld": 123,
    "waehrung": "Euro",
    "provision_teilen": 1,
    "courtage_hinweis": "Fällig nach erfolgten Notarvertragsabschluss"
  },
  "geo": {
    "wohnungsnr": 20,
    "strasse": "Musterstraße 1",
    "plz": "12345",
    "ort": "Musterhausen",
    "land": "Deutschland",
    "bundesland": "Bayern",
    "etage": 1,
    "anzahlwohneinheiten": 3
  },
  "zustand_angaben": {
    "baujahr": "2012",
    "zustand": "neuwertig",
    "jahrletztemodernisierung": "2014",
    "letztemodernisierung": "neue Bäder"
  },
  "flaechen": {
    "wohnflaeche": 123,
    "anzahl_zimmer": 4,
    "anzahl_badezimmer": 2,
    "anzahl_schlafzimmer": 3,
    "anzahl_balkone": 1
  },
  "ausstattung": {
    "kueche": "Offene Küche",
    "heizungsart": "Fernwärme, Fußbodenheizung",
    "fahrstuhl": "Personenaufzug",
    "stellplatzart": "Tiefgarage",
    "ausricht_balkon_terrasse": "nach Süden",
    "unterkellert": "voll unterkellert",
    "barrierefrei": true,
    "befeuerung": "Fernwärme",
    "bad": "Dusche, Wanne",
    "kabel_sat_tv": true,
    "boden": "Fliesen, Parkett",
    "abstellraum": true,
    "rolladen": true,
    "fahrradraum": true,
    "hausmeisterserviceyn": true,
    "winterdienstyn": true
  },
  "verwaltung_techn": {
    "objektnr_extern": "336620",
    "objektnr_intern": "336620"
  },
  "verwaltung_objekt": {
    "verfuegbar_ab": "Sommer 2021"
  },
  "infrastruktur": {},
  "fotos": [
    {
      "pfad": "336620_2021217102249_0277.jpg",
      "titel": "Wohnzimmer",
      "format": "jpg"
    }
    ...
  ],
  "energiepass": {
    "epart": "Bedarfsorientiert",
    "gueltig_bis": "12.04.2022",
    "energiebedarf": "59 kWh pro m² pro Jahr",
    "jahrgang": "bis 2014 (EnEV 2009)",
    "primaerenergietraeger": "Fernwärme",
    "baujahr": "2012"
  },
  "text": {
    "Objektbeschreibung": "Lorem ipsum dolor sit amet, consectetur adipisici elit,...",
    "Lage": "Lorem ipsum dolor sit amet, consectetur adipisici elit,...",
    "Ausstattung": "Lorem ipsum dolor sit amet, consectetur adipisici elit,...",
    "Sonstige Angaben": "Lorem ipsum dolor sit amet, consectetur adipisici elit,..."
  }
}
Response Parameters
  • TotalRecords: Anzahl der Positionen. Die Anzahl der Positionen ist auch von Filterwerten abhängig, die im Body als JSON Datei mitgeliefert werden können.
  • kampagnenID: interne Itworks ID. Diese wird Ihnen zu Beginn der Kampagne bekannt gegeben. Diese Kampagne bildet immer die Basis aller verfügbaren Stellen
  • haendlerID: interne Itworks ID des Händlers.
  • error: Falls bei der Verarbeitung ein Fehler aufgetreten ist, wird dieser im Klartext ausgegeben. Ansonsten 0.
  • positionen: Array aus einzelnen Positionsdetails.
  • positionen/standortnr: Kennung des Standortes
  • positionen/bewertung: Nach einem Algorythmus berechneter Leistungswert dieser Position. Je höher der Wert, desto besser die Bewertung.
  • positionen/geo: Längen- und Breitengrad der Position