API a MCP

API pre rozhovory

Rozhovor je jedno sedenie medzi AI a jedným respondentom. API vracia, kto je respondent, AI zhrnutie s jednou odpoveďou na každú otázku a celý prepis. Overenie, stránkovanie a chyby opisuje Prehľad API.

Zoznam rozhovorov#

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

Vráti rozhovory projektu od najnovších, každý s AI zhrnutím. Prepisy v zozname nie sú. Získate ich cez Načítanie rozhovoru.

Parametre dopytu#

ParameterPopis
statusJedna alebo viac hodnôt invited, opened, started, completed, cancelled, oddelených čiarkami. Bez neho sa vrátia všetky stavy okrem invited.
sentimentJedna alebo viac hodnôt positive, negative, neutral, mixed, oddelených čiarkami
created_afterLen rozhovory vytvorené v tomto čase ISO 8601 alebo po ňom, napríklad 2026-05-01T00:00:00Z
created_beforeLen rozhovory vytvorené v tomto čase alebo pred ním
searchText, ktorý sa hľadá v zhrnutiach, citátoch a údajoch o respondentovi. Najviac 200 znakov.
limit1 až 100. Predvolene 25.
cursorHodnota next_cursor z predchádzajúcej stránky

Úplné zhrnutie majú len dokončené rozhovory, preto väčšina integrácií posiela status=completed.

Príklad#

curl -G "https://diaform.io/api/v1/projects/b8acb3ab-1f3d-4a7e-a846-b7f493f86b6d/conversations" \
  -H "Authorization: Bearer $DIAFORM_API_KEY" \
  --data-urlencode "status=completed" \
  --data-urlencode "sentiment=negative,mixed" \
  --data-urlencode "created_after=2026-05-01T00:00:00Z" \
  --data-urlencode "limit=50"

Odpoveď#

JSON
{
  "data": [
    {
      "id": "0f8d43a2-6df9-49c8-bf5d-fd2b6ec2d9ee",
      "project_id": "b8acb3ab-1f3d-4a7e-a846-b7f493f86b6d",
      "status": "completed",
      "created_at": "2026-05-07T12:00:00.123456+00:00",
      "started_at": "2026-05-07T12:01:11.482913+00:00",
      "ended_at": "2026-05-07T12:15:41.204+00:00",
      "duration_seconds": 870,
      "country": "DE",
      "overall_sentiment": "mixed",
      "respondent": {
        "label": "alex@acme.com",
        "email": null,
        "identities": [
          { "type": "email", "value": "alex@acme.com", "source": "owner" },
          { "type": "name", "value": "Alex", "source": "ai" }
        ]
      },
      "metadata": {},
      "invite": {
        "id": "3a4f49c7-b8f4-4c44-8f74-fd8e4277c3e4",
        "status": "completed",
        "created_at": "2026-05-07T12:00:00.123456+00:00",
        "opened_at": "2026-05-07T12:01:11.482913+00:00",
        "completed_at": "2026-05-07T12:15:41.204+00:00"
      },
      "summary": {
        "overall_sentiment": "mixed",
        "answers": [
          {
            "question_id": "V1StGXR8_Z5jdHi6B-myT",
            "question": "How did your first week with the product go?",
            "summary": "Setup was quick, but inviting teammates was confusing.",
            "sentiment": "mixed",
            "confidence": "high",
            "quotes": ["I had no idea where the invite button was"]
          }
        ],
        "urgent_issues": [],
        "additional_insights": "Would pay more for a Slack integration."
      }
    }
  ],
  "has_more": true,
  "next_cursor": "WyIyMDI2LTA1LTA3VDEyOjAwOjAwLjEyMzQ1NiswMDowMCIsIjBmOGQ0M2EyIl0"
}

Polia rozhovoru#

PoleTypPopis
idstringID rozhovoru, rovnaké, aké webhooky posielajú ako conversation_id
project_idstringProjekt, ku ktorému patrí
statusstringinvited, opened, started, completed alebo cancelled. Dashboard zobrazuje started ako Prebieha.
created_atstringKedy bol rozhovor vytvorený. Pri pozvánkach je to čas vytvorenia pozvánky.
started_atstring alebo nullKedy sa rozhovor začal
ended_atstring alebo nullKedy bol rozhovor dokončený alebo zrušený
duration_secondsnumber alebo nullČas od začiatku do konca
countrystring alebo nullKód krajiny respondenta, ak je známy
overall_sentimentstring alebo nullpositive, negative, neutral alebo mixed. Rovnaké ako summary.overall_sentiment.
respondent.labelstring alebo nullNajlepšie označenie respondenta: e-mail, potom meno, potom iná identita
respondent.emailstring alebo nullZastarané pole, pri nových rozhovoroch null. E-maily čítajte z respondent.identities.
respondent.identitiesarrayVšetko, čo je o respondentovi známe. source je owner (dodali ste ho vy), ai (získané z jeho správ) alebo system (pridal Diaform).
metadataobjectPri pozvánkach a priamych odkazoch prázdne. Pri vložených rozhovoroch obsahuje údaje o vložení, napríklad "embed": true a embed_parent_origin.
inviteobject alebo nullÚdaje o pozvánke, ak rozhovor vznikol z pozvánky respondenta, inak null
summaryobject alebo nullAI zhrnutie. null, kým sa rozhovor neskončí a zhrnutie nie je hotové.

Polia zhrnutia#

PoleTypPopis
overall_sentimentstringpositive, negative, neutral alebo mixed
answersarrayJedna položka pre každú otázku, ktorú respondent dostal
answers[].question_idstringID otázky v projekte
answers[].questionstringOtázka tak, ako bola položená
answers[].summarystringKrátke zhrnutie odpovede
answers[].sentimentstringpositive, negative, neutral alebo mixed
answers[].confidencestringhigh, medium alebo low: ako úplne bola otázka zodpovedaná
answers[].quotesarrayZaujímavé citáty vlastnými slovami respondenta. Často prázdne.
urgent_issuesarrayKritické problémy, ktoré respondent spomenul, ako krátke reťazce
additional_insightsstring alebo nullUžitočná spätná väzba, ktorá nepatrila k žiadnej otázke

Načítanie rozhovoru#

HTTP
GET /api/v1/conversations/{conversation_id}

Vráti jeden rozhovor so všetkými poľami zo zoznamu a navyše s prepisom v messages.

Príklad#

curl "https://diaform.io/api/v1/conversations/0f8d43a2-6df9-49c8-bf5d-fd2b6ec2d9ee" \
  -H "Authorization: Bearer $DIAFORM_API_KEY"

Odpoveď#

Polia spoločné so zoznamom sú tu skrátené.

JSON
{
  "id": "0f8d43a2-6df9-49c8-bf5d-fd2b6ec2d9ee",
  "project_id": "b8acb3ab-1f3d-4a7e-a846-b7f493f86b6d",
  "status": "completed",
  "overall_sentiment": "mixed",
  "summary": {},
  "messages": [
    {
      "role": "interviewer",
      "text": "Hi! Thanks for taking the time. How did your first week with the product go?"
    },
    {
      "role": "respondent",
      "text": "Setup was fast. But I had no idea where the invite button was."
    },
    {
      "role": "interviewer",
      "text": "Where did you expect to find it?"
    }
  ]
}
PoleTypPopis
messagesarrayPrepis v poradí správ. Prázdny, ak respondent vôbec neodpovedal.
messages[].rolestringinterviewer (AI) alebo respondent
messages[].textstringČo zaznelo. Hovorené odpovede sú uvedené ako prepis reči a výber alebo hodnotenie ako text, napríklad Selected answers: Pro.