Zum Inhalt springen

API-Referenz der Headless-Schnittstelle

PLUS Die Headless-Schnittstelle ist Teil der WordPress REST API und antwortet unter dem Namensraum immomakler-headless/v1. Die Basis-URL lautet daher

https://ihre-wordpress-adresse.de/wp-json/immomakler-headless/v1/

Alle Endpunkte antworten erst, wenn Sie die Schnittstelle im Backend Ihrer Website (wp-admin) unter WP-ImmoMakler → Integrationen → Headless aktiviert haben; siehe Headless-Betrieb mit eigenem Frontend.

Lesende Endpunkte sind standardmäßig öffentlich. Haben Sie die Option “API-Key auch für lesende Anfragen verlangen” aktiviert, muss jede Anfrage den API-Key mitschicken, entweder im eigenen Header oder als Bearer-Token:

Terminal-Fenster
curl -H "X-ImmoMakler-Key: IHR-API-KEY" https://ihre-wordpress-adresse.de/wp-json/immomakler-headless/v1/properties
Terminal-Fenster
curl -H "Authorization: Bearer IHR-API-KEY" https://ihre-wordpress-adresse.de/wp-json/immomakler-headless/v1/properties

Fehlt der Key oder stimmt er nicht, antwortet die Schnittstelle mit 401 und dem Fehlercode headless_unauthorized.

ParameterBedeutung
page, per_pageSeite und Seitengröße einer Liste. per_page ist auf 100 begrenzt, bei der Übersicht /properties/manifest auf 1000.
fieldssummary liefert die Kurzform für Listen (Daten der Listenansicht, Titelbild, Status, Adresse, Links), full die vollständige Immobilie für die Detailansicht. Listen liefern standardmäßig summary, die Einzelabfrage full.
statusopen zeigt die Immobilien der Immobilienliste, reference nur Referenzobjekte, all beides. Listen liefern standardmäßig open, die Einzelabfrage all.
modified_sinceNur Immobilien, die seit diesem Zeitpunkt (ISO 8601, zum Beispiel 2026-10-11T08:00:00Z) geändert wurden.
localeSprache der Bezeichnungen und Kategorienamen, zum Beispiel de_DE oder en. Auf mehrsprachigen Websites mit WPML oder Polylang wählt der Parameter auch die Sprache der Immobilien: Listen und Suche liefern die Immobilien dieser Sprache, eine einzelne Immobilie kommt in dieser Sprache, sofern eine Übersetzung existiert, sonst in der Sprache der Website. Ohne den Parameter gilt die Sprache der Website.

Listen antworten mit einem Umschlag:

{
"items": [],
"total": 42,
"total_pages": 3,
"page": 1,
"per_page": 20,
"generated_at": "2026-10-11T08:15:00+00:00"
}

Zusätzlich tragen Listen die Header X-WP-Total, X-WP-TotalPages und einen Link-Header mit rel="next" und rel="prev".

Lesende Antworten tragen Cache-Control: public, max-age=60, s-maxage=300, stale-while-revalidate=600 und einen ETag. Schicken Sie den ETag beim nächsten Abruf im Header If-None-Match mit, antwortet die Schnittstelle mit 304 Not Modified, solange sich die Daten nicht geändert haben. Im Browser übernimmt das der HTTP-Cache des Browsers von selbst; schickt ein Frontend If-None-Match selbst mit, erhält sein Code bei unveränderten Daten eine leere Antwort und muss dann die zuvor geladenen Daten verwenden. Nach jeder Übertragung Ihrer Maklersoftware und nach jeder Änderung an einer Immobilie verwirft WP-ImmoMakler seinen Zwischenspeicher, sodass die nächste Anfrage die aktuellen Daten liefert.

Beschreibt die Website einmal pro Build: die Adresse von WordPress und Frontend, die Pfadmuster, die verfügbaren Sprachen (locales, und unter languages je Sprache Code, Locale, Name, Standardsprache und das Frontend-Verzeichnis prefix), Währung, Funktionsumfang (PDF, Merkliste, Suchaufträge, Umkreissuche), alle Kategorien mit ihrer Kennung (id: type, country, marketing, usage, location, feature, status), ihrem Suchparameter (param), ihrem WordPress-Namen, ihrer Query-Variable und ihrem URL-Pfad, die in Ihren Einstellungen gewählten Datenfelder als englische Keys (keys.archive, keys.single, keys.single_areas, keys.single_prices, keys.epass, keys.contact), die registrierten Bildgrößen und unter search den Aufbau Ihres Suchformulars: die angezeigten Kategorien, die Bereiche mit Key, Slug des Suchformulars, Einheit, Schrittweite und Höchstwert, die Sortierungen mit Beschriftung, die Standardsortierung, die Umkreissuche mit ihren Radien und unter search.places die Adressvervollständigung der Umkreissuche, falls Sie einen Anbieter dafür eingerichtet haben (siehe unten).

