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_xxxxxxxxxxxxxxxxToate 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). Lead-ul apare imediat în inbox, cu notificare către echipă; de acolo îl preiei sau îi scrii direct.
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":800}}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). Câmpurile lead-ului vin și la top level, ca payload-ul să intre direct în CRM-urile care așteaptă un obiect plat, fără adaptor la mijloc:
POST https://crm-ul-tau.ro/webhook
X-Leaply-Signature: sha256=<hmac>
X-Webhook-Secret: <secretul tau>
{"event":"lead.created","account_id":"acc_...","ts":"2026-09-17T17:40:00.000Z",
"name":"Andrei Pop","email":"andrei@exemplu.ro","phone":"+40722333444",
"website":"exemplu.ro","service":"Formular / chat web","source":"leaply",
"message":"q1: 25.000 lei/luna | Ultimul mesaj: ... | Scor: hot",
"channel":"webform","score":"hot","conversation_url":"https://leaply.ro/app/conversation/cv_...",
"page_url":"https://exemplu.ro/servicii/","landing_url":"https://exemplu.ro/?utm_source=google&gclid=...",
"referrer":"https://www.google.com/","utm_source":"google","utm_medium":"cpc","utm_campaign":"...","gclid":"...",
"data":{"conversation_id":"...","channel":"webform","score":"hot","status":"qualified"}}
// evenimente: lead.created (lead nou), lead.updated (mesaj nou / schimbare status, inclusiv qualified si booked), billing.upgraded
// telefonul, email-ul si site-ul se extrag din mesajele omului, cand le-a dat; altfel lipsesc.
// page_url / landing_url / referrer / utm_* / gclid / fbclid vin doar din chatul de pe site (widget).
// Optiune per cont: „doar lead-uri cu date de contact" — atunci pleaca doar evenimentele lead.* cu telefon sau email.Verifici semnătura: "sha256=" + hex(hmac_sha256(secret, raw_body)) === X-Leaply-Signature. Dacă CRM-ul tău verifică un secret simplu, compară direct X-Webhook-Secret. Structura data rămâne neschimbată — integrările existente nu se rup.
Zapier — lead-urile Leaply în orice aplicație (fără cod)
Nu trebuie să scrii niciun rând de cod ca să duci lead-urile în CRM, Google Sheets, Slack sau email:
1. În Zapier: Create Zap → Trigger: "Webhooks by Zapier" → "Catch Hook" → copiază URL-ul generat.
2. În Leaply: Setări & Plan → Integrare CRM (webhook) → lipește URL-ul → Salvează.
3. Trimite-ți un mesaj de test pe chat-ul de pe site → Zapier prinde evenimentul "lead.created".
4. Action: alege aplicația ta (HubSpot, Pipedrive, Google Sheets, Slack...) și mapează câmpurile:
name, phone, email, website, service — sau, daca vrei detaliul brut, data.channel si data.status.Make (Integromat) — scenariu gata făcut
Descarcă blueprint-ul Leaply pentru Make, apoi: Make → Create a new scenario → Import Blueprint → primești modulul de webhook preconfigurat cu structura evenimentelor Leaply → copiezi URL-ul webhook-ului în Leaply (Setări & Plan → Integrare CRM) și adaugi modulele tale (CRM, Sheets, email) după el.
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.