Επιστροφή στον Πίνακα Ελέγχου

Τεκμηρίωση

Μάθετε πώς να χρησιμοποιείτε το Asyntai

Λειτουργίες
Μπάρα Ask AI Μπάρα Αναζήτησης AI Αναζήτηση με τεχνητή νοημοσύνη για WordPress Ανίχνευση Ιστότοπου Κενά Γνώσης Κάρτες Προϊόντων Δυναμικές Κάρτες Προϊόντων Δυναμικές εικόνες Πλαίσιο Χρήστη Προσαρμοσμένα εργαλεία Παράμετροι συνδέσμων Ζωντανή Παρακολούθηση Ανάληψη από Άνθρωπο Κλιμάκωση Ειδοποιήσεις AI Ημερήσια Αναφορά Ροή Δεδομένων Πραγματικού Χρόνου Μέγιστη Ροή Δεδομένων Πραγματικού Χρόνου Μέλη Ομάδας Ενιαία Σύνδεση Έλεγχος ταυτότητας δύο παραγόντων Συμπερίληψη Εικόνων Ανάλυση Εικόνας Widget Μετάφρασης Τοπικοποίηση Διαφάνεια AI Δυνητικοί Πελάτες Έξυπνη Καταγραφή Δυνητικών Πελατών Εισιτήρια Υποστήριξης Κρατήσεις Ενσωματώσεις Εξαίρεση Σελίδων Αποκλεισμένες IPs Πολιτική διατήρησης Λειτουργία μηδενικής διατήρησης Απόκρυψη PII Ταξινομητής απαντήσεων Access Tags Καρφίτσωμα Έκδοσης Widget Αρχείο ελέγχου Εξυπνότερο Μοντέλο Ενεργοποίηση Σκέψης Προτάσεις Απάντησης Μηνύματα Παρακολούθησης Ομιλία σε Κείμενο Λήψη Μεταγραφής Ενσωματωμένη Συνομιλία Iframe Embed

Αναφορά API

Δημιουργήστε προσαρμοσμένες ενσωματώσεις με το Asyntai REST API

Λήψη Κλειδιού API

Απαιτείται Επί Πληρωμή Πλάνο: Η πρόσβαση στο API είναι διαθέσιμη στα πλάνα Starter, Standard και Pro. Προβολή τιμών

Επισκόπηση

The Asyntai API allows you to integrate AI-powered customer support into any application. Send messages and receive intelligent responses grounded in your website content and knowledge base.

Ταυτοποίηση

Όλα τα αιτήματα API απαιτούν ταυτοποίηση με το κλειδί API σας. Μπορείτε να λάβετε το κλειδί API σας από τη σελίδα Ρυθμίσεις API.

Συμπεριλάβετε το κλειδί API σας στα αιτήματα χρησιμοποιώντας μία από αυτές τις μεθόδους:

  • Κεφαλίδα Authorization (συνιστάται): Authorization: Bearer YOUR_API_KEY
  • Κεφαλίδα X-API-Key: X-API-Key: YOUR_API_KEY

Κρατήστε το κλειδί API σας μυστικό. Όποιος έχει το κλειδί σας μπορεί να αποκτήσει πρόσβαση στον λογαριασμό σας μέσω του API. Μην το εκθέτετε ποτέ σε κώδικα από την πλευρά του πελάτη.

Βασικό URL

https://asyntai.com/api/v1/

Τελικά Σημεία

POST /chat/

Στείλτε ένα μήνυμα και λάβετε μια απάντηση που δημιουργήθηκε από AI.

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

{
  "message": "What are your business hours?",
  "session_id": "user_123",      // optional
  "website_id": 1                 // optional
}
Παράμετρος Τύπος Απαιτούμενο Περιγραφή
message string Ναι Το μήνυμα του χρήστη για αποστολή στην τεχνητή νοημοσύνη
session_id string Όχι Μοναδικό αναγνωριστικό για τη συνομιλία. Χρησιμοποιήστε το ίδιο session_id για τη διατήρηση του ιστορικού συνομιλίας.
website_id integer Όχι Συγκεκριμένο ID ιστότοπου ή αφήστε κενό για χρήση του κύριου ιστότοπου

