API referenca
Integrirajte enuchat u svoje sustave koristeći Tenant API. Upravljajte razgovorima, šaljite poruke i pristupajte podacima o naplati programski.
Autentifikacija
Svi API zahtjevi se autentificiraju koristeći API ključ poslan u X-Api-Key zaglavlju.
Dobivanje API ključa
- Idite na Postavke → API ključevi u nadzornoj ploči
- Kliknite Stvori API ključ i dajte mu naziv
- Odmah kopirajte ključ — prikazuje se samo jednom
- Pohranite ga sigurno (varijabla okruženja, upravitelj tajni)
Slanje zahtjeva
Uključite ključ u svaki zahtjev:
curl -H "X-Api-Key: tak_your_key_here" \
https://api.enuchat.com/api/v1/tenant-api/widgetsSvi odgovori su JSON. Uspješni odgovori imaju polje data. Greške imaju polje error s code i message.
Sigurnost: API ključevi su hashirani (SHA-256) u našoj bazi podataka. Nikada ne pohranjujemo neobrađeni ključ. Tretirajte svoj ključ kao lozinku — ne unosite ga u kod niti ga dijelite javno.
Bazni URL
https://api.enuchat.com/api/v1/tenant-apiSvi endpointi u nastavku su relativni prema ovom baznom URL-u.
Endpointi
GET /widgets
Popis svih widgeta za vaš račun.
Odgovor
{'{'}
"data": [
{'{'}
"id": "019d19c6-7e0b-...",
"name": "Main Website Chat",
"isActive": true,
"aiEnabled": true,
"translationEnabled": true,
"primaryColor": "#2563eb",
"position": "bottom-right"
}
]
}GET /conversations
Popis razgovora, poredano po najnovijoj poruci.
Parametri upita
| Parametar | Tip | Opis |
|---|---|---|
status | string | Filtriraj po statusu: open, pending, closed |
widgetId | string | Filtriraj po UUID widgeta |
limit | integer | Maks. rezultata (zadano 20, maks. 100) |
offset | integer | Preskoči N rezultata |
Primjer
curl -H "X-Api-Key: tak_..." \
"https://api.enuchat.com/api/v1/tenant-api/conversations?status=open&limit=10"Odgovor
{'{'}
"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}
Dohvatite razgovor sa svim porukama.
Parametri upita
| Parametar | Tip | Opis |
|---|---|---|
limit | integer | Maks. poruka (zadano 50, maks. 200) |
Odgovor
{'{'}
"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
Pošaljite poruku u razgovor. Poruka će biti dostavljena posjetitelju u stvarnom vremenu putem chat widgeta.
Tijelo zahtjeva
{'{'}
"content": "Thanks for reaching out! We'll process your request.",
"role": "system"
}| Polje | Tip | Opis |
|---|---|---|
content | string | Obavezno. Tekst poruke. |
role | string | system (zadano) ili operator |
Odgovor (201 Created)
{'{'}
"data": {'{'}
"id": "019d6725-abcd-...",
"role": "system",
"content": "Thanks for reaching out!",
"createdAt": "2026-04-11T14:35:00+00:00"
}
}PATCH /conversations/{'{'}id}
Ažurirajte status ili dodjelu razgovora.
Tijelo zahtjeva
{'{'}
"status": "closed"
}| Polje | Tip | Opis |
|---|---|---|
status | string | open, pending ili closed |
assignedTo | string|null | UUID operatera za dodjelu, ili null za uklanjanje dodjele |
GET /billing/balance
Dohvatite trenutni plan i stanje kredita.
Odgovor
{'{'}
"data": {'{'}
"plan": "pro",
"creditBalance": 4500000,
"totalCreditsAdded": 10000000
}
}Obrada grešaka
Greške vraćaju ne-2xx statusni kod s JSON tijelom:
{'{'}
"error": {'{'}
"code": "NOT_FOUND",
"message": "Conversation not found."
}
}| HTTP status | Značenje |
|---|---|
401 | Nevažeći, istekli ili nedostajući API ključ |
400 | Nevažeće tijelo zahtjeva ili parametri |
404 | Resurs nije pronađen (ili pripada drugom korisniku) |
500 | Greška poslužitelja |
Česti slučajevi korištenja
CRM integracija
Periodično provjeravajte nove razgovore i sinkronizirajte podatke posjetitelja (ime, email, jezik) s vašim CRM-om. Koristite ID razgovora kao vanjsku referencu.
Automatizirano praćenje
Nakon zatvaranja razgovora, pošaljite poruku praćenja putem API-ja: "Hvala na chatu! Postoji li još nešto u čemu vam možemo pomoći?"
Alternativa za webhook
Dok odlazni webhookovi nisu dostupni, periodično provjeravajte endpoint razgovora za otkrivanje novih poruka ili promjena statusa.
Skupne operacije
Zatvorite sve razgovore starije od 7 dana, dodijelite razgovore operaterima na temelju vanjske logike ili izvezite povijest razgovora za analitiku.
Ograničenja brzine
API dopušta do 60 zahtjeva u minuti po API ključu. Ako premašite ovaj limit, dobiti ćete odgovor 429 Too Many Requests. Pričekajte i pokušajte ponovno s eksponencijalnim povlačenjem.
Spremni za integraciju?
Stvorite besplatni račun i generirajte API ključ za nekoliko minuta.
Započnite besplatno