Die Immobilienliste, zuletzt geänderte zuerst. Unterstützt page, per_page, fields, status, modified_since und locale.

Die kompakte Übersicht aller sichtbaren Immobilien für den Abgleich beim Bauen eines statischen Frontends. Jeder Eintrag nennt object_number, post_id, slug, language, locale, translations, modified_gmt, public_since, is_reference, is_project, is_project_unit und frontend_url. Unterstützt page, per_page (bis 1000), status und locale.

Eine Immobilie, adressiert über ihre Objektnummer. Die Objektnummer wird URL-kodiert übergeben (A%2F1 für A/1); Groß- und Kleinschreibung spielen keine Rolle. Eine Immobilie, die die Immobilienliste nicht zeigt, antwortet mit 404 und dem Fehlercode headless_not_found. Unterstützt fields, status und locale. Auf mehrsprachigen Websites tragen alle Übersetzungen einer Immobilie dieselbe Objektnummer; locale entscheidet, welche davon geliefert wird, und translations nennt die anderen.

Die Immobiliensuche mit den Filtern Ihrer Website. Die Parameter sind englisch; die Namen aus der Suche Ihrer WordPress-Website nimmt die Schnittstelle als Aliasse an, sodass eine gefilterte Adresse der Immobilienliste und eine Suchanfrage dasselbe bedeuten:

  • Kategorien über ihren Suchparameter (type, marketing, usage, location, country, features; der Parameter steht in site.taxonomies[].param) mit Begriffs-Slugs; die Status-Kategorie heißt hier objektstatus, weil status wie bei /properties zwischen offenen Immobilien, Referenzen und allen wählt. Mehrere Begriffe trennen Sie mit Komma, wenn einer davon passen soll (type=wohnung,haus), oder mit Plus, wenn alle passen müssen (features=balkon+garten). Bei der Ausstattung bedeutet auch eine Liste (features[]=balkon&features[]=garten) “alle”. Die Query-Variablen der WordPress-Website (typ, vermarktungsart, nutzungsart, ort, land, ausstattung) gelten als Aliasse.
  • Bereiche über {key}_min und {key}_max, zum Beispiel price_min=200000&price_max=500000 oder rooms_min=3. Welche Bereiche es gibt und wie weit sie reichen, nennt site.search.ranges; von-{source_slug} und bis-{source_slug} aus dem Suchformular Ihrer Website (von-kaufpreis, bis-qm) gelten als Aliasse. Die Bereiche gelten genauso wie in der Suche Ihrer Website; ein Kaufpreis von 0 (auf Anfrage) fällt wie dort nicht heraus.
  • id (Alias objekt-id): Objektnummer oder ihr Anfang.
  • center und radius (km) für die Umkreissuche (ab PLUS, mit aktivierter Umkreissuche); radius ist optional. Ein location-Filter wird dann wie auf der Website ignoriert. Unter radius nennt die Antwort die gefundene Adresse oder den Fehler, falls der Ort nicht ermittelt werden konnte.
  • bounds=süd,west,nord,ost für den sichtbaren Kartenausschnitt in Dezimalgrad.
  • order mit einem Key aus site.search.orders; ohne Angabe gilt die Standardsortierung Ihrer Website.
  • facets=1 ergänzt unter facets je Kategorie-Kennung (type, location, feature, …) die Begriffe des Ergebnisses mit ihrer Anzahl, häufigste zuerst, für Zähler neben den Filtern. Eine Kategorie, nach der mit “einer dieser Begriffe” gefiltert wird, zählt ihre eigenen Begriffe ohne diesen Filter: Wer type=wohnung gewählt hat, sieht weiterhin, wie viele Häuser es gibt, und kann wechseln. Ein “alle diese Begriffe”-Filter wie die Ausstattung engt seine Zähler weiter ein.
  • Dazu page, per_page, fields, status und locale wie bei /properties.