Απόκριση

{
  "success": true,
  "response": "Our business hours are Monday-Friday, 9 AM to 5 PM EST.",
  "session_id": "user_123"
}

Παράδειγμα (cURL)

curl -X POST https://asyntai.com/api/v1/chat/ \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"message": "What are your business hours?", "session_id": "user_123"}'

Παράδειγμα (Python)

import requests

response = requests.post(
    "https://asyntai.com/api/v1/chat/",
    headers={
        "Authorization": "Bearer YOUR_API_KEY",
        "Content-Type": "application/json"
    },
    json={
        "message": "What are your business hours?",
        "session_id": "user_123"
    }
)

data = response.json()
print(data["response"])

Παράδειγμα (JavaScript)

const response = await fetch("https://asyntai.com/api/v1/chat/", {
  method: "POST",
  headers: {
    "Authorization": "Bearer YOUR_API_KEY",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    message: "What are your business hours?",
    session_id: "user_123"
  })
});

const data = await response.json();
console.log(data.response);

GET /websites/

Λίστα όλων των ιστοσελίδων που συνδέονται με τον λογαριασμό σας.

Απόκριση

{
  "success": true,
  "websites": [
    {
      "id": 1,
      "name": "My Website",
      "domain": "example.com",
      "is_primary": true
    }
  ]
}

Παράδειγμα (cURL)

curl https://asyntai.com/api/v1/websites/ \
  -H "Authorization: Bearer YOUR_API_KEY"

POST /websites/

Create a new AI agent. This does the same thing as adding a website in your dashboard: it makes the agent, reads your site, and writes the first draft of the AI instructions.

Use this to set up customers from your own software. You get back the widget ID and the code to put on the website.

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

Πεδίο Τύπος Περιγραφή
domain string Required. The website address, for example example.com
name string Optional. A display name for the agent. Useful when one website has several agents.
crawl boolean Optional, true by default. Set it to false to create the agent without reading the website. Nothing is crawled and no instructions are written.
force boolean Optional, false by default. Set it to true to add a website you already have. The copy is stored with a number after it.

Απόκριση

{
  "success": true,
  "website": {
    "id": 42,
    "domain": "example.com",
    "name": "Support agent",
    "widget_id": "asyntai_ab12cd34ef56",
    "is_primary": true,
    "crawl_started": true,
    "instructions_status": "generating",
    "job_id": "8f2c1e90-..."
  },
  "embed_code": "<script>...</script>"
}

Παράδειγμα (cURL)

curl -X POST https://asyntai.com/api/v1/websites/ \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"domain": "example.com", "name": "Support agent"}'

Reading a website takes a few minutes, so this call answers straight away. Check when the agent is ready with the next endpoint.

Errors

Code Meaning
403 You have reached the number of websites your plan allows. The answer tells you the limit.
409 Your account already has this website. Send force as true to add it again.

GET /websites/{id}/

Get one website and see whether it is ready. Use this after you create an agent, to wait until the website has been read and the AI instructions are written.

Απόκριση

{
  "success": true,
  "website": {
    "id": 42,
    "domain": "example.com",
    "name": "Support agent",
    "widget_id": "asyntai_ab12cd34ef56",
    "is_primary": true,
    "created_at": "2026-08-11T09:12:00+00:00",
    "ready": true,
    "instructions": {
      "status": "completed",
      "has_instructions": true,
      "characters": 3421
    },
    "crawl": {
      "job_id": "8f2c1e90-...",
      "status": "completed",
      "pages_crawled": 47,
      "pages_found": 50,
      "max_pages": 50,
      "completed_at": "2026-08-11T09:15:31+00:00",
      "error": ""
    },
    "knowledge_items": 47
  },
  "embed_code": "<script>...</script>"
}

