API-referanse

Bygg egendefinerte integrasjoner med Asyntai REST API

Hent API-nøkkel

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