API dokumentacija
Kurkite pasirinktinius integravimus su Asyntai REST API
Reikalingas mokamas planas: API prieiga prieinama Starter, Standard ir Pro planuose. Peržiūrėti kainas
Apžvalga
Asyntai API leidžia integruoti DI pagrįstą klientų aptarnavimą į bet kurią programą. Siųskite žinutes ir gaukite intelektualius atsakymus, apmokytus pagal jūsų svetainės turinį ir žinių bazę.
Autentifikacija
Visoms API užklausoms reikalinga autentifikacija naudojant jūsų API raktą. Savo API raktą galite gauti API nustatymų puslapyje.
Įtraukite savo API raktą į užklausas naudodami vieną iš šių metodų:
- Authorization antraštė (rekomenduojama):
Authorization: Bearer YOUR_API_KEY - X-API-Key antraštė:
X-API-Key: YOUR_API_KEY
Laikykite savo API raktą slaptai. Bet kas su jūsų raktu gali pasiekti jūsų paskyrą per API. Niekada nerodykite jo kliento pusės kode.
Bazinis URL
https://asyntai.com/api/v1/
Galiniai taškai
POST /chat/
Siųskite žinutę ir gaukite DI sugeneruotą atsakymą.
Užklausos turinys
{
"message": "What are your business hours?",
"session_id": "user_123", // optional
"website_id": 1 // optional
}
| Parametras | Tipas | Privalomas | Aprašymas |
|---|---|---|---|
message |
string | Taip | Naudotojo žinutė, siunčiama DI |
session_id |
string | Ne | Unikalus pokalbio identifikatorius. Naudokite tą patį session_id pokalbių istorijai išlaikyti. |
website_id |
integer | Ne | Konkretus svetainės ID. Jei nepateikta, naudojama jūsų pagrindinė svetainė. |
Atsakymas
{
"success": true,
"response": "Our business hours are Monday-Friday, 9 AM to 5 PM EST.",
"session_id": "user_123"
}
Pavyzdys (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"}'
Pavyzdys (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"])
Pavyzdys (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/
Išvardykite visas su jūsų paskyra susietas svetaines.
Atsakymas
{
"success": true,
"websites": [
{
"id": 1,
"name": "My Website",
"domain": "example.com",
"is_primary": true
}
]
}
Pavyzdys (cURL)
curl https://asyntai.com/api/v1/websites/ \
-H "Authorization: Bearer YOUR_API_KEY"
GET /conversations/
Gaukite pokalbių istoriją konkrečiai sesijai.
Užklausos parametrai
| Parametras | Tipas | Privalomas | Aprašymas |
|---|---|---|---|
session_id |
string | Taip | Sesijos ID, kurio istoriją norite gauti |
limit |
integer | Ne | Maksimalus grąžinamų žinučių skaičius (numatytasis: 50, maks.: 100) |
Atsakymas
{
"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"
}
]
}
Pavyzdys (cURL)
curl "https://asyntai.com/api/v1/conversations/?session_id=user_123&limit=20" \
-H "Authorization: Bearer YOUR_API_KEY"
GET /sessions/
Parodykite savo naujausias pokalbių sesijas. Naudokite tai sesijų ID sužinojimui, kuriuos galite perduoti /conversations/ pilnai žinučių istorijai gauti.
Užklausos parametrai
| Parametras | Tipas | Privalomas | Aprašymas |
|---|---|---|---|
limit |
integer | Ne | Grąžinamų naujausių sesijų skaičius (numatytasis: 20, maks.: 100) |
website_id |
string | Ne | Filtruoti sesijas pagal konkretų svetainės ID |
source |
string | Ne | Filtruoti pagal sesijos šaltinį: widget, api, whatsapp, instagram, messenger, gorgias, freshchat, zapier |
Atsakymas
{
"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",
"website_domain": "example.com"
}
]
}
Pavyzdys (cURL)
curl "https://asyntai.com/api/v1/sessions/?limit=10" \
-H "Authorization: Bearer YOUR_API_KEY"
GET /leads/
Gauti surinktus potencialius klientus — el. pašto adresus ir telefonų numerius, kuriuos lankytojai pateikė pokalbių metu.
Užklausos parametrai
| Parametras | Tipas | Privalomas | Aprašymas |
|---|---|---|---|
limit |
integer | Ne | Grąžinamų potencialių klientų skaičius (numatytasis: 50, maks: 100) |
website_id |
string | Ne | Filtruoti potencialius klientus pagal konkretų svetainės ID |
Atsakymas
{
"success": true,
"leads": [
{
"session_id": "session_abc123def",
"email": "visitor@example.com",
"phone": "+1234567890",
"page_url": "https://example.com/pricing",
"started_at": "2024-01-15T10:30:00Z"
}
]
}
| Laukas | Tipas | Aprašymas |
|---|---|---|
session_id |
string | Pokalbio sesijos ID. Perduokite jį į /conversations/, kad pamatytumėte visą pokalbių istoriją. |
email |
eilutė arba null | Lankytojo pateiktas el. pašto adresas, arba null jei nebuvo surinktas |
phone |
eilutė arba null | Lankytojo pateiktas telefono numeris, arba null jei nebuvo surinktas |
page_url |
eilutė arba null | Puslapio URL, kuriame lankytojas kalbėjosi |
started_at |
string | ISO 8601 laiko žyma, kada pokalbio sesija prasidėjo |
Pavyzdys (cURL)
curl "https://asyntai.com/api/v1/leads/?limit=20" \
-H "Authorization: Bearer YOUR_API_KEY"
Pavyzdys (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/
Gaukite savo paskyros informaciją ir naudojimo statistiką.
Atsakymas
{
"success": true,
"account": {
"email": "you@example.com",
"plan": "starter",
"messages_used": 150,
"messages_limit": 2500
}
}
Pavyzdys (cURL)
curl https://asyntai.com/api/v1/account/ \
-H "Authorization: Bearer YOUR_API_KEY"
Kelios svetainės? Žinių bazės galutiniai taškai numatytai naudoja jūsų pagrindinę svetainę. Jei turite kelias svetaines, perduokite website_id kad nurodytumėte konkrečią. Savo svetainių ID galite rasti naudodami GET /websites/.
Dienos įkėlimo limitai: Žinių bazės įkėlimams (tekstas, URL, skaičiuoklė) taikomas dienos simbolių limitas pagal jūsų planą. Tai taikoma visam turiniui, įkeltam per visus žinių bazės galutinius taškus per dieną.
| Planas | Simboliai/dieną |
|---|---|
| Starter | 100 000 |
| Standard | 500 000 |
| Pro | 2 000 000 |
GET /knowledge/
Parodykite savo žinių bazės įrašus. Tai turinio šaltiniai, kuriuos jūsų DI pokalbių robotas naudoja atsakyti į klausimus.
Užklausos parametrai
| Parametras | Tipas | Privalomas | Aprašymas |
|---|---|---|---|
limit |
integer | Ne | Grąžinamų įrašų skaičius (numatytasis: 50, maks.: 100) |
website_id |
string | Ne | Filtruoti pagal svetainės ID (numatytoji - jūsų pagrindinė svetainė) |
Atsakymas
{
"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"
}
]
}
Pavyzdys (cURL)
curl "https://asyntai.com/api/v1/knowledge/?limit=10" \
-H "Authorization: Bearer YOUR_API_KEY"
POST /knowledge/text/
Pridėkite pasirinktinį tekstinį turinį prie savo žinių bazės. DI naudos tai lankytojų klausimams atsakyti.
Užklausos turinys
{
"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"
}
| Parametras | Tipas | Privalomas | Aprašymas |
|---|---|---|---|
title |
string | Taip | Šio žinių įrašo pavadinimas |
content |
string | Taip | Tekstinis turinys (min. 10 simbolių) |
website_id |
string | Ne | Tikslinė svetainė (numatytoji - jūsų pagrindinė svetainė) |
Atsakymas
{
"success": true,
"id": "abc-123-def",
"title": "Return Policy",
"chunks_created": 1
}
Pavyzdys (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/
Pridėkite tinklalapį prie savo žinių bazės. Turinys bus automatiškai gautas ir ištrauktas.
Užklausos turinys
{
"url": "https://example.com/faq",
"website_id": "123"
}
| Parametras | Tipas | Privalomas | Aprašymas |
|---|---|---|---|
url |
string | Taip | URL, iš kurio bus gaunamas turinys |
website_id |
string | Ne | Tikslinė svetainė (numatytoji - jūsų pagrindinė svetainė) |
Atsakymas
{
"success": true,
"id": "abc-123-def",
"title": "FAQ - Example",
"url": "https://example.com/faq",
"chunks_created": 5
}
Pavyzdys (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/
Įkelkite CSV arba Excel (.xlsx) skaičiuoklę į savo žinių bazę. Kiekviena eilutė tampa atskiru žinių įrašu, idealiai tinka produktų katalogams, DUK sąrašams, kainų lentelėms ir katalogams.
Užklausa
Siųskite kaip multipart/form-data (failo įkėlimas), ne JSON.
| Parametras | Tipas | Privalomas | Aprašymas |
|---|---|---|---|
file |
failas | Taip | .csv arba .xlsx failas. Pirma eilutė turi būti stulpelių antraštės. Maks. eilučių per įkėlimą: Starter 500, Standard 2 000, Pro 10 000. Perteklinės eilutės apkarpamos. |
website_id |
string | Ne | Tikslinė svetainė (numatytoji - jūsų pagrindinė svetainė) |
Atsakymas
{
"success": true,
"id": "abc-123-def",
"title": "products.csv",
"rows_processed": 15,
"chunks_created": 15
}
Pavyzdys (cURL)
curl -X POST "https://asyntai.com/api/v1/knowledge/spreadsheet/" \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "file=@products.csv"
DELETE /knowledge/{id}/
Ištrinkite žinių bazės įrašą. id galima rasti iš GET /knowledge/ atsakymo.
Atsakymas
{
"success": true,
"message": "Knowledge base entry deleted"
}
Pavyzdys (cURL)
curl -X DELETE "https://asyntai.com/api/v1/knowledge/abc-123-def/" \
-H "Authorization: Bearer YOUR_API_KEY"
Patarimas: Taip pat galite valdyti „webhook“ iš API nustatymai puslapio nerašydami jokio kodo.
GET /webhooks/
Išvardykite savo registruotus „webhooks“.
Atsakymas
{
"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"
}
]
}
Pavyzdys (cURL)
curl "https://asyntai.com/api/v1/webhooks/" \
-H "Authorization: Bearer YOUR_API_KEY"
POST /webhooks/
Užregistruokite naują webhook realiojo laiko įvykių pranešimams gauti.
Galimi įvykiai
| Įvykis | Aprašymas |
|---|---|
message.received |
Lankytojas išsiuntė žinutę ir gavo atsakymą |
conversation.started |
Pradėta nauja pokalbių sesija |
escalation.requested |
DI suaktyvino perdavimą žmogui operatoriui |
takeover.started |
Žmogus operatorius perėmė pokalbių sesiją |
Užklausos turinys
{
"url": "https://example.com/webhook",
"events": ["message.received", "escalation.requested"],
"website_id": "123"
}
| Parametras | Tipas | Privalomas | Aprašymas |
|---|---|---|---|
url |
string | Taip | HTTPS URL webhook POST užklausoms gauti |
events |
masyvas | Taip | Įvykių, kuriuos norite prenumeruoti, sąrašas (žr. lentelę aukščiau) |
website_id |
string | Ne | Tikslinė svetainė (numatytoji - jūsų pagrindinė svetainė) |
Atsakymas
{
"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 tikrinimas: Kiekvienas webhook apima secret (rodomas tik sukūrimo metu). Kiekvienas POST į jūsų URL apima X-Webhook-Signature antraštę — HMAC-SHA256 užklausos turinio, pasirašyto jūsų slaptu raktu.
Pavyzdys (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}/
Ištrinkite webhook. id galima rasti iš GET /webhooks/ atsakymo.
Atsakymas
{
"success": true,
"message": "Webhook deleted"
}
Pavyzdys (cURL)
curl -X DELETE "https://asyntai.com/api/v1/webhooks/abc-123-def/" \
-H "Authorization: Bearer YOUR_API_KEY"
Klaidų atsakymai
Visi klaidų atsakymai atitinka šį formatą:
{
"success": false,
"error": "Error message describing what went wrong"
}
| Būsenos kodas | Aprašymas |
|---|---|
400 |
Bloga užklausa - Netinkami parametrai arba trūksta privalomų laukų |
401 |
Neautorizuota - Netinkamas arba trūkstamas API raktas |
429 |
Per daug užklausų - Pasiektas jūsų plano žinučių limitas |
503 |
Paslauga nepasiekiama - DI paslauga laikinai nepasiekiama |
Užklausų limitai
API naudojimas ribojamas pagal jūsų prenumeratos planą:
- Free: 100 žinučių/mėn.
- Starter (39 $/mėn.): 2 500 žinučių/mėn.
- Standard (139 $/mėn.): 15 000 žinučių/mėn.
- Pro (449 $/mėn.): 50 000 žinučių/mėn.
Reikia pagalbos?
Jei turite klausimų arba kilo problemų, susisiekite su mumis adresu hello@asyntai.com.