API public · v1 · Mai 2026

API & Integrări CRM HomePitch

Această pagină descrie tot ce trebuie să știe un CRM imobiliar (RENET, REBS, ImmoFlux sau orice CRM nou) pentru a se putea integra cu HomePitch. Poți începe implementarea înainte de a fi aprobat de echipa noastră — aprobarea e necesară doar la momentul go-live pentru activarea limitei de plan a agenților.

Cuprins

1. Modele de integrare

HomePitch suportă două modele complementare, pe care le poți implementa independent:

ModelCine inițiazăCând e folosit
PullHomePitchSincronizare zilnică automată a feed-ului agentului (cron 03:30 UTC)
PushCRM externPublicare imediată la create/update în CRM sau click pe „Listează pe HomePitch”
Recomandare: implementează ambele. Pull garantează consistența, push oferă experiență instant agentului.

2. Autentificare & chei API

2.1 Cheia CRM → HomePitch citește CRM-ul tău

Fiecare agent (sau agenție) din CRM-ul tău trebuie să poată genera o cheie API proprie pe care o va introduce în HomePitch la /setari-crm. HomePitch trimite cheia în request-urile către API-ul tău în unul din formatele:

Authorization: <API_KEY>         # fără prefix Bearer (compatibil RENET/REBS)
# sau
?api_key=<API_KEY>              # query string
# sau
X-Api-Key: <API_KEY>            # header custom (acceptat)

Suportă toate trei — HomePitch alege în funcție de configurația CRM-ului.

2.2 Cheia HomePitch → CRM-ul tău apelează HomePitch

Pentru push, folosești endpoint-ul public HomePitch (vezi §4). Autentificarea se face cu cheia proprie a agentului din CRM-ul tău, transmisă în body ca inline_api_key. Nu ai nevoie de o cheie HomePitch dedicată în v1.

2.3 Chei de agenție (opțional, recomandat)

Dacă CRM-ul tău emite o singură cheie pe agenție care poate citi feed-ul tuturor agenților acelei agenții, marchează-o în documentația ta ca „agency-wide”. HomePitch o va salva în tabelul intern agency_keys și o va folosi ca fallback pentru agenții care nu și-au introdus încă o cheie proprie.

3. Pull — HomePitch citește CRM-ul tău

În fiecare noapte HomePitch apelează CRM-ul tău per-agent. Trebuie să expui:

Endpoint minimDescriere
GET /properties?limit=100&offset=NListare paginată a proprietăților agentului (filtrat prin cheia API)
GET /properties/{id}Detalii complete proprietate (folosit și de push)
GET /agents/me (recomandat)Identificare agent — returnează cel puțin { email, first_name, last_name, phone, agency_name }

Paginare

Filtre utile

4. Push — CRM → HomePitch punctual

Un singur endpoint universal:

POST https://bwfexvoapabfvkmmnxkg.supabase.co/functions/v1/crm-push-property
Headers:
  apikey: <SUPABASE_ANON_KEY_PUBLIC>   // cheia publică HomePitch, ok în cod client
  Content-Type: application/json

Body:
{
  "provider":       "renet" | "rebs" | "immoflux" | "custom",
  "external_id":    "12345",              // ID-ul proprietății în CRM-ul tău
  "inline_api_key": "<cheia agentului>",   // cheia lui în CRM-ul tău
  "callback_url":   "https://…"           // opțional, webhook status
}

Răspuns:

Redirect direct din browser

Poți plasa în interfața CRM-ului un buton „Listează pe HomePitch” care deschide:

https://homepitch.ro/crm{provider}/{external_id}?api_key=<API_KEY>

Exemple concrete existente: /crmrenet/12345, /crmrebs/98765.

5. Schema câmpurilor proprietate

Câmpuri pe care HomePitch le extrage automat. Trimite tot ce ai — restul sunt ignorate.

Câmp HomePitchTipObligatoriuDescriere
external_idstring✓ID-ul unic din CRM
titlestring✓Max 200 caractere
descriptiontext✓Recomandăm min 300 caractere
property_typeenum✓Vezi §6
transaction_typeenum✓vanzare | inchiriere
pricenumber✓În EUR (obligatoriu — HomePitch afișează doar EUR)
city_name, zone_name, streetstring✓ (oraș)Text liber, HomePitch normalizează
lat, lngnumber✓WGS84. Obligatoriu — proprietățile fără pin nu sunt importate
rooms, bedrooms, bathroomsint–
surface_usable, surface_built, surface_total, surface_landnumber (m²)–
floor, building_floorsint–floor acceptă și „P”, „D”, „M”
year_builtint–
images[]string[]–URL-uri absolute, HTTPS, max 40 img
video_link, virtual_tour_linkstring–YouTube / Matterport / URL
tags[]string[]–Slug-uri normalizate → §7
collab_commission_percentnumber–Comision colaborare (%)
date_added, date_updatedISO8601–Timezone recomandat: UTC
agent.emailstring✓Cheia de match cu contul HomePitch

