← leaply.ro

API pentru dezvoltatori

Conectează Leaply la CRM-ul tău, la site, la Zapier/Make sau la orice altă platformă. API REST simplu, JSON, autentificat cu cheie per cont.

Autentificare

Generezi cheia din Setări & Plan → API (o vezi o singură dată — păstreaz-o în siguranță). O trimiți în header la fiecare request:

Authorization: Bearer lp_xxxxxxxxxxxxxxxx

Toate endpoint-urile au baza https://leaply.ro/api/v1. Răspunsurile sunt JSON; erorile au forma {"error":"mesaj"} cu status 4xx.

Lead-uri

POST /leads — creezi un lead (ex. dintr-un formular propriu sau CRM). Leaply pornește conversația și îl califică automat.

curl -X POST https://leaply.ro/api/v1/leads \
  -H "Authorization: Bearer lp_..." -H "Content-Type: application/json" \
  -d '{"name":"Ion Popescu","phone":"+40712345678","message":"Vreau o ofertă pentru termopane","source":"site-propriu","channel":"api"}'

// 201 → {"ok":true,"lead_id":"ld_...","conversation_id":"cv_..."}

GET /leads — listă lead-uri, cele mai noi primele. Parametri: score (hot/warm/cold), limit (max 200), offset.

curl "https://leaply.ro/api/v1/leads?score=hot&limit=50" -H "Authorization: Bearer lp_..."

// {"data":[{"id":"ld_...","name":"Ion Popescu","phone":"+40712...","score":"hot",
//   "conversation_id":"cv_...","channel":"whatsapp","status":"booked",
//   "qualification":{"q1":"tripan","q2":"urgent","q3":"Oradea"},"created_at":"..."}], "limit":50,"offset":0}

Conversații

GET /conversations — filtre: status (active/qualified/booked/lost), channel (whatsapp/messenger/instagram/webform/voice/api), limit, offset.

curl "https://leaply.ro/api/v1/conversations?status=booked" -H "Authorization: Bearer lp_..."

GET /conversations/{id} — conversația completă, cu toate mesajele (direcție, expeditor, text, timestamp).

curl https://leaply.ro/api/v1/conversations/cv_abc123 -H "Authorization: Bearer lp_..."

// {"data":{"id":"cv_...","status":"booked","lead_name":"Ion Popescu",
//   "messages":[{"direction":"in","sender":"lead","body":"Bună ziua...","created_at":"..."}, ...]}}

Mesaje

POST /messages — trimiți un mesaj manual într-o conversație (de la un agent uman, din CRM-ul tău). Mesajul pleacă pe canalul original al lead-ului.

curl -X POST https://leaply.ro/api/v1/messages \
  -H "Authorization: Bearer lp_..." -H "Content-Type: application/json" \
  -d '{"conversation_id":"cv_abc123","body":"Bună ziua! Sunt Andrei, colegul care vine la măsurătoare."}'

// {"ok":true,"delivered":true}

Statistici

GET /stats — KPI-urile contului: lead-uri, calificate, programări, timp mediu de răspuns, plan și utilizare lunară.

curl https://leaply.ro/api/v1/stats -H "Authorization: Bearer lp_..."

// {"data":{"leads":124,"qualified":61,"booked":38,"avgSec":4,"savedLei":64050,
//   "plan":"Pro","usage_month":212,"usage_limit":1000}}

Webhooks (Leaply → platforma ta)

Pe lângă API, Leaply poate împinge evenimente către un URL al tău (setat în Setări & Plan → CRM / Webhook), semnate HMAC-SHA256 în header-ul X-Leaply-Signature:

POST https://crm-ul-tau.ro/webhook
{"event":"lead.created","account_id":"acc_...","data":{"lead":{...},"conversation":{...}}}

// evenimente: lead.created (lead nou), lead.updated (mesaj nou / schimbare status, inclusiv qualified și booked), billing.upgraded

Verifici semnătura: "sha256=" + hex(hmac_sha256(secret, raw_body)) === X-Leaply-Signature.

Limite & bune practici

Max 200 de rezultate per pagină (folosește offset). Cheia se poate regenera oricând din Setări (cea veche moare instant). Pentru volume mari sau nevoi speciale: salut@leaply.ro.