Entwicklerdokumentation · JSON REST API v1
Für Immobilienagenturen und Privatkunden: Erstellen Sie in Ihrem Konto einen Schlüssel und verbinden Sie Ihr CRM oder Ihre Website. Die API akzeptiert und gibt JSON zurück. Neue Objekte werden als Entwürfe erstellt; Fotos und Veröffentlichung haben separate Endpunkte.
Basis-URL: https://doomio.cz/api/v1. Senden Sie Ihren Schlüssel nur von Ihrem Server über HTTPS, im Header Authorization: Bearer <key>. Schlüssel funktionieren unabhängig von Browsersitzungen. Wählen Sie Nur-Lese- oder Lese-/Schreibzugriff; widerrufen Sie Schlüssel in Ihrem Konto. Ein Schlüssel kann nur auf Ihre persönlichen Objekte oder die Objekte Ihrer aktuellen Agentur zugreifen. Wenn Sie die Agentur verlassen, das Konto deaktiviert wird, der Schlüssel abläuft oder widerrufen wird, wird er deaktiviert.
1. Entwurf erstellen
Jedes neue Objekt benötigt eine stabile externalId aus Ihrem CRM, die innerhalb Ihres persönlichen Kontos oder Ihrer Agentur eindeutig ist. Ein Duplikat gibt 409 zurück; rufen Sie das vorhandene Objekt ab und PATCH es. IDs bleiben reserviert, wenn ein Objekt zurückgezogen wird.
curl https://doomio.cz/api/v1/properties \
-H "Authorization: Bearer $DOOMIO_API_KEY" \
-H 'Content-Type: application/json' \
--data '{
"externalId": "CRM-12345",
"title": "Apartment in Valencia",
"description": "A bright two-bedroom apartment near the park.",
"sourceLocale": "en",
"country": "es", "city": "Valencia",
"address": "Valencia, Spain",
"type": "apartment", "transactionType": "sale",
"price": "245000.00", "currency": "EUR",
"bedrooms": 2, "usableArea": 78.5
}'
Die Antwort ist 201 Created, {"data": {...}}, mit der Objekt-ID, einem Header Location und einem ETag. Text wird in sourceLocale bereitgestellt; der vorhandene Übersetzungs-Workflow bereitet die anderen Website-Sprachen vor.
2. Fotos hochladen und veröffentlichen
curl https://doomio.cz/api/v1/properties/123/images \
-H "Authorization: Bearer $DOOMIO_API_KEY" -F 'file=@living-room.jpg'
curl -X POST https://doomio.cz/api/v1/properties/123/publish \
-H "Authorization: Bearer $DOOMIO_API_KEY"
Laden Sie JPEG, PNG oder WebP hoch, maximal 8 MiB und 40 Megapixel pro Bild, maximal 30 Bilder. Fotos durchlaufen dieselbe Prüfung wie Web-Uploads. Für die Veröffentlichung sind Titel, Adresse, Land, Objektart, mindestens ein freigegebenes Foto und eine Veröffentlichungserlaubnis erforderlich. Agenturobjekte folgen den bestehenden Sichtbarkeitsregeln der Agentur; persönliche Objekte benötigen eine aktive, im Doomio-Konto erworbene Veröffentlichung. Werbeangebote behalten ihre bestehenden Grenzen und die Bestätigung der Rechte bei. API-Schlüssel kaufen keine Tarife oder Social Promotion.
Prüfen Sie publiclyVisible, status und photoReviewError in der Antwort. Ein abgelaufenes Objekt oder eine fehlgeschlagene Fotoprüfung ist öffentlich nicht sichtbar. DELETE zieht ein Objekt in einen Entwurf zurück; dabei bleiben seine ID und sein Verlauf erhalten. Das Entfernen des letzten Fotos zieht das Objekt ebenfalls zurück.
Endpunkte
| Methode und Pfad | Verhalten |
|---|---|
GET /properties | Ihre Objekte, einschließlich Entwürfen. Optional limit (1–100, Standard 50), after (ID-Cursor), externalId, status (Entwurf/veröffentlicht). |
POST /properties | Einen Entwurf erstellen. Erforderlich: externalId, Titel, sourceLocale, Land, Typ, transactionType, Preis, Währung. |
GET /properties/{id} | Ein Objekt und seine ETag. |
PATCH /properties/{id} | Übermittelte Felder aktualisieren; nicht übermittelte Felder bleiben unverändert. externalId ist unveränderlich. Eigentum, Abrechnung, Social Promotion und Gültigkeit können über diesen Endpunkt nicht geändert werden. |
DELETE /properties/{id} | Das Objekt zurückziehen; wiederholte Aufrufe sind sicher. |
POST /properties/{id}/publish | Validieren und veröffentlichen; es gelten die bestehenden Veröffentlichungsregeln. |
POST /properties/{id}/images | Multipart-Upload, Feld file. Gibt das Objekt mit der Bild-ID zurück. |
DELETE /properties/{id}/images/{imageId} | Entfernt eines der Bilder dieses Objekts. |
Felder und Antworten
Schreibbare Felder: title, description, sourceLocale, type, transactionType, price, currency, country, address, city, postalCode, latitude, longitude, rooms, bedrooms, bathrooms, usableArea, landArea, contactEmail, contactPhone. externalId wird bei der Erstellung zugewiesen. Unbekannte Felder geben 422 zurück. Siehe OpenAPI für exakte Grenzen und unterstützte Länder/Sprachen. Preise sind Dezimalzeichenfolgen, Flächen sind Quadratmeter, Koordinaten sind numerische WGS84. Währungen: CZK, EUR, USD, GBP, PLN. Typen: apartment, house, land, commercial, other, development. Transaktionen: sale, rent.
Listen geben {"data": [...], "pagination": {"limit": 50, "nextAfter": 123}} zurück. Wiederholen Sie mit ?after=123; nextAfter: null bedeutet das Ende. Sie können ein CRM-Objekt mit ?externalId=CRM-12345 abrufen.
curl -X PATCH https://doomio.cz/api/v1/properties/123 \
-H "Authorization: Bearer $DOOMIO_API_KEY" \
-H 'Content-Type: application/json' \
-H 'If-Match: "ETAG-FROM-LAST-GET"' \
--data '{"price":"239000.00"}'
Ein optionales If-Match bei PATCH, publish, withdraw und Bildoperationen verhindert das Ersetzen eines Objekts, das sich seit Ihrem letzten GET geändert hat. Eine Abweichung gibt 412 zurück; rufen Sie das Objekt ab und lösen Sie den Konflikt. Maximale JSON-Anfrage: 128 KiB. Limit: 120 authentifizierte Anfragen pro Minute und Konto/Agentur über alle zugehörigen Schlüssel hinweg; überzählige Anfragen geben 429 und Retry-After: 60 zurück. Prüfen Sie X-RateLimit-Remaining. Für browserübergreifenden Zugriff ist keine Unterstützung erforderlich: Integrationen gehören auf Ihren Server.
Fehler verwenden {"error":{"code":"validation_failed","message":"..."}}. Statuscodes: 400 fehlerhafte Anfrage, 401 fehlender/ungültiger/abgelaufener Schlüssel, 403 schreibgeschützter Schlüssel oder Veröffentlichungserlaubnis fehlt, 404 Objekt/Bild außerhalb Ihres Bereichs oder nicht vorhanden, 405 Methode, 409 doppeltes externalId, 412 veraltetes ETag, 413 Upload/Body zu groß, 415 Content-Type, 422 ungültige Felder/Foto-/Veröffentlichungsprüfung, 429 Ratenlimit, 500 vorübergehender Serverfehler. Jede Antwort enthält ein X-Request-ID; geben Sie es bei der Meldung eines Fehlers an, niemals Ihren geheimen Schlüssel.
Client installieren
Erfordert Python 3.10 oder neuer, ohne Pakete von Drittanbietern. Laden Sie den Client und die .env-Schlüsseldatei herunter, bewahren Sie beide außerhalb eines öffentlichen Webverzeichnisses auf und führen Sie dann aus:
chmod 600 doomio-api-key.env
python3 doomio_client.py --env doomio-api-key.env list
python3 doomio_client.py --env doomio-api-key.env sync listings.json
python3 doomio_client.py --env doomio-api-key.env upload 123 living-room.jpg
python3 doomio_client.py --env doomio-api-key.env publish 123
python3 doomio_client.py --env doomio-api-key.env withdraw 123
listings.json ist ein Array von Objekten im Erstellungsformat. sync sucht externe IDs, erstellt fehlende Entwürfe und aktualisiert vorhandene Objekte. Es löscht keine Objekte, die in der Datei fehlen, lädt keine Fotos automatisch hoch und veröffentlicht sie nicht. Upload/publish/withdraw sind explizite Befehle. Dies ist ein generischer JSON-Integrationsclient; bestehende CRM-Produkte benötigen weiterhin ihr eigenes Feldmapping oder einen eigenen Connector.