6. Tipuri de proprietate

HomePitch folosește enum-ul intern din stânga. Dacă folosești coduri numerice (ca RENET), documentează-le clar — vom adăuga maparea în admin.

HomePitch enumRENETREBSSinonime acceptate
apartament1apartmentflat, condo
casa2housevila, duplex
birou3officeoffice_space
spatiu_comercial4commercialretail, shop
teren5landplot
spatiu_industrial6industrialwarehouse, hala

7. Facilități & tag-uri

Trimite tags[] ca slug-uri lowercase fără diacritice. HomePitch aplică un mapping configurabil tag → facilitate standard, editabil de admin.

Exemple: aer-conditionat, centrala-proprie, lift, parcare, balcon, terasa, gradina, piscina, boxa, mobilat, utilat, pet-friendly, prima-inchiriere.

8. Identificarea agenților

9. Limite per plan HomePitch

Se aplică pe numărul de proprietăți active, indiferent de provider CRM.

PlanProprietăți activeImport zilnic
Gratuit103 / zi
VIP3030 / zi
Pro10050 / zi

La depășire push returnează 402 plan_limit_reached, pull sare peste proprietățile suplimentare și trimite agentului email de upgrade. Limitele pot fi extinse manual la cerere.

10. Coduri de eroare

HTTPCodCauzăAcțiune recomandată
400bad_requestJSON invalidVerifică payload-ul
401invalid_api_keyCheia CRM nu e recunoscutăRegenerează în CRM și retrimite
402plan_limit_reachedAgentul a atins limita planuluiTrimite user-ul la /pricing
403agent_mismatchProprietatea aparține altui agentNu retrimite
404not_foundexternal_id nu există în feed-ul CRMVerifică ID
422invalid_payloadLipsesc câmpuri obligatorii (ex: lat/lng)Vezi details
429rate_limitedPrea multe push-uri < 1sBackoff exponențial
5xxserver_errorEroare HomePitchRetry cu backoff, apoi contact

11. Webhook-uri emise de HomePitch (opțional)

Dacă furnizezi callback_url în push, HomePitch trimite POST cu:

{
  "event":        "property.imported" | "property.updated" | "property.rejected",
  "external_id":  "12345",
  "property_url": "https://homepitch.ro/proprietate/…",
  "status":       "active" | "pending" | "rejected",
  "reason":       "..."   // doar la rejected
}

Semnătura HMAC (SHA-256) în header X-HomePitch-Signature, folosind secretul webhook pe care ți-l furnizăm la onboarding.

12. Onboarding & aprobare

  1. Implementează pull + push conform §3–§5 folosind orice cont de test.
  2. Testează pe endpoint-ul HomePitch de staging (cere-l pe email).
  3. Trimite pe [email protected]:
    • Documentația API-ului CRM-ului tău (link sau PDF).
    • URL-ul feed-ului și un exemplu de proprietate.
    • Cheie API de test pentru un agent demo.
  4. Echipa HomePitch adaugă providerul în Admin → CRM, activează maparea de tag-uri, și îți dă acces pentru agenții pilot.
  5. Go-live: extindem limitele agenților care solicită și adăugăm butonul „Setări CRM {provider}” în /setari-crm.
Poți începe implementarea acum, fără aprobare prealabilă. Schema din §5 și endpoint-ul din §4 sunt stabile.

13. Exemple end-to-end

Push punctual (curl)

curl -X POST https://bwfexvoapabfvkmmnxkg.supabase.co/functions/v1/crm-push-property \
  -H "apikey: <SUPABASE_ANON_KEY_PUBLIC>" \
  -H "Content-Type: application/json" \
  -d '{
        "provider": "custom",
        "external_id": "AB-1234",
        "inline_api_key": "sk_live_xxx",
        "callback_url": "https://crm.exemplu.ro/hooks/homepitch"
      }'

RENET (deja live)

curl -X POST https://bwfexvoapabfvkmmnxkg.supabase.co/functions/v1/crmrenet-import-property \
  -H "apikey: <SUPABASE_ANON_KEY_PUBLIC>" \
  -H "Content-Type: application/json" \
  -d '{"renet_id":"12345","inline_api_key":"<RENET_API_KEY>"}'

REBS (deja live)

curl -X POST https://bwfexvoapabfvkmmnxkg.supabase.co/functions/v1/crmrebs-import-property \
  -H "apikey: <SUPABASE_ANON_KEY_PUBLIC>" \
  -H "Content-Type: application/json" \
  -d '{"rebs_id":"98765","inline_api_key":"<REBS_API_KEY>"}'

Redirect browser

https://homepitch.ro/crmrenet/12345?api_key=<RENET_API_KEY>
https://homepitch.ro/crmrebs/98765?api_key=<REBS_API_KEY>

14. Suport