API pro reporty
AI report přečte sadu dokončených rozhovorů a popíše sentiment, společná témata a problémy. API vrací reporty, které váš tým vytvořil v dashboardu. Nové vytvářet neumí. Ověření, stránkování a chyby popisuje Přehled API.
Výpis reportů#
HTTP
GET /api/v1/projects/{project_id}/reportsVrátí reporty projektu od nejnovějších, bez obsahu. Smazané reporty jsou vynechané.
Parametry dotazu#
| Parametr | Popis |
|---|---|
status | Jedna nebo více hodnot generating, completed, failed, oddělených čárkami |
limit | 1 až 100. Výchozí 25. |
cursor | Hodnota next_cursor z předchozí stránky |
Pří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"Odpověď#
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
}Pole reportu#
| Pole | Typ | Popis |
|---|---|---|
id | string | ID reportu |
project_id | string | Projekt, ke kterému patří |
status | string | generating, completed nebo failed |
title | string nebo null | Název, který AI reportu dala. null, dokud není dokončený. |
focus | string nebo null | Otázka, na kterou se měl report podle vašeho týmu zaměřit, pokud nějaká byla |
selection.mode | string | date_range (všechny dokončené rozhovory za období) nebo manual (ručně vybrané rozhovory) |
selection.range_start, selection.range_end | string nebo null | Období pro date_range. null znamená, že z té strany není omezené. |
conversation_count | number | Kolik rozhovorů report pokrývá |
first_conversation_at, last_conversation_at | string nebo null | Kdy byl vytvořen nejstarší a nejnovější zahrnutý rozhovor |
sentiment_counts | object nebo null | Zahrnuté rozhovory podle celkového sentimentu. null, dokud není report dokončený. |
error_message | string nebo null | Proč report se stavem failed selhal |
created_at | string | Kdy byl report vyžádán |
completed_at | string nebo null | Kdy byl dokončen nebo selhal |
Načtení reportu#
HTTP
GET /api/v1/reports/{report_id}Vrátí jeden report se všemi poli z výpisu, navíc s conversation_ids a napsaným obsahem v content.
Příklad#
curl "https://diaform.io/api/v1/reports/882f2ed7-07d9-4344-aced-9e523275b196" \
-H "Authorization: Bearer $DIAFORM_API_KEY"Odpověď#
Pole společná s výpisem jsou tady 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"]
}
]
}
}Pole obsahu#
content je null, dokud je report ve stavu generating, a také když skončil ve stavu failed.
| Pole | Typ | Popis |
|---|---|---|
conversation_ids | array | Všechny rozhovory, které report pokrývá |
content.summary | string | Celkové shrnutí reportu |
content.focus_answer | string nebo null | Odpověď na focus reportu, pokud byl zadán |
content.sentiment_explanation | string | Co stojí za rozložením sentimentu |
content.themes | array | Opakující se témata, od nejčastěji zmiňovaných |
content.themes[].tone | string | positive, negative, mixed nebo neutral |
content.issues | array | Konkrétní problémy k vyřešení |
content.issues[].severity | string | high, medium nebo low |
content.outliers | array | Výrazné postřehy, které zmínilo jen pár respondentů. Nemají citace. |
title, detail | string | U každého tématu, problému a ojedinělého hlasu: titulek a krátké vysvětlení |
mention_count | number | V kolika rozhovorech to zaznělo |
conversation_ids | array | Tyto rozhovory. Kterýkoli z nich načtete přes API pro rozhovory. |
quotes[].text | string | Vlastní slova respondenta |
quotes[].translation | string nebo null | Anglický překlad, pokud je citace v jiném jazyce |
quotes[].conversation_id | string | Rozhovor, ze kterého citace pochází |
quotes[].respondent_label | string nebo null | Kdo to řekl, pokud je to známo |
quotes[].created_at | string | Kdy byl tento rozhovor vytvořen |
Report je snímek rozhovorů v době, kdy byl napsán. Pokud je rozhovor později smazán, jeho citace se z reportu odstraní.