The ready field is true when nothing is still running. A crawl that failed also counts as ready, because it has finished. Look at the crawl status to see what happened.

Παράδειγμα (cURL)

curl https://asyntai.com/api/v1/websites/42/ \
  -H "Authorization: Bearer YOUR_API_KEY"

GET PATCH /websites/{id}/settings/

Read or change the chat widget settings for one website. These are the same settings you see on the Customize page: colours, the name of the assistant, the first message, lead capture, and everything else.

Reading the settings

A GET request returns every setting with its current value, plus a locked list. Locked shows the settings your plan cannot change, and which plans they need.

{
  "success": true,
  "settings": {
    "ai_support_name": "AI Assistant",
    "widget_color": "#6366f1",
    "initial_message": "Hi, how can I help you?",
    "hide_branding": false,
    "...": "..."
  },
  "locked": {
    "hide_branding": ["pro", "enterprise"],
    "widget_style": ["pro", "enterprise"]
  }
}

Changing the settings

A PATCH request changes only the settings you send. Everything you leave out stays as it is.

curl -X PATCH https://asyntai.com/api/v1/websites/42/settings/ \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"ai_support_name": "Ava", "widget_color": "#0f172a", "use_emoji": true}'
{
  "success": true,
  "updated": ["ai_support_name", "use_emoji", "widget_color"],
  "settings": { "...": "..." },
  "locked": { "...": "..." }
}

Plans

Each setting needs its own plan, the same as in the dashboard. For example, hiding the Asyntai branding needs the Pro plan, and voice input needs Standard.

Plan needed Ρυθμίσεις Examples
Any paid plan 25 widget_color, ai_support_name, initial_message
Starter και άνω 22 profile_picture, conversation_starters_enabled
Standard και άνω 25 speech_to_text_enabled, image_vision_enabled, escalation_enabled
Pro 6 hide_branding, widget_style

If you send a setting your plan does not allow, the whole request is refused with code 403 and nothing is saved. The same happens if any value is wrong, for example a colour that is not a hex code. Your settings never end up half changed.

GET PUT /websites/{id}/instructions/

Read or replace the AI instructions for one website. These are the rules that tell the assistant who it is, what it may say, and what it must not say. They are the same instructions you edit in the dashboard.

Reading

{
  "success": true,
  "instructions": "You are the support agent for Acme Tools...",
  "characters": 1979,
  "version": 7,
  "mode": "instructions",
  "ask_questions": true,
  "generation_status": "completed",
  "being_edited_by": null
}

Replacing

A PUT request replaces the whole text, the same as saving in the dashboard. There is no append mode. To add a paragraph, read the instructions, add your text, then write it back.

curl -X PUT https://asyntai.com/api/v1/websites/42/instructions/ \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"instructions": "You are the support agent for Acme Tools...", "version": 7}'

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

Πεδίο Τύπος Περιγραφή
instructions string Required. The complete new text. It replaces everything that was there.
version number Optional but recommended. The version you read. If somebody changed the instructions since then, your write is refused instead of overwriting their work.
mode string Optional. Either instructions or general.
ask_questions boolean Optional. Whether the assistant asks a follow-up question at the end of its answers.
force boolean Optional, false by default. Needed only when your new text is less than half the length of the current text.

How your instructions are protected

Instructions can take hours to write, so a write can be refused to protect them:

Code Meaning
400 Your new text is less than half the length of the current text. This catches a script that sends empty or cut-off text over instructions somebody spent hours on. Send force as true if you meant it.
409 The instructions changed after you read them. Read them again, apply your change, then write.
423 Somebody is editing the instructions in the dashboard right now. The answer tells you who. Try again in a couple of minutes.

Every change also saves a copy of the previous text, so an earlier version can always be restored from the dashboard.

GET /conversations/

Ανάκτηση ιστορικού συνομιλίας για συγκεκριμένη συνεδρία.

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

