API nuoroda

Integruokite enuchat į savo sistemas naudodami Tenant API. Tvarkykite pokalbius, siųskite žinutes ir programinėmis priemonėmis pasiekite atsiskaitymo duomenis.

Autentifikavimas

Visos API užklausos autentifikuojamos naudojant API raktą, siunčiamą X-Api-Key antraštėje.

Gauti savo API raktą

  1. Eikite į Nustatymai → API raktai savo skydelyje
  2. Spustelėkite Sukurti API raktą ir suteikite jam pavadinimą
  3. Iš karto nukopijuokite raktą — jis rodomas tik vieną kartą
  4. Saugokite jį saugiai (aplinkos kintamasis, paslapčių valdiklis)

Užklausų siuntimas

Įtraukite raktą į kiekvieną užklausą:

curl -H "X-Api-Key: tak_your_key_here" \
     https://api.enuchat.com/api/v1/tenant-api/widgets

Visi atsakymai yra JSON. Sėkmingi atsakymai turi data lauką. Klaidos turi error lauką su code ir message.

Saugumas: API raktai yra maišomi (SHA-256) mūsų duomenų bazėje. Mes niekada nesaugome neapdoroto rakto. Elgiatės su savo raktu kaip su slaptažodžiu — neįrašykite jo į kodą ir nesidalinkite viešai.

Bazinis URL

https://api.enuchat.com/api/v1/tenant-api

Visi žemiau esantys galiniai taškai yra reliatyvūs šio bazinio URL.

Galiniai taškai

GET /widgets

Sąrašas visų valdiklių jūsų paskyroje.

Atsakymas

{'{'}
  "data": [
{'{'}
      "id": "019d19c6-7e0b-...",
      "name": "Main Website Chat",
      "isActive": true,
      "aiEnabled": true,
      "translationEnabled": true,
      "primaryColor": "#2563eb",
      "position": "bottom-right"
    }
  ]
}

GET /conversations

Sąrašas pokalbių, išrikiuotų pagal naujausią žinutę.

Užklausos parametrai

ParametrasTipasAprašymas
statusstringFiltruoti pagal būseną: open, pending, closed
widgetIdstringFiltruoti pagal valdiklio UUID
limitintegerMaksimumas rezultatų (numatyta 20, maks. 100)
offsetintegerPraleisti N rezultatų

Pavyzdys

curl -H "X-Api-Key: tak_..." \
     "https://api.enuchat.com/api/v1/tenant-api/conversations?status=open&limit=10"

Atsakymas

{'{'}
  "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}

Gauti pokalbį su visomis žinutėmis.

Užklausos parametrai

ParametrasTipasAprašymas
limitintegerMaksimumas žinučių (numatyta 50, maks. 200)

Atsakymas

{'{'}
  "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

Siųsti žinutę į pokalbį. Žinutė bus pristatyta lankytojui realiu laiku per pokalbių valdiklį.

Užklausos kūnas

{'{'}
  "content": "Thanks for reaching out! We'll process your request.",
  "role": "system"
}
LaukasTipasAprašymas
contentstringPrivaloma. Žinutės tekstas.
rolestringsystem (numatyta) arba operator

Atsakymas (201 Created)

{'{'}
  "data": {'{'}
    "id": "019d6725-abcd-...",
    "role": "system",
    "content": "Thanks for reaching out!",
    "createdAt": "2026-04-11T14:35:00+00:00"
  }
}

PATCH /conversations/{'{'}id}

Atnaujinti pokalbio būseną arba priskyrimą.

Užklausos kūnas

{'{'}
  "status": "closed"
}
LaukasTipasAprašymas
statusstringopen, pending arba closed
assignedTostring|nullOperatoriaus UUID priskirti arba null, kad atskirtumėte

GET /billing/balance

Gauti savo dabartinį planą ir kreditų likutį.

Atsakymas

{'{'}
  "data": {'{'}
    "plan": "pro",
    "creditBalance": 4500000,
    "totalCreditsAdded": 10000000
  }
}

Klaidų tvarkymas

Klaidos grąžina ne 2xx būsenos kodą su JSON kūnu:

{'{'}
  "error": {'{'}
    "code": "NOT_FOUND",
    "message": "Conversation not found."
  }
}
HTTP būsenaReikšmė
401Neteisingas, pasibaigęs arba trūkstamas API raktas
400Neteisingas užklausos kūnas arba parametrai
404Išteklius nerastas (arba priklauso kitam nuomininkui)
500Serverio klaida

Dažni naudojimo atvejai

CRM integracija

Apklauskite naujus pokalbius ir sinchronizuokite lankytojų duomenis (vardą, el. paštą, kalbą) su savo CRM. Naudokite pokalbio ID kaip išorinę nuorodą.

Automatiniai tolimesni pranešimai

Kai pokalbis uždaromas, siųskite tolesnę žinutę per API: „Ačiū už pokalbį! Ar yra dar kas nors, su kuo galime padėti?"

Webhook alternatyva

Kol nebus galimi išeinantys webhooks, periodiškai apklauskite pokalbių galinį tašką, kad aptiktumėte naujas žinutes ar būsenos pakeitimus.

Masinės operacijos

Uždarykite visus senesnius nei 7 dienų pokalbius, priskirkite pokalbius operatoriams remdamiesi išorine logika arba eksportuokite pokalbių istoriją analitikai.

Greičio ribos

API leidžia iki 60 užklausų per minutę vienam API raktui. Jei viršysite šį limitą, gausite 429 Too Many Requests atsakymą. Palaukite ir pakartokite su eksponentiniu vėlinimu.

Pasiruošę integruoti?

Sukurkite savo nemokamą paskyrą ir per kelias minutes sugeneruokite API raktą.

Pradėti nemokamai