API referenca

Integrirajte enuchat v svoje sisteme z uporabo Tenant API. Upravljajte pogovore, pošiljajte sporočila in programsko dostopajte do obračunskih podatkov.

Preverjanje pristnosti

Vse API zahteve so preverjene s pristnostjo z uporabo API ključa, poslanega v glavi X-Api-Key.

Pridobivanje vašega API ključa

  1. Pojdite na Nastavitve → API ključi v svoji nadzorni plošči
  2. Kliknite Ustvari API ključ in mu dajte ime
  3. Kopirajte ključ takoj — prikazan je samo enkrat
  4. Varno ga shranite (okoljska spremenljivka, upravitelj skrivnosti)

Izvajanje zahtev

Vključite ključ v vsako zahtevo:

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

Vsi odgovori so JSON. Uspešni odgovori imajo polje data. Napake imajo polje error s code in message.

Varnost: API ključi so zgoščeni (SHA-256) v naši bazi podatkov. Surovega ključa nikoli ne shranjujemo. Obravnavajte svoj ključ kot geslo — ne dodajajte ga v kodo ali delite javno.

Osnovni URL

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

Vse končne točke spodaj so relativne glede na ta osnovni URL.

Končne točke

GET /widgets

Seznam vseh pripomočkov 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

Seznam pogovorov, urejenih po zadnjem sporočilu.

Parametri poizvedbe

ParameterTipOpis
statusstringFiltriraj po stanju: open, pending, closed
widgetIdstringFiltriraj po UUID pripomočka
limitintegerNajveč rezultatov (privzeto 20, največ 100)
offsetintegerPreskoči N rezultatov

Primer

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}

Pridobi pogovor z vsemi sporočili.

Parametri poizvedbe

ParameterTipOpis
limitintegerNajveč sporočil (privzeto 50, največ 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šlji sporočilo v pogovor. Sporočilo bo obiskovalcu dostavljeno v realnem času prek klepet pripomočka.

Telo zahteve

{'{'}
  "content": "Thanks for reaching out! We'll process your request.",
  "role": "system"
}
PoljeTipOpis
contentstringObvezno. Besedilo sporočila.
rolestringsystem (privzeto) ali 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}

Posodobi stanje ali dodelitev pogovora.

Telo zahteve

{'{'}
  "status": "closed"
}
PoljeTipOpis
statusstringopen, pending ali closed
assignedTostring|nullUUID operaterja za dodelitev ali null za odstranitev dodelitve

GET /billing/balance

Pridobi svoj trenutni paket in stanje kreditov.

Odgovor

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

Obravnavanje napak

Napake vrnejo kodo stanja, ki ni 2xx, s telesom JSON:

{'{'}
  "error": {'{'}
    "code": "NOT_FOUND",
    "message": "Conversation not found."
  }
}
HTTP stanjePomen
401Neveljaven, potekel ali manjkajoč API ključ
400Neveljavno telo zahteve ali parametri
404Vir ni najden (ali pripada drugemu najemniku)
500Napaka strežnika

Pogosti primeri uporabe

Integracija CRM

Vprašujte nove pogovore in sinhronizirajte podatke obiskovalcev (ime, e-pošta, jezik) v svoj CRM. Uporabite ID pogovora kot zunanjo referenco.

Avtomatizirani nadaljnji ukrepi

Po zaprtju pogovora pošljite nadaljnje sporočilo prek API: „Hvala za klepet! Ali je še kaj, s čimer lahko pomagamo?"

Alternativa webhookom

Dokler niso na voljo izhodni webhooki, občasno vprašujte končno točko pogovorov za zaznavanje novih sporočil ali sprememb stanja.

Množične operacije

Zaprite vse pogovore, starejše od 7 dni, dodelite pogovore operaterjem na podlagi zunanje logike ali izvozite zgodovino pogovorov za analitiko.

Omejitve hitrosti

API omogoča do 60 zahtev na minuto na API ključ. Če prekoračite to omejitev, boste prejeli odgovor 429 Too Many Requests. Počakajte in poskusite znova z eksponencialnim backoffom.

Pripravljeni za integracijo?

Ustvarite brezplačen račun in v nekaj minutah ustvarite API ključ.

Začni brezplačno