API-referanse
Integrer enuchat i systemene dine med Tenant API. Administrer samtaler, send meldinger og få tilgang til faktureringsdata programmatisk.
Autentisering
Alle API-forespørsler autentiseres med en API-nøkkel sendt i X-Api-Key-headeren.
Skaffe API-nøkkelen din
- Gå til Innstillinger → API-nøkler i kontrollpanelet
- Klikk Opprett API-nøkkel og gi den et navn
- Kopier nøkkelen umiddelbart — den vises kun én gang
- Lagre den sikkert (miljøvariabel, hemmelighetsbehandler)
Gjøre forespørsler
Inkluder nøkkelen i hver forespørsel:
curl -H "X-Api-Key: tak_your_key_here" \
https://api.enuchat.com/api/v1/tenant-api/widgetsAlle svar er JSON. Vellykkede svar har et data-felt. Feil har et error-felt med code og message.
Sikkerhet: API-nøkler hashes (SHA-256) i databasen vår. Vi lagrer aldri den rå nøkkelen. Behandle nøkkelen som et passord — ikke commit den til kode eller del den offentlig.
Basis-URL
https://api.enuchat.com/api/v1/tenant-apiAlle endpoints nedenfor er relative til denne basis-URL-en.
Endpoints
GET /widgets
List alle widgets for kontoen din.
Svar
{'{'}
"data": [
{'{'}
"id": "019d19c6-7e0b-...",
"name": "Main Website Chat",
"isActive": true,
"aiEnabled": true,
"translationEnabled": true,
"primaryColor": "#2563eb",
"position": "bottom-right"
}
]
}GET /conversations
List samtaler, sortert etter nyeste melding.
Spørringsparametre
| Parameter | Type | Beskrivelse |
|---|---|---|
status | string | Filtrer etter status: open, pending, closed |
widgetId | string | Filtrer etter widget-UUID |
limit | integer | Maks resultater (standard 20, maks 100) |
offset | integer | Hopp over N resultater |
Eksempel
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}
Hent en samtale med alle meldinger.
Spørringsparametre
| Parameter | Type | Beskrivelse |
|---|---|---|
limit | integer | Maks meldinger (standard 50, maks 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
Send en melding til en samtale. Meldingen leveres til besøkende i sanntid via chatwidgeten.
Forespørselskropp
{'{'}
"content": "Thanks for reaching out! We'll process your request.",
"role": "system"
}| Felt | Type | Beskrivelse |
|---|---|---|
content | string | Påkrevd. Meldingsteksten. |
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}
Oppdater en samtales status eller tildeling.
Forespørselskropp
{'{'}
"status": "closed"
}| Felt | Type | Beskrivelse |
|---|---|---|
status | string | open, pending eller closed |
assignedTo | string|null | Operatør-UUID for tildeling, eller null for å fjerne tildeling |
GET /billing/balance
Hent gjeldende plan og kredittsaldo.
Svar
{'{'}
"data": {'{'}
"plan": "pro",
"creditBalance": 4500000,
"totalCreditsAdded": 10000000
}
}Feilhåndtering
Feil returnerer en ikke-2xx statuskode med en JSON-kropp:
{'{'}
"error": {'{'}
"code": "NOT_FOUND",
"message": "Conversation not found."
}
}| HTTP-status | Betydning |
|---|---|
401 | Ugyldig, utløpt eller manglende API-nøkkel |
400 | Ugyldig forespørselskropp eller parametre |
404 | Ressurs ikke funnet (eller tilhører en annen leietaker) |
500 | Serverfeil |
Vanlige bruksscenarioer
CRM-integrasjon
Spør etter nye samtaler og synkroniser besøkendedata (navn, e-post, språk) til CRM-et ditt. Bruk samtale-ID-en som ekstern referanse.
Automatiserte oppfølginger
Etter at en samtale er lukket, send en oppfølgingsmelding via API-et: "Takk for chatten! Er det noe annet vi kan hjelpe deg med?"
Webhook-alternativ
Inntil utgående webhooks er tilgjengelige, kan du spørre samtale-endpointet periodisk for å oppdage nye meldinger eller statusendringer.
Masseoperasjoner
Lukk alle samtaler eldre enn 7 dager, tildel samtaler til operatører basert på ekstern logikk, eller eksporter samtalehistorikk for analyse.
Hastighetsgrenser
API-et tillater opptil 60 forespørsler per minutt per API-nøkkel. Hvis du overskrider denne grensen, mottar du et 429 Too Many Requests-svar. Vent og prøv igjen med eksponentiell backoff.
Klar til å integrere?
Opprett din gratis konto og generer en API-nøkkel på minutter.
Kom i gang gratis