Referenca API

Integro enuchat në sistemet tuaja duke përdorur Tenant API. Menaxho bisedat, dërgo mesazhe dhe akseso të dhënat e faturimit në mënyrë programatike.

Autentifikimi

Të gjitha kërkesat API autentifikohen duke përdorur një çelës API të dërguar në header-in X-Api-Key.

Marrja e çelësit tuaj API

  1. Shko te Cilësimet → Çelësat API në dashboard-in tënd
  2. Kliko Krijo çelës API dhe jep një emër
  3. Kopjo menjëherë çelësin — tregohet vetëm një herë
  4. Ruaje në mënyrë të sigurt (variabël mjedisi, menaxher sekretesh)

Dërgimi i kërkesave

Përfshi çelësin në çdo kërkesë:

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

Të gjitha përgjigjet janë JSON. Përgjigjet e suksesshme kanë një fushë data. Gabimet kanë një fushë error me code dhe message.

Siguria: Çelësat API janë të hash-uar (SHA-256) në bazën tonë të të dhënave. Nuk e ruajmë kurrë çelësin e papërpunuar. Trajto çelësin tënd si një fjalëkalim — mos e ngarko në kod ose mos e ndaj publikisht.

URL bazë

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

Të gjitha endpoint-et më poshtë janë relative me këtë URL bazë.

Endpoint-et

GET /widgets

Liston të gjitha widget-et për llogarinë tuaj.

Përgjigja

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

GET /conversations

Liston bisedat, të renditura sipas mesazhit më të fundit.

Parametrat query

ParametriLlojiPërshkrimi
statusstringFiltro sipas statusit: open, pending, closed
widgetIdstringFiltro sipas UUID të widget-it
limitintegerRezultatet maksimale (paracaktuar 20, max 100)
offsetintegerAnashkalo N rezultate

Shembull

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

Përgjigja

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

Merr një bisedë me të gjitha mesazhet.

Parametrat query

ParametriLlojiPërshkrimi
limitintegerMesazhe maksimale (paracaktuar 50, max 200)

Përgjigja

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

Dërgo një mesazh në një bisedë. Mesazhi do t'i dorëzohet vizitorit në kohë reale nëpërmjet widget-it të chat-it.

Trupi i kërkesës

{'{'}
  "content": "Thanks for reaching out! We'll process your request.",
  "role": "system"
}
FushaLlojiPërshkrimi
contentstringE detyrueshme. Teksti i mesazhit.
rolestringsystem (paracaktuar) ose operator

Përgjigja (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ërditëso statusin ose caktimin e një bisede.

Trupi i kërkesës

{'{'}
  "status": "closed"
}
FushaLlojiPërshkrimi
statusstringopen, pending, ose closed
assignedTostring|nullUUID i operatorit për caktim, ose null për të shkaktivizuar caktimin

GET /billing/balance

Merr planin aktual dhe balancën e kredive.

Përgjigja

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

Trajtimi i gabimeve

Gabimet kthejnë një kod statusi jo-2xx me një trup JSON:

{'{'}
  "error": {'{'}
    "code": "NOT_FOUND",
    "message": "Conversation not found."
  }
}
Statusi HTTPKuptimi
401Çelës API i pavlefshëm, i skaduar ose që mungon
400Trup kërkese ose parametra të pavlefshëm
404Burimi nuk u gjet (ose i përket një tenant-i tjetër)
500Gabim serveri

Rastet e zakonshme të përdorimit

Integrimi CRM

Bëj poll për biseda të reja dhe sinkronizo të dhënat e vizitorit (emër, email, gjuhë) me CRM-në tuaj. Përdor ID e bisedës si referencë e jashtme.

Ndjekje të automatizuara

Pasi një bisedë mbyllet, dërgo një mesazh ndjekjeje nëpërmjet API: "Faleminderit që bisedove! A ka ndonjë gjë tjetër për të cilën mund të ndihmojmë?"

Alternativë ndaj webhook-ut

Deri sa webhook-et dalëse të jenë të disponueshme, bëj poll në endpoint-in e bisedave periodikisht për të zbuluar mesazhe të reja ose ndryshime statusi.

Operacione në masë

Mbyll të gjitha bisedat më të vjetra se 7 ditë, cakto bisedat te operatorët bazuar në logjikë të jashtme ose eksporto historinë e bisedave për analitikë.

Kufijtë e shkallës

API lejon deri në 60 kërkesa për minutë për çelës API. Nëse e kalon këtë limit, do të marrësh një përgjigje 429 Too Many Requests. Prit dhe provo përsëri me backoff eksponencial.

Gati për të integruar?

Krijo llogarinë tënde falas dhe gjenero një çelës API në pak minuta.

Fillo falas