Die Antwort enthält neben den Immobilien unter applied die Filter, wie die Schnittstelle sie verstanden hat, mit den englischen Kennungen und Keys, sodass ein Frontend seinen Formularzustand daraus herstellen kann. Es gelten dieselben Sichtbarkeitsregeln wie für die Immobilienliste.

Ist unter WP-ImmoMakler → Integrationen → Geodienste ein Anbieter für die Adressvervollständigung eingerichtet, beschreibt site.search.places, wie ein Frontend Vorschläge holt, während ein Besucher im Feld der Umkreissuche tippt; ohne Anbieter ist places null. Der Ablauf ist derselbe wie im Suchformular Ihrer Website, und der Key des Anbieters bleibt dabei auf Ihrem Server:

  1. GET auf places.token_url liefert ein für 15 Minuten gültiges Token und unter proxy_url die Adresse des Fast-API-Proxys, der ohne WordPress antwortet; proxy_url ist leer, wenn der Proxy abgeschaltet ist oder der Anbieter nicht Google ist.
  2. Jede Eingabe geht als POST mit dem JSON-Body { "q": "Hambu", "session": "…", "languageCode": "de" } und dem Header X-ImmoMakler-Sign: <Token> an proxy_url, ersatzweise an places.suggest_url. Die Antwort ist { "suggestions": [ { "label": "Hamburg, Deutschland", "placeId": "…" } ] }.
  3. Den gewählten label übergibt das Frontend als center an /search.

Beide Endpunkte stehen auch im OpenAPI-Dokument und in llms.txt, mit ihrem eigenen Namespace immomakler/v1 als Server. sessions sagt, ob der Anbieter je Tippfolge abrechnet; dann verwendet ein Frontend für eine Folge von Eingaben denselben zufälligen session-Wert und beginnt nach einer Auswahl oder drei Minuten Pause einen neuen. min_length, max_results und debounce_ms sind die Werte Ihrer Website. Rufen Sie die Endpunkte aus dem Browser auf, nicht von einem Server: Die Begrenzungen (90 Anfragen pro Minute und Besucher am Proxy, 600 nicht aus dem Cache beantwortete pro Stunde) gelten je Besucher. Der Proxy nimmt Anfragen von der Adresse Ihres Frontends und den erlaubten Ursprüngen an; eine Änderung dieser Einstellungen übernimmt er mit dem nächsten Speichern.

Die Kartenmarker eines ganzen Suchergebnisses: dieselben Filter wie /search, aber ohne Seiten. Zu jeder Immobilie mit Position liefert die Antwort Objektnummer, Titel, Koordinaten, ob die Position genau ist, den ersten Preis der Listenansicht, ein Vorschaubild und die Frontend-Adresse. Ein Frontend zeigt so alle Treffer auf der Karte, während die Liste seitenweise lädt. Die Antwort ist auf 1000 Marker begrenzt; capped meldet, wenn ein Ergebnis darüber lag.

Ähnliche Immobilien, so wie Ihre Website sie unter einer Immobilie zeigt: gleiche Objektart und Vermarktungsart in der Nähe, schrittweise gelockert, bis etwas passt, in zufälliger Reihenfolge. count begrenzt die Anzahl (Standard: Ihre Einstellung, höchstens 12). Einheiten desselben Bauprojekts bleiben außen vor, wenn Ihre Website sie in der eigenen Tabelle zeigt.

Die Einheiten eines Bauprojekts, so wie die Tabelle “Weitere Einheiten in diesem Projekt” sie zeigt: alle Einheiten nach Objektnummer, auch verkaufte und vermietete, die die Immobilienliste nicht mehr führt. Für eine Immobilie, die kein Bauprojekt ist, antwortet die Schnittstelle mit 404.

Alle Kategorien unter ihrer Kennung (type, marketing, usage, location, country, feature, status), jeweils mit Suchparameter, WordPress-Namen und ihren Begriffen: term_id, slug, name, parent, count, description und source_slug, der sprachunabhängige Slug des Begriffs. Mit hide_empty=false erscheinen auch Begriffe ohne Immobilien. Die Anzahl zählt alle Immobilien eines Begriffs, auch solche, die die Immobilienliste ausblendet.

Die veröffentlichten Kontaktpersonen mit Name, Beschreibung, Porträt, den Kontaktfeldern aus Ihren Einstellungen und der Anzahl ihrer Immobilien.