Παράμετρος Τύπος Απαιτούμενο Περιγραφή
session_id string Ναι Το ID συνεδρίας για ανάκτηση ιστορικού
limit integer Όχι Μέγιστος αριθμός μηνυμάτων για επιστροφή (προεπιλογή: 50, μέγιστο: 100)

Απόκριση

{
  "success": true,
  "session_id": "user_123",
  "messages": [
    {
      "role": "user",
      "content": "What are your business hours?",
      "timestamp": "2024-01-15T10:30:00Z"
    },
    {
      "role": "assistant",
      "content": "Our business hours are Monday-Friday, 9 AM to 5 PM EST.",
      "timestamp": "2024-01-15T10:30:01Z",
      "sender_type": "ai",
      "agent_name": null,
      "response_time_ms": 1840.5
    }
  ]
}

Μια ερώτηση και η απάντησή της αποθηκεύονται σε μία εγγραφή, επομένως και οι δύο φέρουν το ίδιο timestamp. Μην αφαιρείτε το ένα από το άλλο για να μετρήσετε την ταχύτητα απάντησης, γιατί το αποτέλεσμα είναι πάντα μηδέν. Χρησιμοποιήστε το response_time_ms, που είναι ο πραγματικός χρόνος της απάντησης σε χιλιοστά του δευτερολέπτου.

Το sender_type είναι ai όταν απάντησε το chatbot και human όταν κάποιος από τους πράκτορές σας ανέλαβε τη συνομιλία. Το agent_name περιέχει το εμφανιζόμενο όνομα αυτού του πράκτορα.

Παράδειγμα (cURL)

curl "https://asyntai.com/api/v1/conversations/?session_id=user_123&limit=20" \
  -H "Authorization: Bearer YOUR_API_KEY"

GET /sessions/

Λίστα των πρόσφατων συνεδριών συνομιλίας σας. Χρησιμοποιήστε το για να ανακαλύψετε τα ID συνεδριών, τα οποία μπορείτε στη συνέχεια να περάσετε στο /conversations/ για ανάκτηση του πλήρους ιστορικού μηνυμάτων.

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

Παράμετρος Τύπος Απαιτούμενο Περιγραφή
limit integer Όχι Αριθμός πρόσφατων συνεδριών για επιστροφή (προεπιλογή: 20, μέγιστο: 100)
website_id string Όχι Φιλτράρισμα συνεδριών βάσει συγκεκριμένου ID ιστοσελίδας
source string Όχι Φιλτράρισμα ανά πηγή συνεδρίας: widget, api, whatsapp, instagram, messenger, gorgias, freshchat, zapier

Απόκριση

{
  "success": true,
  "sessions": [
    {
      "session_id": "session_abc123def",
      "source": "widget",
      "message_count": 5,
      "first_message": "What are your business hours?",
      "first_message_at": "2024-01-15T10:30:00Z",
      "last_message_at": "2024-01-15T10:35:00Z",
      "first_response_time_ms": 1840.5,
      "first_human_response_at": null,
      "started_at": "2024-01-15T10:29:58Z",
      "ended_at": "2024-01-15T10:41:12Z",
      "taken_over_at": null,
      "website_domain": "example.com"
    }
  ]
}

Πεδία χρονικών σημάτων για αναφορές

Πεδίο Περιγραφή
started_at Πότε ο επισκέπτης άνοιξε τη συνομιλία. Διαθέσιμο μόνο για συνεδρίες του widget, επειδή οι συνεδρίες που δημιουργούνται μέσω του API δεν ανοίγουν ποτέ widget.
first_message_at Πότε αποθηκεύτηκε το πρώτο μήνυμα της συνομιλίας.
first_response_time_ms Πόσο χρόνο χρειάστηκε η πρώτη απάντηση, σε χιλιοστά του δευτερολέπτου. Χρησιμοποιήστε το για τον χρόνο πρώτης απάντησης.
first_human_response_at Πότε κάποιος από τους πράκτορές σας έστειλε την πρώτη απάντηση. Η τιμή είναι null όταν το chatbot χειρίστηκε όλη τη συνομιλία.
taken_over_at Πότε ένας πράκτορας ανέλαβε τη συνομιλία από το chatbot.
last_message_at Πότε αποθηκεύτηκε το τελευταίο μήνυμα της συνομιλίας.
ended_at Πότε ο επισκέπτης έφυγε από τη συνομιλία. Μια συνομιλία δεν έχει κατάσταση επιλυμένη ή κλειστή, επειδή ο επισκέπτης μπορεί πάντα να επιστρέψει και να κάνει άλλη ερώτηση.

