API og MCP

Rapport-API

En AI-rapport læser en række gennemførte samtaler og beskriver sentimentet, de gennemgående temaer og problemerne. API'et returnerer de rapporter, dit team har oprettet i dashboardet. Det kan ikke oprette nye. Se API-overblikket for godkendelse, paginering og fejl.

Vis rapporter#

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

Returnerer et projekts rapporter, nyeste først, uden deres indhold. Slettede rapporter er ikke med.

Query-parametre#

ParameterBeskrivelse
statusEn eller flere af generating, completed, failed, adskilt af kommaer
limit1 til 100. Standard 25.
cursornext_cursor fra den 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
}

Felter for rapporter#

FeltTypeBeskrivelse
idstringRapportens ID
project_idstringDet projekt, den hører til
statusstringgenerating, completed eller failed
titlestring eller nullDen overskrift, AI'en har givet rapporten. null, indtil den er færdig.
focusstring eller nullDet spørgsmål, dit team bad rapporten fokusere på, hvis der er et
selection.modestringdate_range (alle gennemførte samtaler i en periode) eller manual (håndplukkede samtaler)
selection.range_start, selection.range_endstring eller nullPerioden for date_range. null betyder ingen grænse i den ende.
conversation_countnumberHvor mange samtaler rapporten dækker
first_conversation_at, last_conversation_atstring eller nullHvornår den ældste og den nyeste af de dækkede samtaler blev oprettet
sentiment_countsobject eller nullDe dækkede samtaler fordelt på samlet sentiment. null, indtil rapporten er færdig.
error_messagestring eller nullHvorfor en failed-rapport fejlede
created_atstringHvornår rapporten blev bestilt
completed_atstring eller nullHvornår den blev færdig eller fejlede

Hent en rapport#

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

Returnerer én rapport med alle felter fra listen samt conversation_ids og det skrevne indhold i content.

Eksempel#

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

Svar#

De felter, der også findes i listen, er udeladt 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"]
      }
    ]
  }
}

Felter for indholdet#

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

FeltTypeBeskrivelse
conversation_idsarrayAlle samtaler, rapporten dækker
content.summarystringRapportens samlede opsummering
content.focus_answerstring eller nullSvaret på rapportens focus, hvis der er angivet et
content.sentiment_explanationstringHvad der ligger bag fordelingen af sentiment
content.themesarrayTilbagevendende emner, de mest nævnte først
content.themes[].tonestringpositive, negative, mixed eller neutral
content.issuesarrayKonkrete problemer, der skal løses
content.issues[].severitystringhigh, medium eller low
content.outliersarrayBemærkelsesværdige punkter, som kun få respondenter har nævnt. De har ingen citater.
title, detailstringPå hvert tema, hvert problem og hver afviger: en overskrift og en kort forklaring
mention_countnumberHvor mange samtaler der nævnte det
conversation_idsarrayDe pågældende samtaler. Hent en hvilken som helst af dem med Samtale-API'et.
quotes[].textstringRespondentens egne ord
quotes[].translationstring eller nullEn engelsk oversættelse, når citatet er på et andet sprog
quotes[].conversation_idstringDen samtale, citatet kommer fra
quotes[].respondent_labelstring eller nullHvem der sagde det, hvis det kendes
quotes[].created_atstringHvornår den samtale blev oprettet

En rapport er et øjebliksbillede af samtalerne på det tidspunkt, den blev skrevet. Hvis en samtale slettes senere, fjernes dens citater fra rapporten.