Die veröffentlichten Seiten Ihrer Website, ohne die Vorlagenseiten von WP-ImmoMakler. Die Liste nennt zu jeder Seite den hierarchischen Pfad (ueber-uns/team), die übergeordnete Seite, die Reihenfolge, das Seitentemplate, ob sie die Startseite ist und ihre Adresse auf dem Frontend. Die Einzelabfrage über den Pfad liefert die Seite als Block-Struktur: Jeder Block trägt seinen Namen (core/paragraph, immomakler/single-data, …), seine Attribute, sein inneres HTML, seine Unterblöcke und unter rendered das HTML, das WordPress für ihn ausgeben würde. Blöcke von WP-ImmoMakler haben kein rendered; ein Frontend stellt sie aus den Immobiliendaten dar. Dazu kommen content_html, der gesamte Inhalt als ein HTML-Fragment, und seo mit Titel und Beschreibung aus Yoast SEO oder Rank Math, sofern dort gepflegt. Links auf Ihre WordPress-Website zeigen in beiden Fassungen bereits auf das Frontend; Bilder und Dokumente bleiben auf WordPress.

Die veröffentlichten Beiträge, neueste zuerst, mit Kategorien, Schlagwörtern, Auszug und Beitragsbild; unterstützt modified_since. Die Einzelabfrage liefert dieselbe Block-Struktur wie bei Seiten.

GET /spam/token, POST /enquiries und POST /withdrawal

Abschnitt betitelt „GET /spam/token, POST /enquiries und POST /withdrawal“

Die Formularrouten: das Token für den Spam-Schutz, Kontaktanfragen und Widerrufe aus einem eigenen Frontend. Sie nehmen Anfragen nur von den erlaubten Ursprüngen oder mit dem API-Key entgegen und werden nie zwischengespeichert. Aufbau der Dokumente, Fehlercodes und das Zusammenspiel mit dem Spam-Schutz beschreibt die Seite Formulare über die Headless-Schnittstelle; site.forms nennt die Felder, Pflichtfelder und Zustimmungstexte Ihrer Formulare.

Die Schnittstelle meldet Änderungen an Ihren Immobilien von sich aus an Ihr Frontend; Aufbau, Signatur und Wiederholung der Nachricht beschreibt die Seite Webhook, Links und Weiterleitung.

site.menus enthält die drei Menüpositionen, die WP-ImmoMakler für Ihr Frontend registriert und die Sie im Backend Ihrer Website (wp-admin) unter Design → Menüs belegen: primary (Hauptnavigation), footer und legal (Impressum, Datenschutz). Jeder Eintrag trägt Titel, die in WordPress gespeicherte Adresse, unter frontend_url die Adresse auf dem Frontend, Ziel, CSS-Klassen, den Typ des Ziels und seine Untereinträge.

site.branding liefert die Gestaltungsvorgaben aus den Abschnitten “Branding” und “Astro-Starter” der Headless-Einstellungen: die Gestaltungsvorlage (preset), Name und Claim der Website, Logo und Standard-Vorschaubild mit allen Bildgrößen, Primär- und Akzentfarbe als Hex-Werte, die Schriftkombination (sans, serif-headlines, humanist, system) und die Eckenrundung (none, small, medium, large). Ein Frontend schreibt diese Werte in seine Design-Tokens, sodass Sie das Erscheinungsbild in WordPress ändern, ohne das Frontend anzufassen.

Die vollständige Form (fields=full) einer Immobilie, gekürzt:

