Αναφορά API

Ενσωματώστε το enuchat στα συστήματά σας χρησιμοποιώντας το Tenant API. Διαχειριστείτε συνομιλίες, στείλτε μηνύματα και αποκτήστε πρόσβαση σε δεδομένα χρέωσης προγραμματιστικά.

Πιστοποίηση

Όλα τα αιτήματα API πιστοποιούνται χρησιμοποιώντας ένα κλειδί API που αποστέλλεται στην κεφαλίδα X-Api-Key.

Απόκτηση του κλειδιού API σας

  1. Μεταβείτε στις Ρυθμίσεις → Κλειδιά API στον πίνακά σας
  2. Κάντε κλικ στο Δημιουργία κλειδιού API και δώστε του ένα όνομα
  3. Αντιγράψτε το κλειδί αμέσως — εμφανίζεται μόνο μία φορά
  4. Αποθηκεύστε το με ασφάλεια (μεταβλητή περιβάλλοντος, διαχειριστής μυστικών)

Κάνοντας αιτήματα

Συμπεριλάβετε το κλειδί σε κάθε αίτημα:

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

Όλες οι απαντήσεις είναι JSON. Οι επιτυχείς απαντήσεις έχουν ένα πεδίο data. Τα σφάλματα έχουν ένα πεδίο error με code και message.

Ασφάλεια: Τα κλειδιά API είναι hashed (SHA-256) στη βάση δεδομένων μας. Δεν αποθηκεύουμε ποτέ το raw κλειδί. Μεταχειριστείτε το κλειδί σας σαν κωδικό — μην το commit σε κώδικα ή μοιραστείτε το δημόσια.

Base URL

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

Όλα τα endpoints παρακάτω είναι σχετικά με αυτό το base URL.

Endpoints

GET /widgets

Λίστα όλων των widgets για τον λογαριασμό σας.

Απάντηση

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

GET /conversations

Λίστα συνομιλιών, ταξινομημένων κατά το πιο πρόσφατο μήνυμα.

Παράμετροι ερωτήματος

ΠαράμετροςΤύποςΠεριγραφή
statusstringΦίλτρο κατά κατάσταση: open, pending, closed
widgetIdstringΦίλτρο κατά UUID widget
limitintegerΜέγιστα αποτελέσματα (προεπιλογή 20, μέγιστο 100)
offsetintegerΠαράλειψη N αποτελεσμάτων

Παράδειγμα

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

Απάντηση

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

Λήψη συνομιλίας με όλα τα μηνύματα.

Παράμετροι ερωτήματος

ΠαράμετροςΤύποςΠεριγραφή
limitintegerΜέγιστα μηνύματα (προεπιλογή 50, μέγιστο 200)

Απάντηση

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

Αποστολή μηνύματος σε μια συνομιλία. Το μήνυμα θα παραδοθεί στον επισκέπτη σε πραγματικό χρόνο μέσω του widget chat.

Σώμα αιτήματος

{'{'}
  "content": "Thanks for reaching out! We'll process your request.",
  "role": "system"
}
ΠεδίοΤύποςΠεριγραφή
contentstringΑπαιτείται. Το κείμενο του μηνύματος.
rolestringsystem (προεπιλογή) ή operator

Απάντηση (201 Created)

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

PATCH /conversations/{'{'}id}

Ενημέρωση της κατάστασης ή της ανάθεσης μιας συνομιλίας.

Σώμα αιτήματος

{'{'}
  "status": "closed"
}
ΠεδίοΤύποςΠεριγραφή
statusstringopen, pending, ή closed
assignedTostring|nullUUID χειριστή για ανάθεση, ή null για αποδέσμευση

GET /billing/balance

Λήψη του τρέχοντος πλάνου και του υπολοίπου πιστώσεων.

Απάντηση

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

Χειρισμός σφαλμάτων

Τα σφάλματα επιστρέφουν έναν μη-2xx κωδικό κατάστασης με σώμα JSON:

{'{'}
  "error": {'{'}
    "code": "NOT_FOUND",
    "message": "Conversation not found."
  }
}
Κατάσταση HTTPΣημασία
401Μη έγκυρο, ληγμένο ή ελλείπον κλειδί API
400Μη έγκυρο σώμα αιτήματος ή παράμετροι
404Πόρος δεν βρέθηκε (ή ανήκει σε διαφορετικό tenant)
500Σφάλμα server

Κοινές περιπτώσεις χρήσης

Ενσωμάτωση CRM

Polling για νέες συνομιλίες και συγχρονισμός δεδομένων επισκεπτών (όνομα, email, γλώσσα) στο CRM σας. Χρησιμοποιήστε το ID συνομιλίας ως εξωτερική αναφορά.

Αυτοματοποιημένα follow-ups

Μετά το κλείσιμο μιας συνομιλίας, στείλτε ένα follow-up μήνυμα μέσω του API: «Ευχαριστούμε για τη συνομιλία! Μπορούμε να σας βοηθήσουμε με κάτι άλλο;»

Εναλλακτική webhook

Μέχρι να είναι διαθέσιμα τα εξερχόμενα webhooks, κάντε polling στο endpoint συνομιλιών περιοδικά για να ανιχνεύσετε νέα μηνύματα ή αλλαγές κατάστασης.

Μαζικές λειτουργίες

Κλείστε όλες τις συνομιλίες παλαιότερες των 7 ημερών, αναθέστε συνομιλίες σε χειριστές βάσει εξωτερικής λογικής ή εξαγάγετε ιστορικό συνομιλιών για analytics.

Rate Limits

Το API επιτρέπει έως 60 αιτήματα ανά λεπτό ανά κλειδί API. Αν υπερβείτε αυτό το όριο, θα λάβετε απάντηση 429 Too Many Requests. Περιμένετε και επαναπροσπαθήστε με εκθετικό backoff.

Έτοιμοι να ενσωματώσετε;

Δημιουργήστε τον δωρεάν λογαριασμό σας και δημιουργήστε ένα κλειδί API σε λεπτά.

Ξεκινήστε δωρεάν