Ingår i Enterprise

Era mötesdata,
i era egna system.

Allt Diktly producerar går att hämta som JSON: möteslistan, sammanfattningarna, transkripten och uppgifterna. Ni kan också skapa möten och inspelningslänkar från ert eget system.

GET /api/v1/meetings200 OK
Anrop
curl https://diktly.se/api/v1/meetings?limit=2 \
  -H "Authorization: Bearer dk_er-nyckel-här"
Svar
{
  "data": [
    {
      "id": "8f0e…",
      "title": "Styrgruppsmöte juli",
      "status": "done",
      "platform": "teams",
      "startedAt": "2026-07-08T09:00:12.000Z",
      "endedAt": "2026-07-08T09:58:40.000Z",
      "updatedAt": "2026-07-08T10:12:31.000Z",
      "customerName": "Fjällvik",
      "folder": { "id": "3f2a…", "name": "Kunder" },
      "participants": [{ "name": "Anna", "email": "…" }],
      "durationSeconds": 3508
    }
  ],
  "nextCursor": "eyJ2IjoxLCJvY2N1cnJlZEF0…"
}

Bygg in mötesdatan i intranätet, ärendesystemet eller er BI-rapportering.

Från nyckel till första svaret.

En administratör skapar nyckeln under Inställningar. Den visas en gång. Sedan är det ett vanligt REST-anrop, med nyckeln i Authorization-headern som ovan.

Anrop
curl https://diktly.se/api/v1/meetings?limit=2 \
  -H "Authorization: Bearer dk_er-nyckel-här"

Hämta och skapa.

  • GET/api/v1/meetings

    Möteslistan med titel, kund, status, plattform, tider, deltagare och längd. Sorterad på mötestid, nyast först.

    Parametrar

    limit
    Antal per sida. Standard 25, max 100.
    cursor
    Paginering. Skicka nextCursor från förra svaret för nästa sida.
    status
    Standard "done" (färdiga möten). "all" ger alla, eller ange en specifik status som "scheduled" eller "failed".
    since
    ISO-tidpunkt. Returnerar bara möten som ändrats efter den, för inkrementell synk.
    customer
    Kundnamn. Ger bara mötena med den kunden satt. Exakt namn, men skiftläge spelar ingen roll.
  • GET/api/v1/meetings/{id}

    Allt om ett möte: sammanfattningen i Markdown, uppgifterna, deltagarna och talarnamnen. Lägg till ?include=transcript så följer hela transkriptet med, med talarnamnen insatta.

  • GET/api/v1/tasks

    Uppgifter tvärs alla möten, med ansvarig, deadline, status och vilket möte de kommer från. Sorterade på senast ändrad.

    Parametrar

    status
    Standard "open". Även "completed" eller "all".
    limit
    Antal per sida. Standard 100, max 500.
    cursor
    Paginering, samma mönster som för möten.
    since
    Bara uppgifter som ändrats efter tidpunkten.
  • GET/api/v1/templates

    Organisationens mötesmallar med id, namn, beskrivning och vilken som är standard. Finns för att ert system ska kunna slå upp mallen på namn och skicka templateId vidare, i stället för att någon klistrar in ett id för hand.

  • POST/api/v1/meetings

    Skapa ett möte. Skickar ni meetingUrl joinar boten mötet. Skickar ni i stället contentType får ni tillbaka en signerad uppladdnings-URL för en färdig ljudinspelning, och avslutar med POST /api/v1/meetings/{id}/uploaded. Valfritt templateId styr vilken mall mötet sammanfattas med.

  • DELETE/api/v1/meetings/{id}

    Raderar mötet permanent: ljud, transkript, sammanfattning och uppgifter. Gjord för att städa testmöten från ert eget system.

En QR-kod i stället för konton.

Skapa en inspelningslänk, koda den som QR och visa den i rummet. Den som skannar spelar in mötet direkt i webbläsaren utan Diktly-konto, och inspelningen hamnar i er organisation med rätt mall, kund och mapp. Länken gäller en begränsad tid och ett begränsat antal inspelningar.

  • POST/api/v1/recording-links

    Skapar länken och svarar med id, url, expiresAt och maxMeetings. Url:en innehåller länkens token och visas bara här, precis som en API-nyckel. Tappar ni bort den får ni skapa en ny länk.

    Fält i anropet

    title
    Länkens namn. Sätts som titel på mötena den ger upphov till. Krävs.
    customer
    Kund som sätts på mötena, så de går att filtrera fram med ?customer= sedan.
    templateId
    Mötesmall som mötena sammanfattas med. Hämtas från GET /api/v1/templates.
    folderId
    Mapp mötena hamnar i. Måste tillhöra er organisation.
    language
    Språk för inspelningarna. "sv" (standard) eller "en".
    externalRef
    Er egen referens som JSON-objekt, till exempel ett workshop-id. Ekas tillbaka orört, tolkas aldrig av Diktly. Högst 2 kB.
    expiresInHours
    Hur länge länken gäller. Standard 12 timmar, max 72.
    maxMeetings
    Hur många inspelningar länken får ge. Standard 10, max 50.
  • GET/api/v1/recording-links

    Organisationens länkar, nyast först, med kund, mall, mapp, er egen externalRef, utgångstid, eventuell återkallning och hur många möten varje länk gett. Token ingår aldrig.

  • GET/api/v1/recording-links/{id}

    Samma fält plus mötena länken gett upphov till (id, status, titel, längd och tider), och usable med unusableReason (expired, revoked eller exhausted), så ni kan visa rätt besked i ert eget gränssnitt.

  • DELETE/api/v1/recording-links/{id}

    Återkallar länken direkt. QR-koden slutar fungera vid nästa skanning. Anropet är idempotent: en redan återkallad länk svarar likadant. Mötena som redan spelats in påverkas inte.

