API a MCP

API pre reporty

AI report prečíta skupinu dokončených rozhovorov a opíše sentiment, spoločné témy a problémy. API vracia reporty, ktoré váš tím vytvoril v dashboarde. Nové vytvárať nevie. Overenie, stránkovanie a chyby opisuje Prehľad API.

Zoznam reportov#

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

Vráti reporty projektu od najnovších, bez obsahu. Odstránené reporty sú vynechané.

Parametre dopytu#

ParameterPopis
statusJedna alebo viac hodnôt generating, completed, failed, oddelených čiarkami
limit1 až 100. Predvolene 25.
cursorHodnota next_cursor z predchádzajúcej stránky

Príklad#

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

Odpoveď#

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
}

Polia reportu#

PoleTypPopis
idstringID reportu
project_idstringProjekt, ku ktorému patrí
statusstringgenerating, completed alebo failed
titlestring alebo nullNázov, ktorý AI reportu dala. null, kým nie je dokončený.
focusstring alebo nullOtázka, na ktorú sa mal report podľa vášho tímu zamerať, ak nejaká bola
selection.modestringdate_range (všetky dokončené rozhovory za obdobie) alebo manual (ručne vybrané rozhovory)
selection.range_start, selection.range_endstring alebo nullObdobie pre date_range. null znamená, že z tej strany nie je obmedzené.
conversation_countnumberKoľko rozhovorov report pokrýva
first_conversation_at, last_conversation_atstring alebo nullKedy bol vytvorený najstarší a najnovší zahrnutý rozhovor
sentiment_countsobject alebo nullZahrnuté rozhovory podľa celkového sentimentu. null, kým report nie je dokončený.
error_messagestring alebo nullPrečo report so stavom failed zlyhal
created_atstringKedy bol report vyžiadaný
completed_atstring alebo nullKedy bol dokončený alebo zlyhal

Načítanie reportu#

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

Vráti jeden report so všetkými poľami zo zoznamu, navyše s conversation_ids a napísaným obsahom v content.

Príklad#

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

Odpoveď#

Polia spoločné so zoznamom sú tu vynechané.

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

Polia obsahu#

content je null, kým je report v stave generating, a tiež keď skončil v stave failed.

PoleTypPopis
conversation_idsarrayVšetky rozhovory, ktoré report pokrýva
content.summarystringCelkové zhrnutie reportu
content.focus_answerstring alebo nullOdpoveď na focus reportu, ak bol zadaný
content.sentiment_explanationstringČo stojí za rozdelením sentimentu
content.themesarrayOpakujúce sa témy, od najčastejšie spomínaných
content.themes[].tonestringpositive, negative, mixed alebo neutral
content.issuesarrayKonkrétne problémy na vyriešenie
content.issues[].severitystringhigh, medium alebo low
content.outliersarrayZaujímavé postrehy, ktoré spomenulo len pár respondentov. Nemajú citáty.
title, detailstringPri každej téme, probléme a ojedinelom hlase: titulok a krátke vysvetlenie
mention_countnumberV koľkých rozhovoroch to zaznelo
conversation_idsarrayTieto rozhovory. Ktorýkoľvek z nich načítate cez API pre rozhovory.
quotes[].textstringVlastné slová respondenta
quotes[].translationstring alebo nullAnglický preklad, ak je citát v inom jazyku
quotes[].conversation_idstringRozhovor, z ktorého citát pochádza
quotes[].respondent_labelstring alebo nullKto to povedal, ak je to známe
quotes[].created_atstringKedy bol tento rozhovor vytvorený

Report je snímka rozhovorov v čase, keď bol napísaný. Ak sa rozhovor neskôr odstráni, jeho citáty sa z reportu odstránia.