Όλα τα χρονικά σήματα είναι σε UTC και χρησιμοποιούν τη μορφή ISO 8601. Δεν μπορείτε να αλλάξετε τη ζώνη ώρας. Μετατρέψτε τις τιμές στο δικό σας εργαλείο αναφορών.

Παράδειγμα (cURL)

curl "https://asyntai.com/api/v1/sessions/?limit=10" \
  -H "Authorization: Bearer YOUR_API_KEY"

GET /leads/

Ανάκτηση συλλεγμένων leads — διευθύνσεις email και αριθμοί τηλεφώνου που υποβλήθηκαν από επισκέπτες κατά τη διάρκεια συνομιλιών.

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

Παράμετρος Τύπος Απαιτούμενο Περιγραφή
limit integer Όχι Αριθμός leads προς επιστροφή (προεπιλογή: 50, μέγ: 100)
website_id string Όχι Φιλτράρισμα leads ανά συγκεκριμένο αναγνωριστικό ιστοσελίδας

Απόκριση

{
  "success": true,
  "leads": [
    {
      "session_id": "session_abc123def",
      "email": "[email protected]",
      "phone": "+1234567890",
      "page_url": "https://example.com/pricing",
      "started_at": "2024-01-15T10:30:00Z"
    }
  ]
}
Πεδίο Τύπος Περιγραφή
session_id string Αναγνωριστικό συνεδρίας συνομιλίας. Περάστε το στο /conversations/ για να δείτε το πλήρες ιστορικό συνομιλίας.
email συμβολοσειρά ή null Διεύθυνση email που παρέχεται από τον επισκέπτη, ή null αν δεν συλλέχθηκε
phone συμβολοσειρά ή null Αριθμός τηλεφώνου που παρέχεται από τον επισκέπτη, ή null αν δεν συλλέχθηκε
page_url συμβολοσειρά ή null Η διεύθυνση URL της σελίδας όπου ο επισκέπτης συνομιλούσε
started_at string Χρονοσφραγίδα ISO 8601 της έναρξης της συνεδρίας συνομιλίας

Παράδειγμα (cURL)

curl "https://asyntai.com/api/v1/leads/?limit=20" \
  -H "Authorization: Bearer YOUR_API_KEY"

Παράδειγμα (Python)

import requests

response = requests.get(
    "https://asyntai.com/api/v1/leads/",
    headers={"Authorization": "Bearer YOUR_API_KEY"},
    params={"limit": 20}
)

leads = response.json()["leads"]
for lead in leads:
    print(f"{lead['email'] or ''} | {lead['phone'] or ''}")

GET /account/

Λάβετε τις πληροφορίες λογαριασμού σας και στατιστικά χρήσης.

Απόκριση

{
  "success": true,
  "account": {
    "email": "[email protected]",
    "plan": "starter",
    "messages_used": 150,
    "messages_limit": 2500
  }
}

Παράδειγμα (cURL)

curl https://asyntai.com/api/v1/account/ \
  -H "Authorization: Bearer YOUR_API_KEY"

Πολλαπλές ιστοσελίδες; Τα τελικά σημεία βάσης γνώσεων προεπιλέγουν την κύρια ιστοσελίδα σας. Αν έχετε πολλαπλές ιστοσελίδες, περάστε website_id για να στοχεύσετε έναν συγκεκριμένο. Μπορείτε να βρείτε τα αναγνωριστικά ιστότοπου χρησιμοποιώντας GET /websites/.

