API-referens

Bygg anpassade integrationer med Asyntai REST API

Hämta API-nyckel

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