API og MCP

Rapport-API

En AI-rapport leser et sett med fullførte samtaler og beskriver sentimentet, temaene som går igjen, og problemene. API-et returnerer rapportene teamet ditt har laget i dashbordet. Det kan ikke lage nye. Se API-oversikten for autentisering, paginering og feil.

List opp rapporter#

HTTP
GET /api/v1/projects/{project_id}/reports

Returnerer rapportene i et prosjekt, de nyeste først, uten innholdet. Slettede rapporter er ikke med.

Søkeparametere#

ParameterBeskrivelse
statusÉn eller flere av generating, completed, failed, atskilt med komma
limit1 til 100. Standard er 25.
cursornext_cursor fra forrige side

Eksempel#

curl -G "https://diaform.io/api/v1/projects/b8acb3ab-1f3d-4a7e-a846-b7f493f86b6d/reports" \
  -H "Authorization: Bearer $DIAFORM_API_KEY" \
  --data-urlencode "status=completed"

Svar#

JSON
{
  "data": [
    {
      "id": "882f2ed7-07d9-4344-aced-9e523275b196",
      "project_id": "b8acb3ab-1f3d-4a7e-a846-b7f493f86b6d",
      "status": "completed",
      "title": "Support problems overshadow a well-liked product",
      "focus": null,
      "selection": {
        "mode": "date_range",
        "range_start": "2026-05-01T00:00:00+00:00",
        "range_end": "2026-05-31T23:59:59+00:00"
      },
      "conversation_count": 48,
      "first_conversation_at": "2026-05-01T08:12:09.692998+00:00",
      "last_conversation_at": "2026-05-30T13:11:09.628765+00:00",
      "sentiment_counts": {
        "positive": 14,
        "negative": 11,
        "neutral": 8,
        "mixed": 15,
        "unknown": 0
      },
      "error_message": null,
      "created_at": "2026-06-01T09:33:49.465144+00:00",
      "completed_at": "2026-06-01T09:34:07.2+00:00"
    }
  ],
  "has_more": false,
  "next_cursor": null
}

Felt for rapporter#

FeltTypeBeskrivelse
idstringID-en til rapporten
project_idstringProsjektet den hører til
statusstringgenerating, completed eller failed
titlestring eller nullOverskriften AI-en ga rapporten. null til den er ferdig.
focusstring eller nullSpørsmålet teamet ditt ba rapporten fokusere på, hvis det finnes et
selection.modestringdate_range (alle fullførte samtaler i en periode) eller manual (håndplukkede samtaler)
selection.range_start, selection.range_endstring eller nullPerioden for date_range. null betyr ingen grense på den siden.
conversation_countnumberHvor mange samtaler rapporten dekker
first_conversation_at, last_conversation_atstring eller nullNår den eldste og den nyeste av samtalene rapporten dekker, ble opprettet
sentiment_countsobject eller nullSamtalene rapporten dekker, fordelt på samlet sentiment. null til rapporten er ferdig.
error_messagestring eller nullHvorfor en failed-rapport feilet
created_atstringNår rapporten ble bestilt
completed_atstring eller nullNår den ble ferdig eller feilet

Hent en rapport#

HTTP
GET /api/v1/reports/{report_id}

Returnerer én rapport med alle feltene fra listen, pluss conversation_ids og det skrevne innholdet i content.

Eksempel#

curl "https://diaform.io/api/v1/reports/882f2ed7-07d9-4344-aced-9e523275b196" \
  -H "Authorization: Bearer $DIAFORM_API_KEY"

Svar#

Feltene som også finnes i listen, er utelatt her.

JSON
{
  "id": "882f2ed7-07d9-4344-aced-9e523275b196",
  "status": "completed",
  "title": "Support problems overshadow a well-liked product",
  "conversation_ids": [
    "0f8d43a2-6df9-49c8-bf5d-fd2b6ec2d9ee",
    "912b8ced-f69d-4f50-b497-9a712fe59359"
  ],
  "content": {
    "summary": "Most respondents like the product and would recommend it, but support wait times came up in a quarter of the interviews.",
    "focus_answer": null,
    "sentiment_explanation": "Praise for the product is offset by frustration with support.",
    "themes": [
      {
        "title": "Customer support is the top complaint",
        "detail": "Twelve respondents described long waits before reaching support.",
        "tone": "negative",
        "mention_count": 12,
        "conversation_ids": ["912b8ced-f69d-4f50-b497-9a712fe59359"],
        "quotes": [
          {
            "conversation_id": "912b8ced-f69d-4f50-b497-9a712fe59359",
            "text": "it took me 25 min to connect last time, which is too long",
            "translation": null,
            "respondent_label": "alex@acme.com",
            "created_at": "2026-05-10T17:52:10.539708+00:00"
          }
        ]
      }
    ],
    "issues": [
      {
        "title": "Invite emails land in spam",
        "detail": "Three respondents never received their teammate invite.",
        "severity": "high",
        "mention_count": 3,
        "conversation_ids": ["0f8d43a2-6df9-49c8-bf5d-fd2b6ec2d9ee"],
        "quotes": []
      }
    ],
    "outliers": [
      {
        "title": "Request for an on-premise version",
        "detail": "One enterprise respondent can't use cloud tools.",
        "mention_count": 1,
        "conversation_ids": ["0f8d43a2-6df9-49c8-bf5d-fd2b6ec2d9ee"]
      }
    ]
  }
}

Felt for innholdet#

content er null mens rapporten er generating, og når den er failed.

FeltTypeBeskrivelse
conversation_idsarrayAlle samtalene rapporten dekker
content.summarystringDet samlede sammendraget i rapporten
content.focus_answerstring eller nullSvaret på focus i rapporten, når det er satt
content.sentiment_explanationstringHva som ligger bak fordelingen av sentiment
content.themesarrayTemaer som går igjen, de mest nevnte først
content.themes[].tonestringpositive, negative, mixed eller neutral
content.issuesarrayKonkrete problemer som bør fikses
content.issues[].severitystringhigh, medium eller low
content.outliersarrayPunkter verdt å merke seg, som bare noen få respondenter tok opp. De har ingen sitater.
title, detailstringPå hvert tema, hvert problem og hver avviker: en overskrift og en kort forklaring
mention_countnumberHvor mange samtaler som tok det opp
conversation_idsarrayDisse samtalene. Hent hvilken som helst av dem med Samtale-API-et.
quotes[].textstringRespondentens egne ord
quotes[].translationstring eller nullEn engelsk oversettelse når sitatet er på et annet språk
quotes[].conversation_idstringSamtalen sitatet kommer fra
quotes[].respondent_labelstring eller nullHvem som sa det, når det er kjent
quotes[].created_atstringNår den samtalen ble opprettet

En rapport er et øyeblikksbilde av samtalene på tidspunktet den ble skrevet. Hvis en samtale slettes senere, fjernes sitatene dens fra rapporten.