Natrag na nadzornu ploču

Dokumentacija

Naučite kako koristiti Asyntai

API referenca

Izradite prilagođene integracije s Asyntai REST API-jem

Dohvatite API ključ

Potreban plaćeni plan: API pristup dostupan je na Starter, Standard i Pro planovima. Pogledajte cijene

Pregled

Asyntai API vam omogućuje integraciju korisničke podrške pokretane AI-jem u bilo koju aplikaciju. Šaljite poruke i primajte inteligentne odgovore obučene na sadržaju vaše web stranice i bazi znanja.

Autentifikacija

Svi API zahtjevi zahtijevaju autentifikaciju pomoću vašeg API ključa. Svoj API ključ možete dobiti na stranici API postavke.

Uključite svoj API ključ u zahtjeve koristeći jednu od ovih metoda:

  • Authorization zaglavlje (preporučeno): Authorization: Bearer YOUR_API_KEY
  • X-API-Key zaglavlje: X-API-Key: YOUR_API_KEY

Čuvajte svoj API ključ u tajnosti. Svatko s vašim ključem može pristupiti vašem računu putem API-ja. Nikada ga ne izlažite u klijentskom kodu.

Bazni URL

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

Krajnje točke

POST /chat/

Pošaljite poruku i primite odgovor generiran AI-jem.

Tijelo zahtjeva

{
  "message": "What are your business hours?",
  "session_id": "user_123",      // optional
  "website_id": 1                 // optional
}
Parametar Tip Obavezno Opis
message string Da Korisnička poruka za slanje AI-ju
session_id string Ne Jedinstveni identifikator za razgovor. Koristite isti session_id za održavanje povijesti razgovora.
website_id integer Ne Specifični ID web stranice. Ako nije naveden, koristi se vaša primarna web stranica.

Odgovor

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

