Referencia API

Integrujte enuchat do svojich systémov pomocou Tenant API. Spravujte konverzácie, posielajte správy a programovo pristupujte k fakturačným údajom.

Autentifikácia

Všetky API požiadavky sa autentifikujú pomocou API kľúča poslaného v hlavičke X-Api-Key.

Získanie vášho API kľúča

  1. Prejdite na Nastavenia → API kľúče vo vašom paneli
  2. Kliknite na Vytvoriť API kľúč a dajte mu názov
  3. Skopírujte kľúč okamžite — zobrazí sa iba raz
  4. Uschovajte ho bezpečne (premenná prostredia, správca tajomstiev)

Odosielanie požiadaviek

Zahrňte kľúč v každej požiadavke:

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

Všetky odpovede sú JSON. Úspešné odpovede majú pole data. Chyby majú pole error s code a message.

Bezpečnosť: API kľúče sú hashované (SHA-256) v našej databáze. Nikdy neukladáme surový kľúč. Zaobchádzajte s vaším kľúčom ako s heslom — nepripájajte ho do kódu ani ho nezdieľajte verejne.

Základná URL

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

Všetky koncové body uvedené nižšie sú relatívne k tejto základnej URL.

Koncové body

GET /widgets

Zoznam všetkých widgetov vo vašom účte.

Odpoveď

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

GET /conversations

Zoznam konverzácií, zoradených podľa najnovšej správy.

Parametre dopytu

ParameterTypPopis
statusstringFiltrovať podľa stavu: open, pending, closed
widgetIdstringFiltrovať podľa UUID widgetu
limitintegerMax výsledky (predvolené 20, max 100)
offsetintegerPreskočiť N výsledkov

Príklad

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

Odpoveď

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

Získať konverzáciu so všetkými správami.

Parametre dopytu

ParameterTypPopis
limitintegerMax správy (predvolené 50, max 200)

Odpoveď

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

Odoslať správu do konverzácie. Správa bude doručená návštevníkovi v reálnom čase cez chat widget.

Telo požiadavky

{'{'}
  "content": "Thanks for reaching out! We'll process your request.",
  "role": "system"
}
PoleTypPopis
contentstringPovinné. Text správy.
rolestringsystem (predvolené) alebo operator

Odpoveď (201 Created)

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

PATCH /conversations/{'{'}id}

Aktualizovať stav alebo priradenie konverzácie.

Telo požiadavky

{'{'}
  "status": "closed"
}
PoleTypPopis
statusstringopen, pending alebo closed
assignedTostring|nullUUID operátora na priradenie alebo null na zrušenie priradenia

GET /billing/balance

Získajte svoj aktuálny plán a zostatok kreditov.

Odpoveď

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

Spracovanie chýb

Chyby vracajú stavový kód mimo rozsahu 2xx s JSON telom:

{'{'}
  "error": {'{'}
    "code": "NOT_FOUND",
    "message": "Conversation not found."
  }
}
HTTP stavVýznam
401Neplatný, vypršaný alebo chýbajúci API kľúč
400Neplatné telo požiadavky alebo parametre
404Zdroj nenájdený (alebo patrí inému tenantovi)
500Chyba servera

Bežné prípady použitia

Integrácia CRM

Dopytujte nové konverzácie a synchronizujte údaje o návštevníkoch (meno, e-mail, jazyk) do vášho CRM. Použite ID konverzácie ako externú referenciu.

Automatizované následné kontakty

Po uzavretí konverzácie pošlite následnú správu cez API: „Ďakujeme za chat! Je niečo iné, s čím vám môžeme pomôcť?"

Alternatíva k webhookom

Kým nebudú dostupné odchádzajúce webhooky, periodicky dopytujte koncový bod konverzácií, aby ste detekovali nové správy alebo zmeny stavu.

Hromadné operácie

Uzavrite všetky konverzácie staršie ako 7 dní, priraďte konverzácie operátorom na základe externej logiky alebo exportujte históriu konverzácií pre analytiku.

Rýchlostné limity

API umožňuje až 60 požiadaviek za minútu na API kľúč. Ak prekročíte tento limit, dostanete odpoveď 429 Too Many Requests. Počkajte a skúste znova s exponenciálnym backoff.

Pripravení integrovať?

Vytvorte si bezplatný účet a vygenerujte API kľúč za pár minút.

Začať zadarmo