Ημερήσια όρια μεταφόρτωσης: Οι μεταφορτώσεις βάσης γνώσεων (κείμενο, URL, υπολογιστικό φύλλο) υπόκεινται σε ημερήσιο όριο χαρακτήρων βάσει του πλάνου σας. Αυτό ισχύει για το συνολικό περιεχόμενο που μεταφορτώνεται σε όλα τα τελικά σημεία βάσης γνώσεων ανά ημέρα.

Πλάνο Χαρακτήρες/ημέρα
Starter300.000
Standard1.500.000
Pro6.000.000

GET /knowledge/

Λίστα των καταχωρήσεων βάσης γνώσεων σας. Αυτές είναι οι πηγές περιεχομένου που χρησιμοποιεί το chatbot τεχνητής νοημοσύνης σας για να απαντά σε ερωτήσεις.

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

Παράμετρος Τύπος Απαιτούμενο Περιγραφή
limit integer Όχι Αριθμός καταχωρήσεων για επιστροφή (προεπιλογή: 50, μέγιστο: 100)
website_id string Όχι Φιλτράρισμα βάσει ID ιστοσελίδας (προεπιλογή στην κύρια ιστοσελίδα σας)

Απόκριση

{
  "success": true,
  "entries": [
    {
      "id": "abc-123-def",
      "type": "text",
      "title": "Business Hours",
      "description": "Manual text content (150 words)",
      "created_at": "2024-01-15T10:30:00Z"
    },
    {
      "id": "ghi-456-jkl",
      "type": "url",
      "title": "About Us - Example",
      "description": "Content from https://example.com/about",
      "created_at": "2024-01-14T09:00:00Z"
    }
  ]
}

Παράδειγμα (cURL)

curl "https://asyntai.com/api/v1/knowledge/?limit=10" \
  -H "Authorization: Bearer YOUR_API_KEY"

POST /knowledge/text/

Προσθέστε προσαρμοσμένο περιεχόμενο κειμένου στη βάση γνώσεων σας. Η τεχνητή νοημοσύνη θα το χρησιμοποιήσει για να απαντά στις ερωτήσεις των επισκεπτών.

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

{
  "title": "Return Policy",
  "content": "We offer a 30-day return policy on all items. Items must be unused and in original packaging. Refunds are processed within 5-7 business days.",
  "website_id": "123"
}
Παράμετρος Τύπος Απαιτούμενο Περιγραφή
title string Ναι Τίτλος για αυτή την καταχώρηση γνώσης
content string Ναι Το περιεχόμενο κειμένου (ελάχιστο 10 χαρακτήρες)
website_id string Όχι Ιστοσελίδα στόχος (προεπιλογή στην κύρια ιστοσελίδα σας)

Απόκριση

{
  "success": true,
  "id": "abc-123-def",
  "title": "Return Policy",
  "chunks_created": 1
}

Παράδειγμα (cURL)

curl -X POST "https://asyntai.com/api/v1/knowledge/text/" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"title": "Return Policy", "content": "We offer a 30-day return policy..."}'

POST /knowledge/url/

Προσθέστε μια ιστοσελίδα στη βάση γνώσεων σας. Το περιεχόμενο θα ανακτηθεί και θα εξαχθεί αυτόματα.

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

{
  "url": "https://example.com/faq",
  "website_id": "123"
}
Παράμετρος Τύπος Απαιτούμενο Περιγραφή
url string Ναι Το URL από το οποίο θα ανακτηθεί το περιεχόμενο
website_id string Όχι Ιστοσελίδα στόχος (προεπιλογή στην κύρια ιστοσελίδα σας)

Απόκριση

{
  "success": true,
  "id": "abc-123-def",
  "title": "FAQ - Example",
  "url": "https://example.com/faq",
  "chunks_created": 5
}

