Ontwikkelaarsdocumentatie · JSON REST API v1
Voor makelaars en particuliere klanten: maak een sleutel aan in uw account en koppel uw CRM of website. De API accepteert en retourneert JSON. Nieuwe vermeldingen worden als concepten aangemaakt; foto’s en publiceren hebben aparte eindpunten.
Basis-URL: https://doomio.cz/api/v1. Verstuur uw sleutel alleen vanaf uw server via HTTPS, in de Authorization: Bearer <key>-header. Sleutels werken onafhankelijk van browsersessies. Kies alleen-lezen- of lees/schrijf-toegang; trek sleutels in via uw account. Een sleutel heeft alleen toegang tot uw persoonlijke vermeldingen of de vermeldingen van uw huidige bureau. Verlaten van het bureau, deactivering van het account, verlopen of intrekken schakelt de sleutel uit.
1. Maak een concept aan
Elke nieuwe vermelding heeft een stabiele externalId uit uw CRM nodig, uniek binnen uw persoonlijke account of bureau. Een duplicaat geeft 409 terug; haal de bestaande vermelding op en PATCH deze. ID’s blijven gereserveerd wanneer een vermelding wordt ingetrokken.
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
}'
Het antwoord is 201 Created, {"data": {...}}, met de vermelding-ID, een Location-header en een ETag. Tekst wordt geleverd in sourceLocale; de bestaande vertaalworkflow bereidt de andere websitetalen voor.
2. Foto’s uploaden en publiceren
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"
Upload JPEG, PNG of WebP, maximaal 8 MiB en 40 megapixels per afbeelding, maximaal 30 afbeeldingen. Foto’s doorlopen dezelfde controle als webuploads. Publiceren vereist titel, adres, land, type object, ten minste één goedgekeurde foto en een publicatierecht. Bureauvermeldingen volgen de bestaande zichtbaarheidsregels voor bureaus; persoonlijke vermeldingen hebben een actieve publicatie nodig die is aangeschaft in het Doomio-account. Promotieaanbiedingen behouden hun bestaande limieten en bevestiging van rechten. API-sleutels kopen geen abonnementen of sociale promotie.
Controleer publiclyVisible, status en photoReviewError in het antwoord. Een verlopen vermelding of een mislukte fotobeoordeling is niet openbaar zichtbaar. DELETE trekt een vermelding in naar een concept; daarbij blijven de ID en geschiedenis behouden. Het verwijderen van de laatste foto trekt de vermelding ook in.
Eindpunten
| Methode en pad | Gedrag |
|---|---|
GET /properties | Uw vermeldingen, inclusief concepten. Optioneel limit (1–100, standaard 50), after (ID-cursor), externalId, status (concept/gepubliceerd). |
POST /properties | Maak een concept aan. Vereist: externalId, title, sourceLocale, country, type, transactionType, price, currency. |
GET /properties/{id} | Één vermelding en de bijbehorende ETag. |
PATCH /properties/{id} | Werk opgegeven velden bij; weggelaten velden blijven ongewijzigd. externalId is onveranderlijk. Eigendom, facturering, sociale promotie en geldigheid kunnen via dit eindpunt niet worden gewijzigd. |
DELETE /properties/{id} | Trek de vermelding in; herhaalde aanroepen zijn veilig. |
POST /properties/{id}/publish | Valideer en publiceer; bestaande publicatieregels zijn van toepassing. |
POST /properties/{id}/images | Multipart-upload, veld file. Retourneert de vermelding met de afbeeldings-ID. |
DELETE /properties/{id}/images/{imageId} | Verwijder een van de afbeeldingen van deze vermelding. |
Velden en reacties
Beschrijfbare velden: title, description, sourceLocale, type, transactionType, price, currency, country, address, city, postalCode, latitude, longitude, rooms, bedrooms, bathrooms, usableArea, landArea, contactEmail, contactPhone. externalId wordt toegewezen bij aanmaak. Onbekende velden geven 422 terug. Zie OpenAPI voor exacte grenzen en ondersteunde landen/talen. Prijzen zijn decimale tekenreeksen, oppervlakken zijn in vierkante meters, coördinaten zijn numeriek WGS84. Valutawaarden: CZK, EUR, USD, GBP, PLN. Typen: apartment, house, land, commercial, other, development. Transacties: sale, rent.
Lijsten geven {"data": [...], "pagination": {"limit": 50, "nextAfter": 123}} terug. Herhaal met ?after=123; nextAfter: null betekent het einde. U kunt een CRM-vermelding ophalen met ?externalId=CRM-12345.
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"}'
Optionele If-Match op PATCH, publish, withdraw en afbeeldingsbewerkingen voorkomt het vervangen van een vermelding die sinds uw laatste GET is gewijzigd. Een mismatch geeft 412 terug; haal de vermelding op en los het conflict op. Maximale JSON-request: 128 KiB. Limiet: 120 geverifieerde aanvragen per minuut per account/bureau over alle sleutels samen; te veel aanvragen geven 429 en Retry-After: 60 terug. Controleer X-RateLimit-Remaining. Er is geen cross-origin browsertoegang nodig: integraties horen op uw server.
Fouten gebruiken {"error":{"code":"validation_failed","message":"..."}}. Statussen: 400 onjuist gevormde aanvraag, 401 ontbrekende/ongeldige/verlopen sleutel, 403 alleen-lezen sleutel of publicatierecht ontbreekt, 404 vermelding/afbeelding buiten uw bereik of afwezig, 405 methode, 409 dubbele externalId, 412 verouderde ETag, 413 te grote upload/body, 415 Content-Type, 422 ongeldige velden/foto/publicatievalidatie, 429 snelheidslimiet, 500 tijdelijke serverfout. Elke reactie bevat een X-Request-ID; geef die door wanneer u een fout meldt, nooit uw geheime sleutel.
Installeer de client
Vereist Python 3.10 of nieuwer, zonder externe packages. Download de client en het .env-sleutelbestand, bewaar beide buiten een openbare webmap en voer dan het volgende uit:
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 is een array van vermeldingobjecten in het aanmaakformaat. sync zoekt externe ID’s op, maakt ontbrekende concepten aan en werkt bestaande vermeldingen bij. Het verwijdert geen vermeldingen die niet in het bestand staan, uploadt foto’s niet automatisch en publiceert ze niet. Upload/publish/withdraw zijn expliciete opdrachten. Dit is een generieke JSON-integratieclient; bestaande CRM-producten hebben nog steeds hun eigen veldmapping of connector nodig.