{
"object_number": "A-1234",
"source_id": "7f3c…",
"post_id": 4711,
"slug": "wohnung-kaufen-in-hamburg-a-1234",
"language": "de",
"locale": "de_DE",
"translations": { "en_GB": { "object_number": "A-1234", "post_id": 4712, "slug": "flat-for-sale-in-hamburg-a-1234", "frontend_url": "https://ihr-frontend.de/en/properties/flat-for-sale-in-hamburg-a-1234/" } },
"published_gmt": "2026-09-01T10:00:00+00:00",
"modified_gmt": "2026-10-10T08:15:00+00:00",
"title": "3-Zimmer-Wohnung in Hamburg-Altona, 85 m²",
"object_title": "Helle Stadtwohnung mit Blick aufs Wasser",
"subtitle": "Hamburg-Altona · Wohnung · Kauf",
"excerpt": "…",
"status": {
"terms": [ { "slug": "offen", "name": "offen" } ],
"is_open": true,
"is_reserved": false,
"is_reference": false,
"archived": false,
"is_project": false,
"is_project_unit": false,
"is_hidden_project": false,
"project_id": null,
"public_since": "2026-09-01T10:00:00+00:00"
},
"marketing": { "type": "sale", "usage": "residential", "property_types": [ "wohnung" ] },
"taxonomies": { "type": [ { "term_id": 12, "slug": "wohnung", "name": "Wohnung", "parent": 0, "source_slug": "wohnung" } ] },
"address": { "street": "Elbchaussee", "house_number": "1", "postal_code": "22763", "city": "Hamburg", "district": "Altona", "state": "Hamburg", "country": "DEU", "country_name": "Deutschland" },
"geo": { "lat": 53.55, "lng": 9.93, "exact": true, "radius_m": null },
"fields": {
"property": [ { "key": "rooms", "source_key": "anzahl_zimmer", "label": "Zimmer", "value": "3", "text": "3 Zimmer", "raw": 3 } ],
"areas": [ { "key": "living_area", "source_key": "wohnflaeche", "label": "Wohnfläche ca.", "value": "85 m²", "text": "Wohnfläche ca. 85 m²", "raw": 85 } ],
"prices": [ { "key": "purchase_price", "source_key": "kaufpreis", "label": "Kaufpreis", "value": "350.000 €", "text": "Kaufpreis 350.000 €", "raw": 350000 } ],
"epass": []
},
"descriptions": {
"description": { "source_key": "objektbeschreibung", "label": "Beschreibung", "html": "<p>…</p>", "text": "…" }
},
"media": {
"featured": { "id": 99, "alt": "", "title": "Wohnzimmer", "mime": "image/jpeg", "sizes": { "immomakler-archive-thumb": { "url": "…", "width": 400, "height": 267 }, "full": { "url": "…", "width": 2000, "height": 1333 } } },
"images_count": 12,
"floorplans_count": 1,
"images": [],
"floorplans": [],
"downloads": [ { "id": 101, "title": "Exposé", "url": "…", "filename": "expose.pdf", "is_pdf": true, "is_floorplan": false } ],
"links": [],
"videos": [ { "type": "embed", "url": "https://www.youtube.com/watch?v=…", "embeddable": true } ],
"virtual_tours": []
},
"contact": { "post_id": 7, "name": "Erika Mustermann", "slug": "erika-mustermann", "wp_url": "…", "photo": { "…": "…" }, "fields": [ { "key": "full_name", "source_key": "kontaktperson_fullname", "label": "Ansprechpartner", "value": "Erika Mustermann" } ] },
"seo": { "title": "…", "description": "…", "canonical": "https://ihr-frontend.de/immobilien/wohnung-kaufen-in-hamburg-a-1234/", "og_image_url": "…" },
"json_ld": [ { "@context": "https://schema.org", "@type": [ "Product" ] } ],
"links": {
"frontend_url": "https://ihr-frontend.de/immobilien/wohnung-kaufen-in-hamburg-a-1234/",
"wp_url": "https://ihre-wordpress-adresse.de/immobilien/wohnung-kaufen-in-hamburg-a-1234/",
"archive_frontend_url": "https://ihr-frontend.de/immobilien/",
"og_image_url": "…/og-image/1/",
"pdf_url": "…?pdf",
"qr_url": "…?qrcode"
}
}

seo enthält den SEO-Titel und die Beschreibung der Immobilie, wie WP-ImmoMakler sie beim Import erzeugt oder die KI-Texte sie geschrieben haben; haben Sie für die Immobilie in Yoast SEO oder Rank Math einen eigenen Titel oder eine eigene Beschreibung eingetragen, gehen diese vor. Vorlagen mit Platzhaltern wie %%title%% bleiben dem SEO-Plugin überlassen und werden hier nicht berücksichtigt.

Jedes Datenfeld trägt einen englischen key, der auf jeder Website gleich ist, und unter source_key den Namen, den WordPress und OpenImmo verwenden. Dazu gehören die Bezeichnung (label) und der Anzeigetext (value) in der Sprache der Website, beides als ein Satzteil (text) wie in der Textform der Elementor-Tags, etwa “3,5 Zimmer” oder “2 Stellplätze”, sowie der Rohwert (raw) als Zahl oder Zeichenkette. Enthält ein Anzeigetext HTML, etwa einen Link, liefert html zusätzlich die unveränderte Fassung. Die Kurzform (fields=summary) ersetzt die Gruppen property, areas, prices und epass durch archive und archive_prices, also die Felder der Listenansicht, und lässt descriptions, json_ld sowie die Bild-, Dokument- und Videolisten weg.

