API-referanse
Bygg egendefinerte integrasjoner med Asyntai REST API
Betalt abonnement kreves: API-tilgang er tilgjengelig på Starter-, Standard- og Pro-abonnementene. Se priser
Oversikt
Asyntai API lar deg integrere AI-drevet kundestøtte i enhver applikasjon. Send meldinger og motta intelligente svar basert på nettstedets innhold og kunnskapsbase.
Autentisering
Alle API-forespørsler krever autentisering med API-nøkkelen din. Du finner API-nøkkelen din på API-innstillinger-siden.
Inkluder API-nøkkelen din i forespørsler ved hjelp av en av disse metodene:
- Authorization-header (anbefalt):
Authorization: Bearer YOUR_API_KEY - X-API-Key-header:
X-API-Key: YOUR_API_KEY
Hold API-nøkkelen din hemmelig. Alle som har nøkkelen din kan få tilgang til kontoen din via API-et. Aldri eksponer den i kode på klientsiden.
Basis-URL
https://asyntai.com/api/v1/
Endepunkter
POST /chat/
Send en melding og motta et AI-generert svar.
Forespørselskropp
{
"message": "What are your business hours?",
"session_id": "user_123", // optional
"website_id": 1 // optional
}
| Parameter | Type | Påkrevd | Beskrivelse |
|---|---|---|---|
message |
string | Ja | Brukerens melding som sendes til AI-en |
session_id |
string | Nei | Unik identifikator for samtalen. Bruk samme session_id for å bevare samtalehistorikken. |
website_id |
integer | Nei | Spesifikk nettsted-ID. Hvis ikke oppgitt, brukes hovednettstedet ditt. |
Svar
{
"success": true,
"response": "Our business hours are Monday-Friday, 9 AM to 5 PM EST.",
"session_id": "user_123"
}
Eksempel (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"}'
Eksempel (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"])
Eksempel (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/
List opp alle nettsteder tilknyttet kontoen din.
Svar
{
"success": true,
"websites": [
{
"id": 1,
"name": "My Website",
"domain": "example.com",
"is_primary": true
}
]
}
Eksempel (cURL)
curl https://asyntai.com/api/v1/websites/ \
-H "Authorization: Bearer YOUR_API_KEY"
GET /conversations/
Hent samtalehistorikk for en spesifikk økt.
Spørringsparametre
| Parameter | Type | Påkrevd | Beskrivelse |
|---|---|---|---|
session_id |
string | Ja | Økt-ID-en for å hente historikk for |
limit |
integer | Nei | Maks antall meldinger å returnere (standard: 50, maks: 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"
}
]
}
Eksempel (cURL)
curl "https://asyntai.com/api/v1/conversations/?session_id=user_123&limit=20" \
-H "Authorization: Bearer YOUR_API_KEY"
GET /sessions/
List opp de nyeste chat-øktene dine. Bruk dette for å finne økt-ID-er, som du deretter kan sende til /conversations/ for å hente hele meldingshistorikken.
Spørringsparametre
| Parameter | Type | Påkrevd | Beskrivelse |
|---|---|---|---|
limit |
integer | Nei | Antall nylige økter å returnere (standard: 20, maks: 100) |
website_id |
string | Nei | Filtrer økter etter en spesifikk nettsted-ID |
source |
string | Nei | Filtrer etter sesjonskilde: 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"
}
]
}
Eksempel (cURL)
curl "https://asyntai.com/api/v1/sessions/?limit=10" \
-H "Authorization: Bearer YOUR_API_KEY"
GET /leads/
Hent innsamlede leads — e-postadresser og telefonnumre sendt inn av besøkende under chatsamtaler.
Spørringsparametre
| Parameter | Type | Påkrevd | Beskrivelse |
|---|---|---|---|
limit |
integer | Nei | Antall leads som skal returneres (standard: 50, maks: 100) |
website_id |
string | Nei | Filtrer leads etter en spesifikk nettsted-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"
}
]
}
| Felt | Type | Beskrivelse |
|---|---|---|
session_id |
string | Chat-sesjons-ID. Send dette til /conversations/ for å se fullstendig chathistorikk. |
email |
streng eller null | E-postadresse oppgitt av den besøkende, eller null hvis ikke innsamlet |
phone |
streng eller null | Telefonnummer oppgitt av den besøkende, eller null hvis ikke innsamlet |
page_url |
streng eller null | Side-URL-en der den besøkende chattet |
started_at |
string | ISO 8601 tidsstempel for når chatøkten startet |
Eksempel (cURL)
curl "https://asyntai.com/api/v1/leads/?limit=20" \
-H "Authorization: Bearer YOUR_API_KEY"
Eksempel (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/
Hent kontoinformasjon og bruksstatistikk.
Svar
{
"success": true,
"account": {
"email": "you@example.com",
"plan": "starter",
"messages_used": 150,
"messages_limit": 2500
}
}
Eksempel (cURL)
curl https://asyntai.com/api/v1/account/ \
-H "Authorization: Bearer YOUR_API_KEY"
Flere nettsteder? Kunnskapsbase-endepunkter bruker som standard hovednettstedet ditt. Hvis du har flere nettsteder, send website_id for å målrette en bestemt. Du finner nettsted-ID-ene dine ved å bruke GET /websites/.
Daglige opplastingsgrenser: Opplastinger til kunnskapsbasen (tekst, URL, regneark) er underlagt en daglig tegngrense basert på abonnementet ditt. Dette gjelder totalt innhold lastet opp via alle kunnskapsbase-endepunkter per dag.
| Abonnement | Tegn/dag |
|---|---|
| Starter | 100 000 |
| Standard | 500 000 |
| Pro | 2 000 000 |
GET /knowledge/
List opp oppføringene i kunnskapsbasen din. Dette er innholdskildene AI-chatboten din bruker for å svare på spørsmål.
Spørringsparametre
| Parameter | Type | Påkrevd | Beskrivelse |
|---|---|---|---|
limit |
integer | Nei | Antall oppføringer å returnere (standard: 50, maks: 100) |
website_id |
string | Nei | Filtrer etter nettsted-ID (bruker hovednettstedet ditt som standard) |
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"
}
]
}
Eksempel (cURL)
curl "https://asyntai.com/api/v1/knowledge/?limit=10" \
-H "Authorization: Bearer YOUR_API_KEY"
POST /knowledge/text/
Legg til egendefinert tekstinnhold i kunnskapsbasen din. AI-en vil bruke dette til å svare på besøkendes spørsmål.
Forespørselskropp
{
"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 | Type | Påkrevd | Beskrivelse |
|---|---|---|---|
title |
string | Ja | En tittel for denne kunnskapsoppføringen |
content |
string | Ja | Tekstinnholdet (minimum 10 tegn) |
website_id |
string | Nei | Målnettsted (bruker hovednettstedet ditt som standard) |
Svar
{
"success": true,
"id": "abc-123-def",
"title": "Return Policy",
"chunks_created": 1
}
Eksempel (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/
Legg til en nettside i kunnskapsbasen din. Innholdet hentes og trekkes ut automatisk.
Forespørselskropp
{
"url": "https://example.com/faq",
"website_id": "123"
}
| Parameter | Type | Påkrevd | Beskrivelse |
|---|---|---|---|
url |
string | Ja | URL-en å hente innhold fra |
website_id |
string | Nei | Målnettsted (bruker hovednettstedet ditt som standard) |
Svar
{
"success": true,
"id": "abc-123-def",
"title": "FAQ - Example",
"url": "https://example.com/faq",
"chunks_created": 5
}
Eksempel (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/
Last opp et CSV- eller Excel-regneark (.xlsx) til kunnskapsbasen din. Hver rad blir en separat kunnskapsoppføring, ideelt for produktkataloger, FAQ-lister, pristabeller og kataloger.
Forespørsel
Send som multipart/form-data (filopplasting), ikke JSON.
| Parameter | Type | Påkrevd | Beskrivelse |
|---|---|---|---|
file |
fil | Ja | En .csv- eller .xlsx-fil. Første rad må være kolonneoverskrifter. Maks rader per opplasting: Starter 500, Standard 2 000, Pro 10 000. Overskytende rader avkortes. |
website_id |
string | Nei | Målnettsted (bruker hovednettstedet ditt som standard) |
Svar
{
"success": true,
"id": "abc-123-def",
"title": "products.csv",
"rows_processed": 15,
"chunks_created": 15
}
Eksempel (cURL)
curl -X POST "https://asyntai.com/api/v1/knowledge/spreadsheet/" \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "file=@products.csv"
DELETE /knowledge/{id}/
Slett en kunnskapsbase-oppføring. id finnes i svaret fra GET /knowledge/.
Svar
{
"success": true,
"message": "Knowledge base entry deleted"
}
Eksempel (cURL)
curl -X DELETE "https://asyntai.com/api/v1/knowledge/abc-123-def/" \
-H "Authorization: Bearer YOUR_API_KEY"
Tips: Du kan også administrere webhooks fra API-innstillinger siden uten å skrive noe kode.
GET /webhooks/
List opp de registrerte webhookene dine.
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"
}
]
}
Eksempel (cURL)
curl "https://asyntai.com/api/v1/webhooks/" \
-H "Authorization: Bearer YOUR_API_KEY"
POST /webhooks/
Registrer en ny webhook for å motta sanntidsvarsler om hendelser.
Tilgjengelige hendelser
| Hendelse | Beskrivelse |
|---|---|
message.received |
En besøkende sendte en melding og mottok et svar |
conversation.started |
En ny chat-økt ble startet |
escalation.requested |
AI-en utløste en eskalering til en menneskelig agent |
takeover.started |
En menneskelig agent overtok en chat-økt |
Forespørselskropp
{
"url": "https://example.com/webhook",
"events": ["message.received", "escalation.requested"],
"website_id": "123"
}
| Parameter | Type | Påkrevd | Beskrivelse |
|---|---|---|---|
url |
string | Ja | HTTPS-URL-en for å motta webhook POST-forespørsler |
events |
array | Ja | Liste over hendelser å abonnere på (se tabellen ovenfor) |
website_id |
string | Nei | Målnettsted (bruker hovednettstedet ditt som standard) |
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"
}
}
Verifisering av webhooks: Hver webhook inkluderer en secret (vises kun ved opprettelse). Hver POST til URL-en din inkluderer en X-Webhook-Signature header — en HMAC-SHA256 av forespørselskroppen signert med hemmeligheten din.
Eksempel (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}/
Slett en webhook. id finnes i svaret fra GET /webhooks/.
Svar
{
"success": true,
"message": "Webhook deleted"
}
Eksempel (cURL)
curl -X DELETE "https://asyntai.com/api/v1/webhooks/abc-123-def/" \
-H "Authorization: Bearer YOUR_API_KEY"
Feilsvar
Alle feilsvar følger dette formatet:
{
"success": false,
"error": "Error message describing what went wrong"
}
| Statuskode | Beskrivelse |
|---|---|
400 |
Ugyldig forespørsel - Ugyldige parametre eller manglende påkrevde felter |
401 |
Ikke autorisert - Ugyldig eller manglende API-nøkkel |
429 |
For mange forespørsler - Meldingsgrensen er nådd for abonnementet ditt |
503 |
Tjeneste utilgjengelig - AI-tjenesten er midlertidig utilgjengelig |
Hastighetsgrenser
API-bruk er begrenset av abonnementet ditt:
- Free: 100 meldinger/måned
- Starter ($39/mnd): 2 500 meldinger/måned
- Standard ($139/mnd): 15 000 meldinger/måned
- Pro ($449/mnd): 50 000 meldinger/måned
Trenger du hjelp?
Hvis du har spørsmål eller støter på problemer, kontakt oss på hello@asyntai.com.