Αναφορά API
Ενσωματώστε το enuchat στα συστήματά σας χρησιμοποιώντας το Tenant API. Διαχειριστείτε συνομιλίες, στείλτε μηνύματα και αποκτήστε πρόσβαση σε δεδομένα χρέωσης προγραμματιστικά.
Πιστοποίηση
Όλα τα αιτήματα API πιστοποιούνται χρησιμοποιώντας ένα κλειδί API που αποστέλλεται στην κεφαλίδα X-Api-Key.
Απόκτηση του κλειδιού API σας
- Μεταβείτε στις Ρυθμίσεις → Κλειδιά API στον πίνακά σας
- Κάντε κλικ στο Δημιουργία κλειδιού API και δώστε του ένα όνομα
- Αντιγράψτε το κλειδί αμέσως — εμφανίζεται μόνο μία φορά
- Αποθηκεύστε το με ασφάλεια (μεταβλητή περιβάλλοντος, διαχειριστής μυστικών)
Κάνοντας αιτήματα
Συμπεριλάβετε το κλειδί σε κάθε αίτημα:
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
Λίστα συνομιλιών, ταξινομημένων κατά το πιο πρόσφατο μήνυμα.
Παράμετροι ερωτήματος
| Παράμετρος | Τύπος | Περιγραφή |
|---|---|---|
status | string | Φίλτρο κατά κατάσταση: open, pending, closed |
widgetId | string | Φίλτρο κατά UUID widget |
limit | integer | Μέγιστα αποτελέσματα (προεπιλογή 20, μέγιστο 100) |
offset | integer | Παράλειψη 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}
Λήψη συνομιλίας με όλα τα μηνύματα.
Παράμετροι ερωτήματος
| Παράμετρος | Τύπος | Περιγραφή |
|---|---|---|
limit | integer | Μέγιστα μηνύματα (προεπιλογή 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"
}| Πεδίο | Τύπος | Περιγραφή |
|---|---|---|
content | string | Απαιτείται. Το κείμενο του μηνύματος. |
role | string | system (προεπιλογή) ή 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"
}| Πεδίο | Τύπος | Περιγραφή |
|---|---|---|
status | string | open, pending, ή closed |
assignedTo | string|null | UUID χειριστή για ανάθεση, ή 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 σε λεπτά.
Ξεκινήστε δωρεάν