API-referens
Bygg anpassade integrationer med Asyntai REST API
Betalt abonnemang krävs: API-åtkomst är tillgänglig för Starter-, Standard- och Pro-abonnemang. Visa priser
Översikt
Asyntai API låter dig integrera AI-driven kundsupport i valfri applikation. Skicka meddelanden och ta emot intelligenta svar tränade på ditt webbplatsinnehåll och din kunskapsbas.
Autentisering
Alla API-förfrågningar kräver autentisering med din API-nyckel. Du kan hämta din API-nyckel från sidan API-inställningar.
Inkludera din API-nyckel i förfrågningar med en av dessa metoder:
- Authorization-header (rekommenderat):
Authorization: Bearer YOUR_API_KEY - X-API-Key-header:
X-API-Key: YOUR_API_KEY
Håll din API-nyckel hemlig. Alla som har din nyckel kan komma åt ditt konto via API:et. Exponera den aldrig i kod på klientsidan.
Bas-URL
https://asyntai.com/api/v1/
Endpoints
POST /chat/
Skicka ett meddelande och ta emot ett AI-genererat svar.
Begäranstext
{
"message": "What are your business hours?",
"session_id": "user_123", // optional
"website_id": 1 // optional
}
| Parameter | Typ | Obligatoriskt | Beskrivning |
|---|---|---|---|
message |
sträng | Ja | Användarens meddelande att skicka till AI |
session_id |
sträng | Nej | Unik identifierare för konversationen. Använd samma session_id för att behålla konversationshistoriken. |
website_id |
heltal | Nej | Specifikt webbplats-ID. Om det inte anges används din primära webbplats. |
Svar
{
"success": true,
"response": "Our business hours are Monday-Friday, 9 AM to 5 PM EST.",
"session_id": "user_123"
}
Exempel (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"}'
Exempel (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"])
Exempel (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/
Lista alla webbplatser kopplade till ditt konto.
Svar
{
"success": true,
"websites": [
{
"id": 1,
"name": "My Website",
"domain": "example.com",
"is_primary": true
}
]
}
Exempel (cURL)
curl https://asyntai.com/api/v1/websites/ \
-H "Authorization: Bearer YOUR_API_KEY"
GET /conversations/
Hämta konversationshistorik för en specifik session.
Frågeparametrar
| Parameter | Typ | Obligatoriskt | Beskrivning |
|---|---|---|---|
session_id |
sträng | Ja | Sessions-ID:t för att hämta historik för |
limit |
heltal | Nej | Max meddelanden att returnera (standard: 50, max: 100) |
Svar
{
"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"
}
]
}
Exempel (cURL)
curl "https://asyntai.com/api/v1/conversations/?session_id=user_123&limit=20" \
-H "Authorization: Bearer YOUR_API_KEY"
GET /sessions/
Lista dina senaste chattsessioner. Använd detta för att hitta sessions-ID:n, som du sedan kan skicka till /conversations/ för att hämta hela meddelandehistoriken.
Frågeparametrar
| Parameter | Typ | Obligatoriskt | Beskrivning |
|---|---|---|---|
limit |
heltal | Nej | Antal senaste sessioner att returnera (standard: 20, max: 100) |
website_id |
sträng | Nej | Filtrera sessioner efter ett specifikt webbplats-ID |
source |
sträng | Nej | Filtrera efter sessionskälla: widget, api, whatsapp, instagram, messenger, gorgias, freshchat, zapier |
Svar
{
"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"
}
]
}
Exempel (cURL)
curl "https://asyntai.com/api/v1/sessions/?limit=10" \
-H "Authorization: Bearer YOUR_API_KEY"
GET /leads/
Hämta insamlade leads — e-postadresser och telefonnummer som skickats in av besökare under chattkonversationer.
Frågeparametrar
| Parameter | Typ | Obligatoriskt | Beskrivning |
|---|---|---|---|
limit |
heltal | Nej | Antal leads att returnera (standard: 50, max: 100) |
website_id |
sträng | Nej | Filtrera leads efter ett specifikt webbplats-ID |
Svar
{
"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"
}
]
}
| Fält | Typ | Beskrivning |
|---|---|---|
session_id |
sträng | Chattsessions-ID. Skicka detta till /conversations/ för att se den fullständiga chatthistoriken. |
email |
sträng eller null | E-postadress angiven av besökaren, eller null om den inte samlades in |
phone |
sträng eller null | Telefonnummer angivet av besökaren, eller null om det inte samlades in |
page_url |
sträng eller null | Sidans URL där besökaren chattade |
started_at |
sträng | ISO 8601-tidssämpel för när chattsessionen startade |
Exempel (cURL)
curl "https://asyntai.com/api/v1/leads/?limit=20" \
-H "Authorization: Bearer YOUR_API_KEY"
Exempel (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/
Hämta din kontoinformation och användningsstatistik.
Svar
{
"success": true,
"account": {
"email": "you@example.com",
"plan": "starter",
"messages_used": 150,
"messages_limit": 2500
}
}
Exempel (cURL)
curl https://asyntai.com/api/v1/account/ \
-H "Authorization: Bearer YOUR_API_KEY"
Flera webbplatser? Kunskapsbasens slutpunkter är som standard din primära webbplats. Om du har flera webbplatser, skicka website_id för att rikta mot en specifik. Du hittar dina webbplats-ID:n med GET /websites/.
Dagliga uppladdningsgränser: Uppladdningar till kunskapsbasen (text, URL, kalkylblad) är föremål för en daglig teckengräns baserad på din plan. Detta gäller det totala innehållet som laddas upp över alla kunskapsbasslutpunkter per dag.
| Plan | Tecken/dag |
|---|---|
| Starter | 100 000 |
| Standard | 500 000 |
| Pro | 2 000 000 |
GET /knowledge/
Lista dina kunskapsbaserade poster. Det är de innehållskällor din AI-chattbot använder för att besvara frågor.
Frågeparametrar
| Parameter | Typ | Obligatoriskt | Beskrivning |
|---|---|---|---|
limit |
heltal | Nej | Antal poster att returnera (standard: 50, max: 100) |
website_id |
sträng | Nej | Filtrera efter webbplats-ID (standardvärde är din primära webbplats) |
Svar
{
"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"
}
]
}
Exempel (cURL)
curl "https://asyntai.com/api/v1/knowledge/?limit=10" \
-H "Authorization: Bearer YOUR_API_KEY"
POST /knowledge/text/
Lägg till anpassat textinnehåll i din kunskapsbas. AI:n använder detta för att svara på besökares frågor.
Begäranstext
{
"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"
}
| Parameter | Typ | Obligatoriskt | Beskrivning |
|---|---|---|---|
title |
sträng | Ja | En titel för den här kunskapsposten |
content |
sträng | Ja | Textinnehållet (minst 10 tecken) |
website_id |
sträng | Nej | Målwebbplats (standard är din primära webbplats) |
Svar
{
"success": true,
"id": "abc-123-def",
"title": "Return Policy",
"chunks_created": 1
}
Exempel (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/
Lägg till en webbsida i din kunskapsbas. Innehållet hämtas och extraheras automatiskt.
Begäranstext
{
"url": "https://example.com/faq",
"website_id": "123"
}
| Parameter | Typ | Obligatoriskt | Beskrivning |
|---|---|---|---|
url |
sträng | Ja | URL:en att hämta innehåll från |
website_id |
sträng | Nej | Målwebbplats (standard är din primära webbplats) |
Svar
{
"success": true,
"id": "abc-123-def",
"title": "FAQ - Example",
"url": "https://example.com/faq",
"chunks_created": 5
}
Exempel (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/
Ladda upp ett CSV- eller Excel-kalkylark (.xlsx) till din kunskapsbas. Varje rad blir en separat kunskapspost, idealiskt för produktkataloger, FAQ-listor, pristabeller och kataloger.
Begäran
Skicka som multipart/form-data (filuppladdning), inte JSON.
| Parameter | Typ | Obligatoriskt | Beskrivning |
|---|---|---|---|
file |
fil | Ja | En .csv- eller .xlsx-fil. Första raden måste vara kolumnrubriker. Max rader per uppladdning: Starter 500, Standard 2 000, Pro 10 000. Överskjutande rader avkortas. |
website_id |
sträng | Nej | Målwebbplats (standard är din primära webbplats) |
Svar
{
"success": true,
"id": "abc-123-def",
"title": "products.csv",
"rows_processed": 15,
"chunks_created": 15
}
Exempel (cURL)
curl -X POST "https://asyntai.com/api/v1/knowledge/spreadsheet/" \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "file=@products.csv"
DELETE /knowledge/{id}/
Radera en kunskapsbaspost. id hittas i svaret från GET /knowledge/.
Svar
{
"success": true,
"message": "Knowledge base entry deleted"
}
Exempel (cURL)
curl -X DELETE "https://asyntai.com/api/v1/knowledge/abc-123-def/" \
-H "Authorization: Bearer YOUR_API_KEY"
Tips: Du kan också hantera webhooks från API-inställningar sida utan att skriva någon kod.
GET /webhooks/
Lista dina registrerade webhooks.
Svar
{
"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"
}
]
}
Exempel (cURL)
curl "https://asyntai.com/api/v1/webhooks/" \
-H "Authorization: Bearer YOUR_API_KEY"
POST /webhooks/
Registrera en ny webhook för att ta emot realtidshändelsemeddelanden.
Tillgängliga händelser
| Händelse | Beskrivning |
|---|---|
message.received |
En besökare skickade ett meddelande och fick ett svar |
conversation.started |
En ny chattsession startades |
escalation.requested |
AI:n utlöste en eskalering till en mänsklig agent |
takeover.started |
En mänsklig agent tog över en chattsession |
Begäranstext
{
"url": "https://example.com/webhook",
"events": ["message.received", "escalation.requested"],
"website_id": "123"
}
| Parameter | Typ | Obligatoriskt | Beskrivning |
|---|---|---|---|
url |
sträng | Ja | HTTPS-URL:en för att ta emot webhook POST-förfrågningar |
events |
array | Ja | Lista över händelser att prenumerera på (se tabell ovan) |
website_id |
sträng | Nej | Målwebbplats (standard är din primära webbplats) |
Svar
{
"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"
}
}
Verifierar webhooks: Varje webhook inkluderar en secret (visas bara vid skapande). Varje POST till din URL inkluderar en X-Webhook-Signature header — en HMAC-SHA256 av förfrågningskroppen signerad med din hemlighet.
Exempel (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}/
Radera en webhook. id hittas i svaret från GET /webhooks/.
Svar
{
"success": true,
"message": "Webhook deleted"
}
Exempel (cURL)
curl -X DELETE "https://asyntai.com/api/v1/webhooks/abc-123-def/" \
-H "Authorization: Bearer YOUR_API_KEY"
Felsvar
Alla felsvar följer detta format:
{
"success": false,
"error": "Error message describing what went wrong"
}
| Statuskod | Beskrivning |
|---|---|
400 |
Felaktig begäran - Ogiltiga parametrar eller saknade obligatoriska fält |
401 |
Obehörig – Ogiltig eller saknad API-nyckel |
429 |
Too Many Requests - Meddelandegränsen nådd för din Pro |
503 |
Tjänst otillgänglig - AI-tjänst tillfälligt otillgänglig |
Hastighetsgränser
API-användning begränsas av din plan:
- Free: 100 meddelanden/månad
- Starter (39 $/mån): 2 500 meddelanden/månad
- Standard (139 $/mån): 15 000 meddelanden/månad
- Pro (449 $/mån): 50 000 meddelanden/månad
Behöver du hjälp?
Om du har några frågor eller stöter på problem, kontakta oss på hello@asyntai.com.