Die Schnittstelle beschreibt sich selbst. Beide Endpunkte sind immer öffentlich, auch wenn Sie den API-Key für lesende Anfragen verlangen, denn sie geben keine Immobiliendaten aus.

Ein OpenAPI-3.1-Dokument mit allen Endpunkten, Parametern, Antwortschemata und den beiden Authentifizierungsarten. Entwicklungswerkzeuge wie Postman, Insomnia oder Generatoren für typisierte Clients lesen es direkt; die Parameter stammen aus den registrierten Routen, sodass das Dokument mit jeder Erweiterung der Schnittstelle Schritt hält. Unter webhooks beschreibt es die Nachrichten, die Ihre Website an das Frontend sendet, mit Headern, Signatur und Aufbau; die Einleitung nennt die Fehlercodes und die Regel für Formulare, die ein Server weiterreicht.

Eine Kurzbeschreibung im Textformat nach der llms.txt-Konvention: Zweck der Schnittstelle, Basis-URL, Authentifizierung, die Regel, Immobilien über die Objektnummer zu adressieren, die Fehlercodes, der Webhook und die Liste der Endpunkte mit Links. Die Variante llms-full.txt ergänzt zu jedem Endpunkt die Parameter und die Felder der Antwort.

KI-gestützte Werkzeuge, die aus einer Beschreibung Code erzeugen, kommen mit diesen beiden Dateien ohne weitere Erklärung zurecht:

  • Lovable, Bolt, v0, Replit: Geben Sie im Prompt die Adresse von llms.txt oder openapi.json an, zum Beispiel “Baue eine Immobilienliste mit der API unter https://ihre-wordpress-adresse.de/wp-json/immomakler-headless/v1/llms.txt”. Lesende Anfragen funktionieren direkt aus dem Browser, da WordPress die REST API für alle Ursprünge freigibt.
  • Base44: Hinterlegen Sie die Adresse von openapi.json als benutzerdefinierte OpenAPI-Integration. Verlangen Sie den API-Key für lesende Anfragen, legen Sie ihn dort als Secret ab; Base44 ruft die Schnittstelle dann aus einer Backend-Funktion auf.

Erzeugter Code sollte Immobilien stets über object_number adressieren und die Links aus links.frontend_url verwenden; beides steht so in llms.txt.

HTTP-StatusCodeBedeutung
401headless_unauthorizedDer API-Key fehlt oder ist falsch, obwohl er für lesende Anfragen verlangt wird.
404headless_not_foundDie Immobilie oder Kontaktperson existiert nicht oder wird nicht öffentlich gezeigt.
404rest_no_routeDie Schnittstelle ist nicht aktiviert.
400headless_invalid_modified_sinceDer Parameter modified_since ist kein gültiges Datum.
403headless_forbiddenEine Formularroute wurde weder von einem erlaubten Ursprung noch mit dem API-Key aufgerufen.
422headless_validation_failedPflichtfelder fehlen oder sind ungültig; data.errors nennt sie.
422headless_unknown_propertyEine Objektnummer in properties gehört zu keiner veröffentlichten Immobilie.
422headless_spam_rejectedDie Eingabe wurde als Spam abgewiesen.
429headless_rate_limitedZu viele Anfragen in dieser Stunde.
502headless_delivery_failedDie Anfrage ist gespeichert, konnte aber nicht an alle Empfänger zugestellt werden.
  • immomakler_headless_frontend_url ändert eine URL, die die Schnittstelle an das Frontend ausgibt. Parameter: die URL, die WordPress-ID der Immobilie (0 für die Immobilienliste) und die Art (property oder archive).
  • immomakler_headless_property ändert das JSON-Dokument einer Immobilie, bevor es ausgegeben und zwischengespeichert wird. Parameter: das Dokument, die WordPress-ID und die Form (summary oder full).
  • immomakler_headless_presets legt fest, welche Gestaltungsvorlagen der Abschnitt “Astro-Starter” zur Auswahl anbietet. Parameter: ein Array aus Vorlagen-Slug und Bezeichnung.
  • immomakler_headless_webhook_payload ändert die Nachricht des Webhooks, bevor sie signiert und gesendet wird. Parameter: die Nachricht als Array und der Name des Ereignisses (properties.changed oder ping).
  • immomakler_contact_property_url ändert die Adresse einer Immobilie in der E-Mail einer Kontaktanfrage. Bei aktivierter Schnittstelle mit hinterlegter Frontend-Adresse zeigt sie auf das Frontend. Parameter: die URL und die WordPress-ID der Immobilie.