API-viittaus
Integroi enuchat järjestelmiisi käyttäen Tenant API:a. Hallinnoi keskusteluja, lähetä viestejä ja käytä laskutustietoja ohjelmallisesti.
Todennus
Kaikki API-pyynnöt todennetaan API-avaimella, joka lähetetään X-Api-Key-otsikossa.
API-avaimesi saaminen
- Mene Asetukset → API-avaimet paneelissasi
- Napsauta Luo API-avain ja anna sille nimi
- Kopioi avain heti — se näytetään vain kerran
- Säilytä se turvallisesti (ympäristömuuttuja, salaisuudenhallintaohjelma)
Pyyntöjen tekeminen
Sisällytä avain jokaiseen pyyntöön:
curl -H "X-Api-Key: tak_your_key_here" \
https://api.enuchat.com/api/v1/tenant-api/widgetsKaikki vastaukset ovat JSON-muodossa. Onnistuneilla vastauksilla on data-kenttä. Virheillä on error-kenttä, jossa on code ja message.
Turvallisuus: API-avaimet hashataan (SHA-256) tietokannassamme. Emme koskaan tallenna raakaa avainta. Käsittele avaintasi kuin salasanaa — älä lisää sitä koodiin tai jaa julkisesti.
Perus-URL
https://api.enuchat.com/api/v1/tenant-apiKaikki alla olevat päätepisteet ovat suhteellisia tähän perus-URL-osoitteeseen.
Päätepisteet
GET /widgets
Luettele kaikki tilisi widgetit.
Vastaus
{'{'}
"data": [
{'{'}
"id": "019d19c6-7e0b-...",
"name": "Main Website Chat",
"isActive": true,
"aiEnabled": true,
"translationEnabled": true,
"primaryColor": "#2563eb",
"position": "bottom-right"
}
]
}GET /conversations
Luettele keskustelut viimeisimmän viestin mukaan järjestettynä.
Kyselyparametrit
| Parametri | Tyyppi | Kuvaus |
|---|---|---|
status | string | Suodata tilan mukaan: open, pending, closed |
widgetId | string | Suodata widgetin UUID:n mukaan |
limit | integer | Max tulokset (oletus 20, max 100) |
offset | integer | Ohita N tulosta |
Esimerkki
curl -H "X-Api-Key: tak_..." \
"https://api.enuchat.com/api/v1/tenant-api/conversations?status=open&limit=10"Vastaus
{'{'}
"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}
Hae keskustelu kaikkine viesteineen.
Kyselyparametrit
| Parametri | Tyyppi | Kuvaus |
|---|---|---|
limit | integer | Max viestit (oletus 50, max 200) |
Vastaus
{'{'}
"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
Lähetä viesti keskusteluun. Viesti toimitetaan vierailijalle reaaliajassa chat-widgetin kautta.
Pyynnön runko
{'{'}
"content": "Thanks for reaching out! We'll process your request.",
"role": "system"
}| Kenttä | Tyyppi | Kuvaus |
|---|---|---|
content | string | Pakollinen. Viestin teksti. |
role | string | system (oletus) tai operator |
Vastaus (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äivitä keskustelun tila tai osoitus.
Pyynnön runko
{'{'}
"status": "closed"
}| Kenttä | Tyyppi | Kuvaus |
|---|---|---|
status | string | open, pending tai closed |
assignedTo | string|null | Operaattorin UUID osoittamista varten tai null osoituksen poistamiseen |
GET /billing/balance
Hae nykyinen tilauksesi ja krediittisaldo.
Vastaus
{'{'}
"data": {'{'}
"plan": "pro",
"creditBalance": 4500000,
"totalCreditsAdded": 10000000
}
}Virheenkäsittely
Virheet palauttavat ei-2xx-tilakoodin JSON-rungolla:
{'{'}
"error": {'{'}
"code": "NOT_FOUND",
"message": "Conversation not found."
}
}| HTTP-tila | Merkitys |
|---|---|
401 | Virheellinen, vanhentunut tai puuttuva API-avain |
400 | Virheellinen pyynnön runko tai parametrit |
404 | Resurssia ei löydy (tai kuuluu toiselle tenantille) |
500 | Palvelinvirhe |
Yleiset käyttötapaukset
CRM-integraatio
Kysy uusia keskusteluja ja synkronoi vierailijatiedot (nimi, sähköposti, kieli) CRM:ääsi. Käytä keskustelun ID:tä ulkoisena viitteenä.
Automatisoidut jatkotoimet
Kun keskustelu suljetaan, lähetä jatkoseurantaviesti API:n kautta: „Kiitos chattailusta! Onko muuta missä voimme auttaa?"
Webhook-vaihtoehto
Kunnes ulospäin lähtevät webhookit ovat saatavilla, kysele keskustelupäätepistettä säännöllisesti havaitaksesi uudet viestit tai tilamuutokset.
Massaoperaatiot
Sulje kaikki yli 7 päivää vanhat keskustelut, osoita keskustelut operaattoreille ulkoisen logiikan perusteella tai vie keskusteluhistoria analytiikkaa varten.
Nopeusrajat
API sallii jopa 60 pyyntöä minuutissa per API-avain. Jos ylität tämän rajan, saat 429 Too Many Requests -vastauksen. Odota ja yritä uudelleen eksponentiaalisella backoffilla.