API a MCP

Prehľad API

Diaform API dáva vášmu kódu a vašim AI agentom prístup k spätnej väzbe, ktorú zbierate: k projektom, rozhovorom s AI zhrnutím a celým prepisom a k AI reportom. Využijete ho na analýzu odpovedí vlastným agentom, plnenie dátového skladu alebo spúšťanie automatizácií.

Pripojiť sa môžete dvoma spôsobmi. Oba používajú rovnaký API kľúč a vracajú rovnaké dáta:

  • REST API. JSON cez HTTPS, pre skripty, backendy a automatizačné nástroje.
  • MCP server. Pre AI agentov, ako sú Claude Code, Codex alebo Cursor. Agent dostane API ako nástroje, ktoré môže volať priamo. Viac v časti MCP server.

Čo môžete robiť#

ZdrojEndpointyReferencia
ProjektyZoznam projektov, načítanie jedného projektu s jeho otázkamiProjekty
RozhovoryZoznam rozhovorov projektu s AI zhrnutiami, načítanie jedného rozhovoru s prepisomRozhovory
AI reportyZoznam reportov projektu, načítanie jedného celého reportuReporty
Pozvánky respondentovVytvorenie osobného odkazu na rozhovor pre konkrétneho človekaPozvánky respondentov

Ak chcete dostať oznámenie, keď sa rozhovor skončí, a nechcete sa opakovane dopytovať, použite webhooky.

Skôr než začnete#

Potrebujete dve veci:

  1. Plán Pro, Business alebo Enterprise.
  2. API kľúč. Kľúče vytvárajú vlastníci a administrátori v časti Nastavenia → Všeobecné → API kľúče.

Kľúč vytvoríte tak, že kliknete na Nový API kľúč, zadáte názov a kliknete na Vytvoriť kľúč. V dialógu Váš nový API kľúč kliknite na Kopírovať a potom na Kľúč mám uložený. Diaform kľúč ukáže len raz.

Kľúče vyzerajú ako dia_org_live_ a za tým 32 znakov. Nevypršia. Každá organizácia ich môže mať najviac 10. Ak chcete kľúč vypnúť, kliknite na Odvolať a potom na Odvolať API kľúč. Všetko, čo kľúč používa, okamžite prestane fungovať.

Overenie#

Kľúč posielajte ako bearer token pri každej požiadavke:

HTTP
Authorization: Bearer dia_org_live_...

Kľúč môže čítať všetky projekty vo svojej organizácii bez ohľadu na nastavenia prístupu k projektu. Majte ho na serveri alebo v konfigurácii svojho agenta a nikdy ho nedávajte do kódu v prehliadači ani v aplikácii. Príklady v tejto dokumentácii ho čítajú z premennej prostredia DIAFORM_API_KEY.

Základná URL a konvencie#

https://diaform.io/api/v1
  • Požiadavky aj odpovede sú vo formáte JSON. Názvy polí používajú snake_case.
  • ID sú UUID. Časové pečiatky sú reťazce ISO 8601 v UTC.
  • Pole bez hodnoty je null. Nikdy sa nevynecháva.
  • API označuje moderátora ako projekt, rovnako ako dashboard. ID projektu je ID za /agents/ v URL projektu v dashboarde a za /c/ v jeho verejnom odkaze.
  • Rozhovory spustené cez Náhľad v dashboarde sa nikdy nevracajú.

Pošlite prvú požiadavku#

Vypíšte svoje projekty:

curl "https://diaform.io/api/v1/projects" \
  -H "Authorization: Bearer $DIAFORM_API_KEY"

Potom načítajte dokončené rozhovory jedného z nich:

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 "limit=50"

Stránkovanie#

Endpointy so zoznamom vracajú položky od najnovších, v tomto tvare:

JSON
{
  "data": [],
  "has_more": true,
  "next_cursor": "WyIyMDI2LTA1LTA3VDEyOjAwOjAwLjEyMzQ1NiswMDowMCIsIjBmOGQ0M2EyIl0"
}
ParameterPopis
limitPočet položiek na stránku, 1 až 100. Predvolene 25.
cursorHodnota next_cursor z predchádzajúcej stránky

Ďalšiu stránku získate tak, že požiadavku zopakujete s rovnakými filtrami a do cursor dáte hodnotu next_cursor. Na poslednej stránke má has_more hodnotu false a next_cursor hodnotu null.

async function listAllConversations(projectId) {
  const conversations = [];
  let cursor = null;

  do {
    const url = new URL(
      `https://diaform.io/api/v1/projects/${projectId}/conversations`,
    );
    url.searchParams.set("status", "completed");
    url.searchParams.set("limit", "100");
    if (cursor) url.searchParams.set("cursor", cursor);

    const response = await fetch(url, {
      headers: { Authorization: `Bearer ${process.env.DIAFORM_API_KEY}` },
    });
    if (!response.ok) throw new Error((await response.json()).error);

    const page = await response.json();
    conversations.push(...page.data);
    cursor = page.next_cursor;
  } while (cursor);

  return conversations;
}

Chyby#

Chyby používajú štandardné stavové kódy HTTP a vracajú JSON so zrozumiteľnou správou error a stabilným poľom code, podľa ktorého môžete chyby v kóde rozlíšiť:

JSON
{
  "error": "No project with this ID exists in your organization.",
  "code": "not_found"
}

Odpoveď 400 obsahuje aj details, jednu položku pre každé neplatné pole:

JSON
{
  "error": "The request has invalid parameters.",
  "code": "invalid_request",
  "details": [
    { "field": "limit", "message": "Too big: expected number to be <=100" }
  ]
}
StavcodePríčina
400invalid_requestParameter chýba alebo je neplatný. V details nájdete, o ktoré pole ide.
401unauthorizedHlavička Authorization chýba, nemá tvar Bearer dia_org_live_... alebo bol kľúč odvolaný
403forbiddenVaša organizácia nemá plán Pro, Business ani Enterprise
404not_foundToto ID v organizácii kľúča neexistuje
429rate_limitedPríliš veľa požiadaviek. Počkajte toľko sekúnd, koľko uvádza hlavička Retry-After.
500internal_errorNa strane Diaform nastala chyba. Skúste to o chvíľu znova.

ID z inej organizácie vráti 404, rovnako ako ID, ktoré neexistuje.

Limity požiadaviek#

Každý API kľúč môže poslať 120 požiadaviek za minútu, spolu na endpointy na čítanie a na MCP server. Nad tento limit vracajú požiadavky 429 s hlavičkou Retry-After: 60. Každá stránka vráti najviac 100 položiek.

Dajte túto dokumentáciu svojmu agentovi#

Každá stránka dokumentácie má tlačidlo Skopírovať stránku, ktoré ju skopíruje ako Markdown, pripravený na vloženie do AI agenta. Každá stránka je dostupná aj ako čistý Markdown a celá referencia API ako jeden súbor:

https://diaform.io/api/docs-markdown/api

Dajte svojmu agentovi túto URL alebo ho pripojte priamo cez MCP server.