API-referens
Integrera enuchat i dina system med Tenant API. Hantera konversationer, skicka meddelanden och få åtkomst till faktureringsdata programmatiskt.
Autentisering
Alla API-förfrågningar autentiseras med en API-nyckel som skickas i X-Api-Key-headern.
Få din API-nyckel
- Gå till Inställningar → API-nycklar i din panel
- Klicka på Skapa API-nyckel och ge den ett namn
- Kopiera nyckeln omedelbart — den visas bara en gång
- Förvara den säkert (miljövariabel, hemlighetshanterare)
Göra förfrågningar
Inkludera nyckeln i varje förfrågan:
curl -H "X-Api-Key: tak_your_key_here" \
https://api.enuchat.com/api/v1/tenant-api/widgetsAlla svar är JSON. Lyckade svar har ett data-fält. Fel har ett error-fält med code och message.
Säkerhet: API-nycklar hashas (SHA-256) i vår databas. Vi lagrar aldrig den råa nyckeln. Behandla din nyckel som ett lösenord — lägg inte in den i kod eller dela den offentligt.
Bas-URL
https://api.enuchat.com/api/v1/tenant-apiAlla endpoints nedan är relativa till denna bas-URL.
Endpoints
GET /widgets
Lista alla widgetar för ditt konto.
Svar
{'{'}
"data": [
{'{'}
"id": "019d19c6-7e0b-...",
"name": "Main Website Chat",
"isActive": true,
"aiEnabled": true,
"translationEnabled": true,
"primaryColor": "#2563eb",
"position": "bottom-right"
}
]
}GET /conversations
Lista konversationer, sorterade efter senaste meddelande.
Query-parametrar
| Parameter | Typ | Beskrivning |
|---|---|---|
status | string | Filtrera efter status: open, pending, closed |
widgetId | string | Filtrera efter widget-UUID |
limit | integer | Max resultat (standard 20, max 100) |
offset | integer | Hoppa över N resultat |
Exempel
curl -H "X-Api-Key: tak_..." \
"https://api.enuchat.com/api/v1/tenant-api/conversations?status=open&limit=10"Svar
{'{'}
"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}
Hämta en konversation med alla meddelanden.
Query-parametrar
| Parameter | Typ | Beskrivning |
|---|---|---|
limit | integer | Max meddelanden (standard 50, max 200) |
Svar
{'{'}
"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
Skicka ett meddelande till en konversation. Meddelandet levereras till besökaren i realtid via chattwidgeten.
Request body
{'{'}
"content": "Thanks for reaching out! We'll process your request.",
"role": "system"
}| Fält | Typ | Beskrivning |
|---|---|---|
content | string | Krävs. Meddelandetexten. |
role | string | system (standard) eller operator |
Svar (201 Created)
{'{'}
"data": {'{'}
"id": "019d6725-abcd-...",
"role": "system",
"content": "Thanks for reaching out!",
"createdAt": "2026-04-11T14:35:00+00:00"
}
}PATCH /conversations/{'{'}id}
Uppdatera en konversations status eller tilldelning.
Request body
{'{'}
"status": "closed"
}| Fält | Typ | Beskrivning |
|---|---|---|
status | string | open, pending, eller closed |
assignedTo | string|null | Operatör-UUID att tilldela, eller null för att avtilldela |
GET /billing/balance
Hämta din aktuella plan och kreditsaldo.
Svar
{'{'}
"data": {'{'}
"plan": "pro",
"creditBalance": 4500000,
"totalCreditsAdded": 10000000
}
}Felhantering
Fel returnerar en icke-2xx-statuskod med en JSON-kropp:
{'{'}
"error": {'{'}
"code": "NOT_FOUND",
"message": "Conversation not found."
}
}| HTTP-status | Betydelse |
|---|---|
401 | Ogiltig, utgången eller saknad API-nyckel |
400 | Ogiltig request body eller parametrar |
404 | Resurs hittades inte (eller tillhör en annan tenant) |
500 | Serverfel |
Vanliga användningsfall
CRM-integration
Polla efter nya konversationer och synka besökardata (namn, e-post, språk) till ditt CRM. Använd konversations-ID som extern referens.
Automatiserade uppföljningar
Efter att en konversation stängts, skicka ett uppföljningsmeddelande via API:et: „Tack för chatten! Finns det något annat vi kan hjälpa till med?"
Webhook-alternativ
Tills utgående webhooks är tillgängliga, polla konversationsendpointen periodiskt för att upptäcka nya meddelanden eller statusändringar.
Massoperationer
Stäng alla konversationer äldre än 7 dagar, tilldela konversationer till operatörer baserat på extern logik, eller exportera konversationshistorik för analys.
Hastighetsgränser
API:et tillåter upp till 60 förfrågningar per minut per API-nyckel. Om du överskrider denna gräns får du ett 429 Too Many Requests-svar. Vänta och försök igen med exponentiell backoff.