Skip to main content
Seeki.eu

Agency Import API

Nahrávajte inzeráty do Seeki cez API.

Hromadne importujte inzeráty nehnuteľností z vášho CRM alebo systému správy nehnuteľností. Jeden endpoint, stav pre každú položku, automatické TTL.

Získať API kľúč

Prístup k Agency Import API vyžaduje aktívne predplatné agentúry Seeki. Súčasťou každého predplatného je jeden API kľúč viazaný na váš agentúrny účet.

Predplaťte si na stránke stránka Pre agentov a začnite.

Rozhranie pre správu kľúčov (zobrazenie, rotácia, zrušenie) pripravujeme v niektorej z budúcich aktualizácií nástenky. Zatiaľ vám API kľúč zašleme e-mailom pri aktivácii predplatného. Ak potrebujete nový kľúč, kontaktujte info@seeki.eu.

Autentifikácia

Každá požiadavka musí obsahovať váš API kľúč ako Bearer token v hlavičke Authorization.

HTTP header
Authorization: Bearer seeki_live_your_key_here

Kľúče začínajúce na seeki_live_ sú produkčné. Staging kľúče začínajú na seeki_test_. Medzi prostrediami nie sú zameniteľné.

Váš prvý import

Pošlite POST požiadavku na /v1/listings s telom JSON obsahujúcim pole listings. Každý prvok predstavuje jednu nehnuteľnosť.

curl
curl -X POST https://ingest.seeki.eu/v1/listings \
  -H "Authorization: Bearer seeki_live_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "listings": [
      {
        "external_id": "crm-listing-00123",
        "listing_type": "SELL",
        "real_estate_type": "APARTMENT",
        "price": 320000,
        "currency": "EUR",
        "address": {
          "street": "Wenceslas Square 1",
          "city": "Prague",
          "country_code": "CZ",
          "postal_code": "11000"
        },
        "name": "Sunny 2-bedroom apartment, Wenceslas Square",
        "floorage": 65
      }
    ]
  }'

Úspešná dávka vráti HTTP 200 s poliami accepted a rejected:

200 OK
{
  "accepted": [
    { "external_id": "crm-listing-00123", "import_item_id": "uuid-…" }
  ],
  "rejected": []
}

Štruktúra požiadavky

Telo na najvyššej úrovni je { listings: [...] }. Povinné polia pre každý inzerát:

PolePovinné?Poznámky
external_idPovinnéYour CRM’s unique ID. Used for idempotent re-imports and deduplication.
listing_typePovinnéSELL alebo RENT.
real_estate_typePovinnéAPARTMENT, HOUSE, LAND, COMMERCIAL alebo OTHER.
pricePovinnéČíselná hodnota. Pre kód podľa ISO 4217 použite pole currency (predvolene EUR).
address OR coordinatesPovinnéUveďte buď objekt address (street, city, country_code), alebo súradnice ({ lat, lng }). Aspoň jedna možnosť musí byť prítomná.
currencyVoliteľnéKód podľa ISO 4217, napr. EUR, CZK, PLN. Predvolene EUR.
name, descriptionVoliteľnéNázov inzerátu a voľný text popisu.
floorage, floor, roomsVoliteľnéVeľkosť nehnuteľnosti v m², číslo poschodia a počet izieb.
imagesVoliteľnéPole verejných URL adries obrázkov. Importný worker ich stiahne a uloží do cache.
contactVoliteľnéMeno agenta, e-mail a telefón pre smerovanie dopytov.

Kompletnú schému so všetkými voliteľnými poliami nájdete v interaktívna referencia API.

Štruktúra odpovede a chyby

Endpoint /v1/listings vždy vráti HTTP 200 OK, pokiaľ je samotná požiadavka správne sformovaná (platný JSON, správna autentifikačná hlavička, dodržané veľkostné limity). Zlyhania jednotlivých inzerátov sa hlásia v poli rejected — nie ako HTTP chybové kódy.

Každá zamietnutá položka obsahuje external_id, error_code a čitateľnú správu. Chyby na úrovni dávky (zlá autentifikácia, prekročená veľkosť) vrátia HTTP status iný ako 200 s poľom error_code na najvyššej úrovni.

Kódy chýb

Kódy na úrovni dávky vracajú HTTP chyby. Kódy pre jednotlivé položky sa objavujú v poli rejected odpovede 200.

