Referenca API
Integro enuchat në sistemet tuaja duke përdorur Tenant API. Menaxho bisedat, dërgo mesazhe dhe akseso të dhënat e faturimit në mënyrë programatike.
Autentifikimi
Të gjitha kërkesat API autentifikohen duke përdorur një çelës API të dërguar në header-in X-Api-Key.
Marrja e çelësit tuaj API
- Shko te Cilësimet → Çelësat API në dashboard-in tënd
- Kliko Krijo çelës API dhe jep një emër
- Kopjo menjëherë çelësin — tregohet vetëm një herë
- Ruaje në mënyrë të sigurt (variabël mjedisi, menaxher sekretesh)
Dërgimi i kërkesave
Përfshi çelësin në çdo kërkesë:
curl -H "X-Api-Key: tak_your_key_here" \
https://api.enuchat.com/api/v1/tenant-api/widgetsTë gjitha përgjigjet janë JSON. Përgjigjet e suksesshme kanë një fushë data. Gabimet kanë një fushë error me code dhe message.
Siguria: Çelësat API janë të hash-uar (SHA-256) në bazën tonë të të dhënave. Nuk e ruajmë kurrë çelësin e papërpunuar. Trajto çelësin tënd si një fjalëkalim — mos e ngarko në kod ose mos e ndaj publikisht.
URL bazë
https://api.enuchat.com/api/v1/tenant-apiTë gjitha endpoint-et më poshtë janë relative me këtë URL bazë.
Endpoint-et
GET /widgets
Liston të gjitha widget-et për llogarinë tuaj.
Përgjigja
{'{'}
"data": [
{'{'}
"id": "019d19c6-7e0b-...",
"name": "Main Website Chat",
"isActive": true,
"aiEnabled": true,
"translationEnabled": true,
"primaryColor": "#2563eb",
"position": "bottom-right"
}
]
}GET /conversations
Liston bisedat, të renditura sipas mesazhit më të fundit.
Parametrat query
| Parametri | Lloji | Përshkrimi |
|---|---|---|
status | string | Filtro sipas statusit: open, pending, closed |
widgetId | string | Filtro sipas UUID të widget-it |
limit | integer | Rezultatet maksimale (paracaktuar 20, max 100) |
offset | integer | Anashkalo N rezultate |
Shembull
curl -H "X-Api-Key: tak_..." \
"https://api.enuchat.com/api/v1/tenant-api/conversations?status=open&limit=10"Përgjigja
{'{'}
"data": [
{'{'}
"id": "019d6724-000e-...",
"widgetId": "019d19c6-7e0b-...",
"visitorId": "v-abc123",
"visitorName": "John",
"visitorEmail": "john{'@'}example.com",
"visitorLanguage": "en",
"status": "open",
"assignedTo": null,
"lastMessageAt": "2026-04-11T14:30:00+00:00",
"startedAt": "2026-04-11T14:25:00+00:00"
}
]
}GET /conversations/{'{'}id}
Merr një bisedë me të gjitha mesazhet.
Parametrat query
| Parametri | Lloji | Përshkrimi |
|---|---|---|
limit | integer | Mesazhe maksimale (paracaktuar 50, max 200) |
Përgjigja
{'{'}
"data": {'{'}
"id": "019d6724-000e-...",
"visitorLanguage": "en",
"status": "open",
"messages": [
{'{'}
"id": "019d6724-1234-...",
"role": "visitor",
"content": "Hello, how much does it cost?",
"contentLanguage": "en",
"translatedContent": "Cześć, ile to kosztuje?",
"translatedLanguage": "pl",
"isAutoReply": false,
"createdAt": "2026-04-11T14:25:30+00:00"
},
{'{'}
"id": "019d6724-5678-...",
"role": "ai",
"content": "Our plans start at €19/month...",
"isAutoReply": true,
"createdAt": "2026-04-11T14:25:32+00:00"
}
]
}
}POST /conversations/{'{'}id}/messages
Dërgo një mesazh në një bisedë. Mesazhi do t'i dorëzohet vizitorit në kohë reale nëpërmjet widget-it të chat-it.
Trupi i kërkesës
{'{'}
"content": "Thanks for reaching out! We'll process your request.",
"role": "system"
}| Fusha | Lloji | Përshkrimi |
|---|---|---|
content | string | E detyrueshme. Teksti i mesazhit. |
role | string | system (paracaktuar) ose operator |
Përgjigja (201 Created)
{'{'}
"data": {'{'}
"id": "019d6725-abcd-...",
"role": "system",
"content": "Thanks for reaching out!",
"createdAt": "2026-04-11T14:35:00+00:00"
}
}PATCH /conversations/{'{'}id}
Përditëso statusin ose caktimin e një bisede.
Trupi i kërkesës
{'{'}
"status": "closed"
}| Fusha | Lloji | Përshkrimi |
|---|---|---|
status | string | open, pending, ose closed |
assignedTo | string|null | UUID i operatorit për caktim, ose null për të shkaktivizuar caktimin |
GET /billing/balance
Merr planin aktual dhe balancën e kredive.
Përgjigja
{'{'}
"data": {'{'}
"plan": "pro",
"creditBalance": 4500000,
"totalCreditsAdded": 10000000
}
}Trajtimi i gabimeve
Gabimet kthejnë një kod statusi jo-2xx me një trup JSON:
{'{'}
"error": {'{'}
"code": "NOT_FOUND",
"message": "Conversation not found."
}
}| Statusi HTTP | Kuptimi |
|---|---|
401 | Çelës API i pavlefshëm, i skaduar ose që mungon |
400 | Trup kërkese ose parametra të pavlefshëm |
404 | Burimi nuk u gjet (ose i përket një tenant-i tjetër) |
500 | Gabim serveri |
Rastet e zakonshme të përdorimit
Integrimi CRM
Bëj poll për biseda të reja dhe sinkronizo të dhënat e vizitorit (emër, email, gjuhë) me CRM-në tuaj. Përdor ID e bisedës si referencë e jashtme.
Ndjekje të automatizuara
Pasi një bisedë mbyllet, dërgo një mesazh ndjekjeje nëpërmjet API: "Faleminderit që bisedove! A ka ndonjë gjë tjetër për të cilën mund të ndihmojmë?"
Alternativë ndaj webhook-ut
Deri sa webhook-et dalëse të jenë të disponueshme, bëj poll në endpoint-in e bisedave periodikisht për të zbuluar mesazhe të reja ose ndryshime statusi.
Operacione në masë
Mbyll të gjitha bisedat më të vjetra se 7 ditë, cakto bisedat te operatorët bazuar në logjikë të jashtme ose eksporto historinë e bisedave për analitikë.
Kufijtë e shkallës
API lejon deri në 60 kërkesa për minutë për çelës API. Nëse e kalon këtë limit, do të marrësh një përgjigje 429 Too Many Requests. Prit dhe provo përsëri me backoff eksponencial.
Gati për të integruar?
Krijo llogarinë tënde falas dhe gjenero një çelës API në pak minuta.
Fillo falas