API za izvještaje
AI izvještaj čita skup dovršenih razgovora i opisuje sentiment, česte teme i probleme. API vraća izvještaje koje je vaš tim izradio na nadzornoj ploči. Ne može izrađivati nove. Autentifikaciju, straničenje i pogreške opisuje Pregled API-ja.
Popis izvještaja#
HTTP
GET /api/v1/projects/{project_id}/reportsVraća izvještaje projekta, od najnovijeg, bez njihova sadržaja. Izbrisani izvještaji su izostavljeni.
Parametri upita#
| Parametar | Opis |
|---|---|
status | Jedna ili više vrijednosti generating, completed, failed, odvojenih zarezima |
limit | Od 1 do 100. Zadano 25. |
cursor | Vrijednost next_cursor s prethodne stranice |
Primjer#
curl -G "https://diaform.io/api/v1/projects/b8acb3ab-1f3d-4a7e-a846-b7f493f86b6d/reports" \
-H "Authorization: Bearer $DIAFORM_API_KEY" \
--data-urlencode "status=completed"Odgovor#
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
}Polja izvještaja#
| Polje | Vrsta | Opis |
|---|---|---|
id | string | ID izvještaja |
project_id | string | Projekt kojem izvještaj pripada |
status | string | generating, completed ili failed |
title | string ili null | Naslov koji je AI dao izvještaju. null dok izvještaj nije dovršen. |
focus | string ili null | Pitanje vašeg tima na koje se izvještaj treba usredotočiti, ako ga ima |
selection.mode | string | date_range (svi dovršeni razgovori u razdoblju) ili manual (ručno odabrani razgovori) |
selection.range_start, selection.range_end | string ili null | Razdoblje za date_range. null znači da s te strane nema ograničenja. |
conversation_count | number | Koliko razgovora izvještaj obuhvaća |
first_conversation_at, last_conversation_at | string ili null | Kada su izrađeni najstariji i najnoviji obuhvaćeni razgovor |
sentiment_counts | object ili null | Obuhvaćeni razgovori prema ukupnom sentimentu. null dok izvještaj nije dovršen. |
error_message | string ili null | Zašto izvještaj sa statusom failed nije uspio |
created_at | string | Kada je izvještaj zatražen |
completed_at | string ili null | Kada je dovršen ili nije uspio |
Dohvat izvještaja#
HTTP
GET /api/v1/reports/{report_id}Vraća jedan izvještaj sa svim poljima s popisa te conversation_ids i napisanim sadržajem u content.
Primjer#
curl "https://diaform.io/api/v1/reports/882f2ed7-07d9-4344-aced-9e523275b196" \
-H "Authorization: Bearer $DIAFORM_API_KEY"Odgovor#
Polja zajednička s popisom ovdje su izostavljena.
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"]
}
]
}
}Polja sadržaja#
content je null dok je izvještaj u statusu generating i kad je failed.
| Polje | Vrsta | Opis |
|---|---|---|
conversation_ids | array | Svi razgovori koje izvještaj obuhvaća |
content.summary | string | Opći sažetak izvještaja |
content.focus_answer | string ili null | Odgovor na focus izvještaja, ako je postavljen |
content.sentiment_explanation | string | Što stoji iza takve raspodjele sentimenta |
content.themes | array | Teme koje se ponavljaju, od najčešće spominjane |
content.themes[].tone | string | positive, negative, mixed ili neutral |
content.issues | array | Konkretni problemi koje treba riješiti |
content.issues[].severity | string | high, medium ili low |
content.outliers | array | Zapažanja vrijedna pažnje koja je iznijelo tek nekoliko ispitanika. Nemaju citate. |
title, detail | string | Uz svaku temu, problem i izdvojeno zapažanje: naslov i kratko objašnjenje |
mention_count | number | U koliko se razgovora to pojavilo |
conversation_ids | array | Ti razgovori. Bilo koji od njih dohvatite putem API-ja za razgovore. |
quotes[].text | string | Vlastite riječi ispitanika |
quotes[].translation | string ili null | Engleski prijevod kad je citat na drugom jeziku |
quotes[].conversation_id | string | Razgovor iz kojeg citat potječe |
quotes[].respondent_label | string ili null | Tko je to rekao, ako je poznato |
quotes[].created_at | string | Kada je taj razgovor izrađen |
Izvještaj je snimka razgovora u trenutku kad je napisan. Ako se razgovor kasnije izbriše, njegovi se citati uklanjaju iz izvještaja.