error_codeHTTP / rozsahVýznam
MISSING_AUTHORIZATION401Nebola odoslaná hlavička Authorization.
INVALID_KEY401Kľúč sa nenašiel, bol zrušený alebo jeho platnosť vypršala.
SUBSCRIPTION_INACTIVE403The agency’s subscription is not active or past_due.
PAYLOAD_TOO_LARGE413Telo požiadavky prekračuje limit 25 MB.
TOO_MANY_ITEMS413Pole listings obsahuje viac ako 5 000 položiek.
VALIDATION_FAILEDna položkuJedno alebo viac povinných polí chýba alebo má neplatnú hodnotu. Detaily nájdete v poli message.
GEOCODE_ADDRESS_NOT_FOUNDna položkuZadaná adresa sa nedala previesť na súradnice. Overte street, city a country_code.
GEOCODE_COORDINATES_INVALIDna položkuZadané lat/lng sú mimo platného rozsahu (lat ±90, lng ±180).
INFRA_QUEUE_REJECTEDna položkuFront workflow zamietol položku, zvyčajne z dôvodu dočasného preťaženia. Skúste to znovu po krátkej pauze.
INFRA_LOSTna položkuWorkflow bol prijatý, ale jeho výsledok sa nikdy nezaznamenal. Použite retry endpoint.
INTERNAL_ERRORna položkuVyskytla sa neočakávaná serverová chyba. Opakovanie môže pomôcť; ak problém pretrváva, kontaktujte podporu.

Idempotencia / opakované importy

Re-posting a listing with the same external_id updates the existing record — it does not create a duplicate. The listing’s TTL is refreshed on every successful import.

Interne každá importovaná položka zodpovedá jednému Cloudflare Workflow s ID:

Workflow ID pattern
agency-{agency_id}-{external_id}

Expirácia inzerátu

Každý importovaný inzerát má TTL 60 dní od posledného úspešného importu. Po vypršaní TTL je inzerát automaticky stiahnutý zo zverejnenia denným cron jobom.

Ak chcete, aby bol inzerát zverejnený trvalo, znovu ho importujte (aj s identickými údajmi) pred uplynutím 60-dňového okna. Odporúčaným postupom je nočná opätovná synchronizácia vašich aktívnych inzerátov.

Stav a opakovanie

Použite GET /v1/import-items/{import_item_id}/status na zistenie stavu spracovania jednej položky. Hodnota import_item_id sa vracia v poli accepted v pôvodnej POST odpovedi.

GET /import-items/{id}/status
curl https://ingest.seeki.eu/v1/import-items/{import_item_id}/status \
  -H "Authorization: Bearer seeki_live_your_key_here"
Response
{
  "import_item_id": "uuid-…",
  "external_id": "crm-listing-00123",
  "status": "completed",
  "listing_id": "uuid-listing"
}

Ak položka skončí v stave INFRA_LOST alebo INFRA_QUEUE_REJECTED, znovu ju zaraďte do frontu bez opätovného odoslania celej dávky:

POST /import-items/{id}/retry
curl -X POST https://ingest.seeki.eu/v1/import-items/{import_item_id}/retry \
  -H "Authorization: Bearer seeki_live_your_key_here"

Limity

  • Veľkosť tela: maximálne 25 MB na požiadavku.
  • Položiek na požiadavku: maximálne 5 000. Väčšie dávky rozdeľte.
  • Aktuálne nie je vynútený žiadny limit QPS. Veľmi veľké nárazové prevádzky môžu byť automaticky obmedzené; objemné synchronizácie rozložte do viacerých požiadaviek.

Spustenie do produkcie

K dispozícii sú dve oddelené prostredia. API kľúče sú viazané na prostredie — produkčný kľúč nebude fungovať na stagingu a naopak.

ProstredieZákladná URL
Staginghttps://ingest.seeki.store/v1
Produkciahttps://ingest.seeki.eu/v1

Všetky endpointy (/listings, /import-items/{id}/status, /import-items/{id}/retry) sú v oboch prostrediach identické.

Pripravení na integráciu?

Otvorte interaktívnu referenciu, kde si môžete preskúmať všetky polia, vyskúšať požiadavky priamo v prehliadači a stiahnuť JSON Schema pre váš validátor.

Používame cookies na zlepšenie vášho zážitku na našom webe. Zásady ochrany osobných údajov