Exempel
curl -X POST https://diktly.se/api/v1/recording-links \
  -H "Authorization: Bearer dk_er-nyckel-här" \
  -H "Content-Type: application/json" \
  -d '{"title":"Workshop Fjällvik","customer":"Fjällvik",
       "expiresInHours":8,"maxMeetings":6,
       "externalRef":{"workshopId":"ws_42"}}'

{
  "id": "9c1b…",
  "url": "https://diktly.se/spela-in/rl_ZmM…",
  "expiresAt": "2026-09-08T20:00:00.000Z",
  "maxMeetings": 6
}

Hämta bara det som är nytt.

Alla objekt har ett updatedAt-fält som uppdateras vid varje ändring. Spara er senaste synktidpunkt och fråga med since, så slipper ni hämta om allt varje gång. Bockas en uppgift av syns det i nästa hämtning.

Anrop
# Allt som ändrats sedan i går
curl "https://diktly.se/api/v1/tasks?status=all&since=2026-07-09T00:00:00Z" \
  -H "Authorization: Bearer dk_er-nyckel-här"

Nycklar som går att lita på.

En API-nyckel ger läsåtkomst till hela organisationens möten. Därför är hela livscykeln byggd för att en nyckel på avvägar ska göra så lite skada som möjligt.

  • Nycklar lagras hashadeDiktly sparar aldrig nyckeln i klartext. Den visas en gång när den skapas, sedan syns bara ett prefix.
  • Återkallas direktEn administratör kan återkalla en nyckel när som helst. Den slutar gälla på nästa anrop.
  • Automatisk avstängningLämnar personen som skapade nyckeln organisationen, eller förlorar sin adminroll, revokeras nyckeln automatiskt.
  • Kvoter300 anrop per 5 minuter och nyckel, 1000 per organisation. Vid överskriden kvot svarar API:t 429 med Retry-After.
  • Data i EUAll data ligger i Stockholm och API:t svarar alltid över HTTPS utan cachning.

Svar ni kan bygga mot.

Alla fel har samma form: en statuskod och ett error-fält i JSON. Nya fält kan tillkomma i svaren, men befintliga byter aldrig namn eller betydelse. Brytande ändringar publiceras som /api/v2.

  • 400Ogiltig parameter, till exempel en trasig cursor.
  • 401Saknad, felaktig eller återkallad nyckel.
  • 403Er plan saknar API-åtkomst.
  • 404Resursen finns inte, eller tillhör en annan organisation.
  • 429Kvoten nådd. Vänta enligt Retry-After-headern.

API:t, rakt på sak.

Vad kostar API:t?

Inget extra. API-åtkomst ingår i Enterprise. En administratör skapar nycklarna i inställningarna.

Kan vi skriva data via API:t?

Ja. Utöver att hämta möten, sammanfattningar, transkript och uppgifter kan ni skapa möten med POST /api/v1/meetings, skapa inspelningslänkar för gäster och radera möten. Vill ni i stället få data skickad till er automatiskt finns den signerade webhooken.

Kan någon utan Diktly-konto spela in?

Ja, via en inspelningslänk. Ert system skapar länken med POST /api/v1/recording-links, ni visar den som QR-kod, och den som skannar spelar in direkt i webbläsaren. Inspelningen hamnar i er organisation med den mall, kund och mapp ni satte på länken. Länken gäller en begränsad tid och ett begränsat antal inspelningar, och kan återkallas när som helst.

Hur håller vi vårt system i synk?

Alla objekt har ett updatedAt-fält. Spara er senaste synktidpunkt och anropa med ?since=, så får ni bara det som ändrats sedan dess. Även en uppgift som bockas av fångas upp.

Kan vi hämta alla möten för en viss kund?

Ja. Varje möte har ett kundfält (customerName) som sätts i Diktly, och möteslistan kan filtreras på det med ?customer=Fjällvik. Fältet är skilt från mappen: mappen är en gruppering som lika gärna kan heta ett projekt eller ett årtal, medan kundfältet alltid betyder kund.

Får vi ut transkriptet också?

Ja. Mötesdetaljen returnerar sammanfattning och uppgifter som standard, och hela transkriptet när ni lägger till ?include=transcript. Talarnamnen är redan insatta i texten.

Kan vi anropa API:t från webbläsaren?

Nej, och det är avsiktligt. Nyckeln ger läsåtkomst till hela organisationens möten och ska ligga på er server, aldrig i webbläsarkod. API:t har därför ingen CORS.

Vad händer om vi byter plan?

Nedgraderar ni till en plan utan API-åtkomst svarar API:t 403. Nycklarna finns kvar och börjar fungera igen om ni uppgraderar.

Vill ni bygga mot Diktly?

Har ni Enterprise skapar ni en nyckel i inställningarna och kör i gång direkt. Osäkra på upplägget? Hör av er, så tittar vi på ert flöde tillsammans.

Kontakta oss

Nästa möte
skriver sig självt.

Koppla kalendern en gång, så är Diktly med på nästa möte.

Allt i Team i 14 dagar, upp till 300 minuter. Inget kort, och ingen automatisk betalning efteråt.