API referenca
Izradite prilagođene integracije s Asyntai REST API-jem
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 |
|---|---|
| Starter | 100.000 |
| Standard | 500.000 |
| Pro | 2.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.