Documentație feed-uri
Specificații pentru sincronizarea automată a anunțurilor pe iMove: XML, CSV, JSON sau prin API.
Câmpuri standard
Indiferent de format (XML/CSV/JSON), iMove mapează coloanele tale la următoarea structură canonică:
| Câmp | Tip | Obligatoriu | Aliasuri acceptate |
|---|---|---|---|
| externalId | string | — | id, reference, ref, cod |
| title | string | da | titlu, name, denumire |
| description | string | da | descriere, desc, detalii |
| price | number | da | pret, cost, amount |
| currency | EUR|RON|USD | — | moneda, valuta |
| transactionType | SALE|RENT | da | tranzactie, tip |
| propertyType | enum | da | tip_proprietate, tipimobil |
| citySlug | string | — | city, oras, localitate |
| districtSlug | string | — | district, sector, cartier |
| addressPublic | string | — | adresa, address |
| rooms | integer | — | camere, nr_camere |
| bathrooms | integer | — | bai, nr_bai |
| usableArea | number (mp) | — | suprafata, mp, sqm |
| floor | integer | — | etaj |
| totalFloors | integer | — | total_etaje |
| constructionYear | integer | — | an_constructie, an |
| imageUrls | string[] | — | images, imagini, photos |
| agentPhone | string | — | phone, telefon |
| agentEmail | string | — |
Pentru valori enum: transactionType = SALE/RENT (acceptăm și „vanzare"/„inchiriere"), propertyType ∈ {APARTMENT, STUDIO, HOUSE, LAND, COMMERCIAL, OFFICE} (acceptăm și „apartament"/„casa"/„teren").
Reguli pentru externalId
- Identifică unic anunțul în sistemul agenției tale.
- La sync, dacă un
externalIddeja există în iMove pentru agenția ta → anunțul este actualizat (nu se creează duplicat). - Dacă un
externalIdexistent în iMove nu apare în feed la sync, anunțul este arhivat automat (status HIDDEN). - Maxim 120 caractere alfanumerice + dash/underscore.
Reguli pentru imagini
- URL-uri publice HTTPS, accesibile fără autentificare.
- Format: JPG, PNG, WebP. Recomandat: minimum 1200×800 px.
- Maxim 40 imagini per anunț.
- În CSV, separă URL-urile cu
;sau,. În XML, folosește tag-uri<image>…</image>repetate. - La fiecare sync, dacă lista de imagini din feed se modifică, imaginile vechi sunt înlocuite.
Feed XML
Structură recomandată: container repetat <listing> cu câmpurile de mai sus ca tag-uri imediate.
<?xml version="1.0" encoding="UTF-8"?> <listings> <listing> <externalId>AG-12345</externalId> <title>Apartament 2 camere, Pipera</title> <description>...</description> <price>129500</price> <currency>EUR</currency> <transactionType>SALE</transactionType> <propertyType>APARTMENT</propertyType> <city>bucuresti</city> <rooms>2</rooms> <usableArea>62</usableArea> <images> <image>https://cdn.agentia.ro/12345/01.jpg</image> <image>https://cdn.agentia.ro/12345/02.jpg</image> </images> </listing> </listings>Descarcă exemplu complet (XML)
Feed CSV
Acceptăm separator , ; | sau tab (auto-detectat). Prima linie = header. Encoding UTF-8 (BOM-ul se ignoră automat).
externalId,title,price,currency,transactionType,propertyType,city,rooms,usableArea,imageUrls AG-12345,"Apartament 2 camere",129500,EUR,SALE,APARTMENT,bucuresti,2,62,"https://cdn.agentia.ro/12345/01.jpg;https://cdn.agentia.ro/12345/02.jpg" AG-12346,"Casă 4 camere",325000,EUR,SALE,HOUSE,cluj-napoca,4,140,"https://cdn.agentia.ro/12346/01.jpg"Descarcă exemplu complet (CSV)
Feed JSON
Răspunde cu un obiect care conține un array listings (sau properties sau items).
API agenție (planuri Pro+)
Generează cheie din Agenție → API. Cheia apare o singură dată — salveaz-o.
Autentificare
Authorization: Bearer lk_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxx
Endpoints
# Listează anunțurile agenției
GET /api/agency-api/properties?page=1&pageSize=50
# Bulk upsert (creează SAU actualizează după externalId)
POST /api/agency-api/properties
Content-Type: application/json
{ "properties": [ {"externalId":"AG-1","title":"...","price":120000, ...} ] }
# Anunț unic după externalId
GET /api/agency-api/properties/AG-12345
PUT /api/agency-api/properties/AG-12345
DELETE /api/agency-api/properties/AG-12345
# Trigger sync feeds
POST /api/agency-api/sync
{ "feedId": "..." } # opțional, dacă lipsește se sync toate feed-urile ACTIVERate limit per cheie: configurat conform planului tău (60–600 req/min). Toate request-urile sunt înregistrate pentru audit.
Gata de implementare?
Configurează primul tău feed în mai puțin de 5 minute.
Mergi la setări feed