Kommunsvar

API

REST-API för kommunens integrationsplattform, till exempel Automate+ eller MIM. API:t ingår utan extra licenskostnad. Specifikationen finns i OpenAPI 3.1 på https://chatt-test.stabilsajt.se/api/v1/openapi.json och information om versionen på https://chatt-test.stabilsajt.se/api/v1/api-info.

Kom igång

  1. En administratör skapar en API-klient under API-klienter och väljer behörigheter. Hemligheten visas en gång.
  2. Hämta en åtkomsttoken:
curl -X POST https://chatt-test.stabilsajt.se/api/oauth/token \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "grant_type=client_credentials&client_id=ksc_…&client_secret=…"

Svaret innehåller access_token (gäller i 300 sekunder), refresh_token (gäller i 24 timmar och kan användas en gång) och scope.

  1. Anropa API:t med token i rubriken Authorization:
curl https://chatt-test.stabilsajt.se/api/v1/sites -H "Authorization: Bearer <access_token>"
  1. Förnya token med grant_type=refresh_token&refresh_token=…, eller hämta en ny med klientuppgifterna.

Basic- och Digest-autentisering stöds inte. Klientuppgifter skickas aldrig i adressen.

Behörigheter

Scope Ger
statistics.read Statistik, händelser, ämnen och modellhistorik. Inga personuppgifter.
conversations.read Maskerade samtal, obesvarade frågor och vidareskickade frågor (utan kontaktuppgifter)
sources.write Källor och att starta inläsning
export.read Inställningsversioner och fullständig export
audit.read Ändringsloggen

Anrop som läser samtal eller export loggas i ändringsloggen med klientens namn.

Resurser

Metod och adress Scope Innehåll
GET /api/v1/api-info ingen Namn, version, status och dokumentation
GET /api/v1/sites valfri Organisationens webbplatser
GET /api/v1/sites/{siteId}/statistics?from=&to= statistics.read Sammanställning och antal per dag
GET /api/v1/sites/{siteId}/events?from=&to=&page=&limit= statistics.read Händelser för löpande export till datalager
GET /api/v1/sites/{siteId}/topics?from=&to= statistics.read Frågor och hänvisningar per ämne
GET /api/v1/sites/{siteId}/conversations?from=&to=&page=&limit= conversations.read Samtal med maskerade meddelanden
GET /api/v1/sites/{siteId}/unanswered?from=&to= conversations.read Frågor som inte kunde besvaras
GET /api/v1/sites/{siteId}/handoffs conversations.read Vidareskickade frågor och leveransstatus
GET /api/v1/sites/{siteId}/sources sources.write Källor och status
POST /api/v1/sites/{siteId}/sources/{sourceId}/crawls sources.write Startar inläsning. Svarar 202 med Location
GET /api/v1/sites/{siteId}/crawls/{crawlId} sources.write Status för en inläsning
GET /api/v1/sites/{siteId}/config-versions export.read Versioner av inställningarna
GET /api/v1/sites/{siteId}/export export.read All data för webbplatsen (format kommunsvar-export/1)
GET /api/v1/model-versions statistics.read AI-modeller och när de har använts
GET /api/v1/audit-log audit.read Ändringsloggen

from och to är datum (ÅÅÅÅ-MM-DD) i svensk tid. Förval är de senaste 30 dagarna.

Format

  • Fältnamn i camelCase.
  • Tider enligt RFC 3339 med tidszon, till exempel 2026-11-03T09:15:00+01:00.
  • Listor har page (från 1) och limit (förval 20, högst 500). Svaret har _meta med totalRecords, page, limit och count, och _links med self, first, last, next och prev.
  • Fel följer RFC 7807 (application/problem+json) med title, status och detail. Interna fel har en reference att uppge till supporten. Tekniska detaljer skickas aldrig.
  • Varje svar har X-RateLimit-Limit, X-RateLimit-Remaining och X-RateLimit-Reset. Gränsen är 600 anrop per minut och klient.

Löpande export

För daglig export till datalager: hämta /events för gårdagen med from och to satta till samma datum, sida för sida. Händelserna innehåller inga personuppgifter och sparas även när samtalen har gallrats. För arkivering hämtas /export, som innehåller alla data i ett öppet format med beskrivning.

Versioner

API:t versionshanteras enligt semantisk versionshantering. Bakåtkompatibla tillägg görs i samma huvudversion. En ny huvudversion får en ny adress (/api/v2), och den föregående finns kvar och stöds parallellt. Ändringar meddelas kommunen och dokumenteras här.

Version Datum Ändring
1.0.0 2026-10-26 Första versionen