Primjer (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"}'

Primjer (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"])

Primjer (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/

Prikažite sve web stranice povezane s vašim računom.

Odgovor

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

Primjer (cURL)

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

GET /conversations/

Dohvatite povijest razgovora za određenu sesiju.

Parametri upita

Parametar Tip Obavezno Opis
session_id string Da ID sesije za dohvaćanje povijesti
limit integer Ne Maksimalni broj poruka za vraćanje (zadano: 50, maks: 100)

Odgovor

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

Primjer (cURL)

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

GET /sessions/

Prikažite svoje nedavne chat sesije. Koristite ovo za otkrivanje ID-ova sesija, koje zatim možete proslijediti na /conversations/ za dohvaćanje pune povijesti poruka.

Parametri upita

Parametar Tip Obavezno Opis
limit integer Ne Broj nedavnih sesija za vraćanje (zadano: 20, maks: 100)
website_id string Ne Filtrirajte sesije prema određenom ID-u web stranice
source string Ne Filtrirajte prema izvoru sesije: widget, api, whatsapp, instagram, messenger, gorgias, freshchat, zapier

Odgovor

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

Primjer (cURL)

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

GET /leads/

Dohvati prikupljene kontakte — adrese e-pošte i telefonske brojeve koje su posjetitelji poslali tijekom chat razgovora.

Parametri upita

Parametar Tip Obavezno Opis
limit integer Ne Broj kontakata za vraćanje (zadano: 50, maks: 100)
website_id string Ne Filtrirajte kontakte prema određenom ID-u web stranice

Odgovor

{
  "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"
    }
  ]
}
Polje Tip Opis
session_id string ID chat sesije. Proslijedite ga na /conversations/ za pregled potpune povijesti chata.
email niz ili null E-mail adresa koju je posjetitelj naveo, ili null ako nije prikupljena
phone niz ili null Telefonski broj koji je posjetitelj naveo, ili null ako nije prikupljen
page_url niz ili null URL stranice na kojoj je posjetitelj razgovarao
started_at string ISO 8601 vremenska oznaka početka chat sesije

Primjer (cURL)

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

Primjer (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/

Dohvatite informacije o svom računu i statistiku korištenja.

Odgovor

{
  "success": true,
  "account": {
    "email": "you@example.com",
    "plan": "starter",
    "messages_used": 150,
    "messages_limit": 2500
  }
}

Primjer (cURL)

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

Više web stranica? Krajnje točke baze znanja zadano koriste vašu primarnu web stranicu. Ako imate više web stranica, proslijedite website_id za ciljanje određene. Svoje ID-ove web stranica možete pronaći koristeći GET /websites/.

Dnevna ograničenja prijenosa: Prijenosi u bazu znanja (tekst, URL, tablice) podliježu dnevnom ograničenju znakova na temelju vašeg plana. Ovo se odnosi na ukupni sadržaj prenesen preko svih krajnjih točaka baze znanja dnevno.

Plan Znakova/dan
Starter100.000
Standard500.000
Pro2.000.000

GET /knowledge/

Prikažite unose u bazi znanja. To su izvori sadržaja koje vaš AI chatbot koristi za odgovaranje na pitanja.

Parametri upita

Parametar Tip Obavezno Opis
limit integer Ne Broj unosa za vraćanje (zadano: 50, maks: 100)
website_id string Ne Filtrirajte prema ID-u web stranice (zadano vaša primarna web stranica)

Odgovor

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

Primjer (cURL)

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

POST /knowledge/text/

Dodajte prilagođeni tekstualni sadržaj u svoju bazu znanja. AI će ovo koristiti za odgovaranje na pitanja posjetitelja.

Tijelo zahtjeva

{
  "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"
}
Parametar Tip Obavezno Opis
title string Da Naslov za ovaj unos u bazu znanja
content string Da Tekstualni sadržaj (minimalno 10 znakova)
website_id string Ne Ciljna web stranica (zadano vaša primarna web stranica)

Odgovor

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

Primjer (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/

Dodajte web stranicu u svoju bazu znanja. Sadržaj će se automatski dohvatiti i izvući.

Tijelo zahtjeva

{
  "url": "https://example.com/faq",
  "website_id": "123"
}
Parametar Tip Obavezno Opis
url string Da URL s kojeg se dohvaća sadržaj
website_id string Ne Ciljna web stranica (zadano vaša primarna web stranica)

Odgovor

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

Primjer (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/

Prenesite CSV ili Excel (.xlsx) tablicu u svoju bazu znanja. Svaki redak postaje zasebni unos u bazu znanja, idealno za kataloge proizvoda, popise čestih pitanja, tablice cijena i imenike.

Zahtjev

Pošaljite kao multipart/form-data (učitavanje datoteke), ne JSON.

Parametar Tip Obavezno Opis
file datoteka Da .csv ili .xlsx datoteka. Prvi redak moraju biti zaglavlja stupaca. Maks. redaka po prijenosu: Starter 500, Standard 2.000, Pro 10.000. Višak redaka se skraćuje.
website_id string Ne Ciljna web stranica (zadano vaša primarna web stranica)

Odgovor

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

Primjer (cURL)

curl -X POST "https://asyntai.com/api/v1/knowledge/spreadsheet/" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "file=@products.csv"

DELETE /knowledge/{id}/

Obrišite unos u bazi znanja. id se može pronaći iz odgovora GET /knowledge/.

Odgovor

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

Primjer (cURL)

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

Savjet: Također možete upravljati webhookovima iz API postavke stranice bez pisanja ikakvog koda.

GET /webhooks/

Prikažite svoje registrirane webhookove.

Odgovor

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

Primjer (cURL)

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

POST /webhooks/

Registrirajte novi webhook za primanje obavijesti o događajima u stvarnom vremenu.

Dostupni događaji

Događaj Opis
message.received Posjetitelj je poslao poruku i primio odgovor
conversation.started Pokrenuta je nova chat sesija
escalation.requested AI je pokrenuo eskalaciju na ljudskog agenta
takeover.started Ljudski agent je preuzeo chat sesiju

Tijelo zahtjeva

{
  "url": "https://example.com/webhook",
  "events": ["message.received", "escalation.requested"],
  "website_id": "123"
}
Parametar Tip Obavezno Opis
url string Da HTTPS URL za primanje webhook POST zahtjeva
events niz Da Popis događaja za pretplatu (pogledajte gornju tablicu)
website_id string Ne Ciljna web stranica (zadano vaša primarna web stranica)

Odgovor

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

Provjera webhookova: Svaki webhook uključuje secret (prikazano samo pri kreiranju). Svaki POST na vaš URL uključuje X-Webhook-Signature zaglavlje — HMAC-SHA256 hash tijela zahtjeva potpisan vašom tajnom.

Primjer (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}/

Obrišite webhook. id se može pronaći iz odgovora GET /webhooks/.

Odgovor

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

Primjer (cURL)

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

Odgovori s greškom

Svi odgovori s greškom slijede ovaj format:

{
  "success": false,
  "error": "Error message describing what went wrong"
}
Statusni kod Opis
400 Neispravan zahtjev - Nevažeći parametri ili nedostajuća obavezna polja
401 Neovlašteno - Nevažeći ili nedostajući API ključ
429 Previše zahtjeva - Dosegnuto ograničenje poruka za vaš plan
503 Usluga nedostupna - AI usluga privremeno nedostupna

Ograničenja brzine

Korištenje API-ja ograničeno je vašim pretplatničkim planom:

  • Free: 100 poruka/mjesečno
  • Starter (39 $/mj.): 2.500 poruka/mjesečno
  • Standard (139 $/mj.): 15.000 poruka/mjesečno
  • Pro (449 $/mj.): 50.000 poruka/mjesečno

Trebate pomoć?

Ako imate pitanja ili naiđete na probleme, kontaktirajte nas na hello@asyntai.com.