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
- En administratör skapar en API-klient under API-klienter och väljer behörigheter. Hemligheten visas en gång.
- 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.
- Anropa API:t med token i rubriken Authorization:
curl https://chatt-test.stabilsajt.se/api/v1/sites -H "Authorization: Bearer <access_token>"
- 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) ochlimit(förval 20, högst 500). Svaret har_metamedtotalRecords,page,limitochcount, och_linksmedself,first,last,nextochprev. - Fel följer RFC 7807 (
application/problem+json) medtitle,statusochdetail. Interna fel har enreferenceatt uppge till supporten. Tekniska detaljer skickas aldrig. - Varje svar har
X-RateLimit-Limit,X-RateLimit-RemainingochX-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 |