Παράδειγμα (cURL)

curl -X POST "https://asyntai.com/api/v1/knowledge/url/" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://example.com/faq"}'

POST /knowledge/spreadsheet/

Μεταφορτώστε ένα υπολογιστικό φύλλο CSV ή Excel (.xlsx) στη βάση γνώσεων σας. Κάθε γραμμή γίνεται ξεχωριστή καταχώρηση γνώσης, ιδανικό για καταλόγους προϊόντων, λίστες FAQ, πίνακες τιμολόγησης και καταλόγους.

Αίτημα

Αποστολή ως multipart/form-data (μεταφόρτωση αρχείου), όχι JSON.

Παράμετρος Τύπος Απαιτούμενο Περιγραφή
file αρχείο Ναι Ένα αρχείο .csv ή .xlsx. Η πρώτη γραμμή πρέπει να είναι κεφαλίδες στηλών. Μέγιστες γραμμές ανά μεταφόρτωση: Starter 500, Standard 2.000, Pro 10.000. Οι επιπλέον γραμμές αποκόπτονται.
website_id string Όχι Ιστοσελίδα στόχος (προεπιλογή στην κύρια ιστοσελίδα σας)

Απόκριση

{
  "success": true,
  "id": "abc-123-def",
  "title": "products.csv",
  "rows_processed": 15,
  "chunks_created": 15
}

Παράδειγμα (cURL)

curl -X POST "https://asyntai.com/api/v1/knowledge/spreadsheet/" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "[email protected]"

GET /knowledge/{id}/

Διαβάστε μία καταχώριση της βάσης γνώσεων, μαζί με το κείμενο που είναι αποθηκευμένο για αυτήν. Το id προέρχεται από την απόκριση του GET /knowledge/.

Το περιεχόμενο επιστρέφεται για τις καταχωρίσεις που προσθέσατε εσείς: κείμενο, αρχεία, υπολογιστικά φύλλα, μεμονωμένες διευθύνσεις URL και βίντεο. Η σάρωση ιστότοπου εμφανίζεται στη λίστα, αλλά οι σελίδες της δεν επιστρέφονται, επειδή η πηγή είναι ο δικός σας δημόσιος ιστότοπος. Σε αυτήν την περίπτωση το content είναι null και το πεδίο reason εξηγεί τον λόγο.

Απόκριση

{
  "success": true,
  "id": "abc-123-def",
  "type": "text",
  "title": "Business Hours",
  "description": "Manual text content (150 words)",
  "created_at": "2024-01-15T10:30:00Z",
  "chunks_count": 3,
  "content": "We are open Monday to Friday, 9am to 5pm...",
  "content_available": true,
  "char_count": 43
}

Παράδειγμα (cURL)

curl "https://asyntai.com/api/v1/knowledge/abc-123-def/" \
  -H "Authorization: Bearer YOUR_API_KEY"

DELETE /knowledge/{id}/

Διαγράψτε μια καταχώρηση βάσης γνώσεων. Το id μπορεί να βρεθεί από την απόκριση GET /knowledge/.

Απόκριση

{
  "success": true,
  "message": "Knowledge base entry deleted"
}

Παράδειγμα (cURL)

curl -X DELETE "https://asyntai.com/api/v1/knowledge/abc-123-def/" \
  -H "Authorization: Bearer YOUR_API_KEY"

Συμβουλή: Μπορείτε επίσης να διαχειριστείτε webhooks από τη Ρυθμίσεις API σελίδα χωρίς να γράψετε κώδικα.

GET /webhooks/

Λίστα των καταχωρημένων webhooks σας.

Απόκριση

{
  "success": true,
  "webhooks": [
    {
      "id": "abc-123-def",
      "url": "https://example.com/webhook",
      "events": ["message.received", "escalation.requested"],
      "is_active": true,
      "created_at": "2024-01-15T10:30:00Z"
    }
  ]
}

Παράδειγμα (cURL)

