Vývojářská dokumentace · JSON REST API v1

Pro realitní kanceláře i soukromé klienty: vytvořte si klíč ve svém účtu a propojte své CRM nebo web. API přijímá a vrací JSON. Nové inzeráty se vytvářejí jako koncepty; fotografie a publikování mají samostatné endpointy.

Základní URL: https://doomio.cz/api/v1. Odesílejte svůj klíč pouze ze serveru přes HTTPS, v hlavičce Authorization: Bearer <key>. Klíče fungují nezávisle na relacích v prohlížeči. Zvolte přístup pouze pro čtení nebo pro čtení/zápis; klíče můžete zrušit ve svém účtu. Klíč může přistupovat pouze k vašim osobním inzerátům nebo k inzerátům vaší aktuální kanceláře. Při odchodu z kanceláře, deaktivaci účtu, vypršení platnosti nebo zrušení se klíč deaktivuje.

1. Vytvořte koncept

Každý nový inzerát potřebuje stabilní externalId z vašeho CRM, jedinečné v rámci vašeho osobního účtu nebo kanceláře. Duplikát vrátí 409; načtěte existující inzerát a upravte jej metodou PATCH. ID zůstávají rezervovaná, když je inzerát stažen.

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
  }'

Odpověď je 201 Created, {"data": {...}}, s ID inzerátu, hlavičkou Location a ETag. Text se zadává v sourceLocale; stávající pracovní postup překladu připraví ostatní jazykové verze webu.

2. Nahrajte fotografie a publikujte

curl https://doomio.cz/api/v1/properties/123/images \
  -H "Authorization: Bearer $DOOMIO_API_KEY" -F '[email protected]'

curl -X POST https://doomio.cz/api/v1/properties/123/publish \
  -H "Authorization: Bearer $DOOMIO_API_KEY"

Nahrávejte JPEG, PNG nebo WebP, maximálně 8 MiB a 40 megapixelů na obrázek, nejvýše 30 obrázků. Fotografie procházejí stejnou kontrolou jako při nahrání přes web. Publikování vyžaduje název, adresu, zemi, typ nemovitosti, alespoň jednu schválenou fotografii a oprávnění k publikaci. Inzeráty kanceláře se řídí stávajícími pravidly viditelnosti kanceláře; osobní inzeráty vyžadují aktivní publikaci zakoupenou v účtu Doomio. Propagační nabídky si zachovávají stávající limity a potvrzení práv. Prostřednictvím API klíčů nelze nakupovat tarify ani propagaci na sociálních sítích.

Zkontrolujte publiclyVisible, status a photoReviewError v odpovědi. Vypršený inzerát nebo neúspěšná kontrola fotografie nejsou veřejně viditelné. DELETE stáhne inzerát do konceptu; zachová jeho ID i historii. Odstranění poslední fotografie také stáhne inzerát.

Endpointy

Metoda a cestaChování
GET /propertiesVaše inzeráty, včetně konceptů. Volitelné limit (1–100, výchozí 50), after (kurzor ID), externalId, status (koncept/publikováno).
POST /propertiesVytvoří koncept. Povinné: externalId, title, sourceLocale, country, type, transactionType, price, currency.
GET /properties/{id}Jeden inzerát a jeho ETag.
PATCH /properties/{id}Aktualizuje zadaná pole; vynechaná pole zůstávají beze změny. externalId je neměnné. Vlastnictví, fakturace, sociální propagaci a platnost nelze prostřednictvím tohoto endpointu změnit.
DELETE /properties/{id}Stáhne inzerát; opakované volání jsou bezpečné.
POST /properties/{id}/publishOvěří a publikuje; platí stávající pravidla publikování.
POST /properties/{id}/imagesMultipart nahrání, pole file. Vrací inzerát s ID obrázku.
DELETE /properties/{id}/images/{imageId}Odstraní jeden z obrázků tohoto inzerátu.

Pole a odpovědi

Zapisovatelná pole: title, description, sourceLocale, type, transactionType, price, currency, country, address, city, postalCode, latitude, longitude, rooms, bedrooms, bathrooms, usableArea, landArea, contactEmail, contactPhone. externalId je přiřazeno při vytvoření. Neznámá pole vracejí 422. Přesné meze a podporované země/jazyky viz OpenAPI. Ceny jsou desetinné řetězce, plochy jsou v metrech čtverečních, souřadnice jsou číselné WGS84. Měnové hodnoty: CZK, EUR, USD, GBP, PLN. Typy: apartment, house, land, commercial, other, development. Transakce: sale, rent.

Seznamy vracejí {"data": [...], "pagination": {"limit": 50, "nextAfter": 123}}. Opakujte s ?after=123; nextAfter: null znamená konec. Inzerát z CRM můžete načíst pomocí ?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"}'

Volitelná hlavička If-Match při úpravě metodou PATCH, zveřejnění, stažení a práci s fotografiemi zabrání přepsání inzerátu změněného od vašeho posledního GET. Nesoulad vrátí 412; načtěte inzerát a vyřešte konflikt. Maximální JSON požadavek: 128 KiB. Limit: 120 ověřených požadavků za minutu na účet/kancelář napříč všemi jejími klíči; nadlimitní požadavky vrátí 429 a Retry-After: 60. Sledujte X-RateLimit-Remaining. Není vyžadován žádný přístup z prohlížeče přes cross-origin: integrace musí běžet na vašem serveru.

Chyby používají {"error":{"code":"validation_failed","message":"..."}}. Stavy: 400 chybně vytvořený požadavek, 401 chybějící/neplatný/vypršený klíč, 403 klíč jen pro čtení nebo chybějící oprávnění k publikaci, 404 inzerát/obrázek mimo váš rozsah nebo chybí, 405 metoda, 409 duplicitní externalId, 412 zastaralý ETag, 413 příliš velké nahrání/tělo, 415 Content-Type, 422 neplatná pole/ověření fotografie/publikování, 429 omezení rychlosti, 500 dočasná chyba serveru. Každá odpověď obsahuje X-Request-ID; uveďte jej při hlášení chyby, nikdy svůj tajný klíč.

Nainstalujte klienta

Vyžaduje Python 3.10 nebo novější, bez balíčků třetích stran. Stáhněte si klienta a soubor s klíčem .env, uložte oba mimo veřejný webový adresář a poté spusťte:

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 je pole objektů inzerátů ve formátu pro vytvoření. sync vyhledává externí ID, vytváří chybějící koncepty a aktualizuje stávající inzeráty. Nesmaže inzeráty, které v souboru chybí, automaticky nenahraje fotografie ani je nepublikuje. Nahrání/publikování/stažení jsou explicitní příkazy. Jde o obecný klient pro JSON integraci; existující CRM produkty stále potřebují vlastní mapování polí nebo konektor.