Grįžti į valdymo skydą

Dokumentacija

Sužinokite, kaip naudoti Asyntai

API dokumentacija

Kurkite pasirinktinius integravimus su Asyntai REST API

Gauti API raktą

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ą
Starter100 000
Standard500 000
Pro2 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.