curl "https://asyntai.com/api/v1/webhooks/" \
  -H "Authorization: Bearer YOUR_API_KEY"

POST /webhooks/

Καταχωρήστε ένα νέο webhook για να λαμβάνετε ειδοποιήσεις συμβάντων σε πραγματικό χρόνο.

Διαθέσιμα Συμβάντα

Συμβάν Περιγραφή
message.received Ένας επισκέπτης έστειλε ένα μήνυμα και έλαβε απόκριση
conversation.started Ξεκίνησε μια νέα συνεδρία συνομιλίας
escalation.requested Η τεχνητή νοημοσύνη εκκίνησε κλιμάκωση σε ανθρώπινο εκπρόσωπο
takeover.started Ένας ανθρώπινος εκπρόσωπος ανέλαβε μια συνεδρία συνομιλίας

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

{
  "url": "https://example.com/webhook",
  "events": ["message.received", "escalation.requested"],
  "website_id": "123"
}
Παράμετρος Τύπος Απαιτούμενο Περιγραφή
url string Ναι Το HTTPS URL για λήψη αιτημάτων POST webhook
events array Ναι Λίστα συμβάντων για εγγραφή (βλ. πίνακα παραπάνω)
website_id string Όχι Ιστοσελίδα στόχος (προεπιλογή στην κύρια ιστοσελίδα σας)

Απόκριση

{
  "success": true,
  "webhook": {
    "id": "abc-123-def",
    "url": "https://example.com/webhook",
    "events": ["message.received", "escalation.requested"],
    "secret": "whsec_abc123...",
    "created_at": "2024-01-15T10:30:00Z"
  }
}

Επαλήθευση webhooks: Κάθε webhook περιλαμβάνει ένα secret (εμφανίζεται μόνο κατά τη δημιουργία). Κάθε POST στο URL σας περιλαμβάνει ένα X-Webhook-Signature header — ένα HMAC-SHA256 του σώματος αιτήματος υπογεγραμμένο με το μυστικό σας.

Παράδειγμα (cURL)

curl -X POST "https://asyntai.com/api/v1/webhooks/" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://example.com/webhook", "events": ["message.received"]}'

DELETE /webhooks/{id}/

Διαγράψτε ένα webhook. Το id μπορεί να βρεθεί από την απόκριση GET /webhooks/.

Απόκριση

{
  "success": true,
  "message": "Webhook deleted"
}

Παράδειγμα (cURL)

curl -X DELETE "https://asyntai.com/api/v1/webhooks/abc-123-def/" \
  -H "Authorization: Bearer YOUR_API_KEY"

Αποκρίσεις Σφαλμάτων

Όλες οι αποκρίσεις σφαλμάτων ακολουθούν αυτή τη μορφή:

{
  "success": false,
  "error": "Error message describing what went wrong"
}
Κωδικός Κατάστασης Περιγραφή
400 Κακό Αίτημα - Μη έγκυρες παράμετροι ή απουσία απαιτούμενων πεδίων
401 Μη εξουσιοδοτημένο - Μη έγκυρο ή απόν κλειδί API
429 Πολλά Αιτήματα - Συμπληρώθηκε το όριο μηνυμάτων του πλάνου σας
503 Υπηρεσία Μη Διαθέσιμη - Η υπηρεσία AI είναι προσωρινά μη διαθέσιμη

Όρια Ρυθμού

Η χρήση API περιορίζεται από το πλάνο συνδρομής σας:

  • Δωρεάν: 100 μηνύματα/μήνα
  • Starter ($39/μήνα): 2.500 μηνύματα/μήνα
  • Standard ($139/μήνα): 15.000 μηνύματα/μήνα
  • Pro ($449/μήνα): 50.000 μηνύματα/μήνα

Χρειάζεστε Βοήθεια;

Αν έχετε οποιεσδήποτε ερωτήσεις ή αντιμετωπίσετε προβλήματα, επικοινωνήστε μαζί μας στο [email protected].