API och MCP

Rapport-API

En AI-rapport läser en uppsättning slutförda konversationer och sammanställer sentimentet, vanliga teman och problem. API:t returnerar de rapporter som ditt team har skapat i dashboarden. Det kan inte skapa nya. Läs mer om autentisering, paginering och fel under API-översikt.

Lista rapporter#

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

Returnerar ett projekts rapporter, de nyaste först, utan innehållet. Borttagna rapporter tas inte med.

Frågeparametrar#

ParameterBeskrivning
statusEn eller flera av generating, completed, failed, avgränsade med kommatecken
limit1 till 100. Standard 25.
cursornext_cursor från föregående sida

Exempel#

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
}

Fält för rapporter#

FältTypBeskrivning
idstringRapportens ID
project_idstringProjektet som rapporten hör till
statusstringgenerating, completed eller failed
titlestring eller nullRubriken som AI:n gav rapporten. null tills rapporten är klar.
focusstring eller nullFrågan som ditt team bad rapporten att fokusera på, om det finns någon
selection.modestringdate_range (alla slutförda konversationer under en period) eller manual (handplockade konversationer)
selection.range_start, selection.range_endstring eller nullPerioden för date_range. null betyder att det inte finns någon gräns åt det hållet.
conversation_countnumberHur många konversationer rapporten omfattar
first_conversation_at, last_conversation_atstring eller nullNär den äldsta och den nyaste konversationen i rapporten skapades
sentiment_countsobject eller nullKonversationerna i rapporten per övergripande sentiment. null tills rapporten är klar.
error_messagestring eller nullVarför en rapport med status failed misslyckades
created_atstringNär rapporten begärdes
completed_atstring eller nullNär den blev klar eller misslyckades

Hämta en rapport#

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

Returnerar en rapport med alla fält från listan, plus conversation_ids och det skrivna innehållet i content.

Exempel#

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

Svar#

Fälten som är gemensamma med listan är utelämnade här.

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"]
      }
    ]
  }
}

Fält i innehållet#

content är null medan rapporten har status generating och när den har status failed.

FältTypBeskrivning
conversation_idsarrayAlla konversationer som rapporten omfattar
content.summarystringRapportens övergripande sammanfattning
content.focus_answerstring eller nullSvaret på rapportens focus, om ett fokus angavs
content.sentiment_explanationstringVad som ligger bakom fördelningen av sentiment
content.themesarrayÅterkommande ämnen, de mest nämnda först
content.themes[].tonestringpositive, negative, mixed eller neutral
content.issuesarrayKonkreta problem att åtgärda
content.issues[].severitystringhigh, medium eller low
content.outliersarraySynpunkter värda att notera som bara ett fåtal respondenter tog upp. De har inga citat.
title, detailstringFör varje tema, problem och avvikande synpunkt: en rubrik och en kort förklaring
mention_countnumberHur många konversationer som tog upp det
conversation_idsarrayDe konversationerna. Hämta vilken som helst av dem med Konversations-API:t.
quotes[].textstringRespondentens egna ord
quotes[].translationstring eller nullEn engelsk översättning när citatet är på ett annat språk
quotes[].conversation_idstringKonversationen som citatet kommer från
quotes[].respondent_labelstring eller nullVem som sa det, om det är känt
quotes[].created_atstringNär den konversationen skapades

En rapport är en ögonblicksbild av konversationerna vid den tidpunkt då den skrevs. Om en konversation tas bort senare tas dess citat bort från rapporten.