Riferimento API
Conversazioni
Le conversazioni nascono dall’endpoint di chat, che restituisce la risposta in streaming. Questi endpoint servono dopo: rileggere la trascrizione, elencare cosa è stato chiesto, rinominare un thread o fare pulizia.
Da dove arrivano le conversazioni
Una conversazione non si crea direttamente. Manda un messaggio aPOST /api/ai/chat con un id scelto da te e il box la crea al primo utilizzo. Riusa lo stesso id per proseguire il thread.Elencare le conversazioni#
GET
/api/public/chatsAPI keyLe conversazioni del proprietario della chiave, dalla più aggiornata di recente.
Query
limitinteger- Quante restituirne, da 1 a 200.Predefinito:
50. offsetinteger- Righe da saltare, per la paginazione.Predefinito:
0. origin"API" | "APP"APIrestituisce solo le conversazioni avviate da questa API;APPsolo quelle che una persona ha avuto nell’app desktop.searchstring- Filtro sul titolo della conversazione, senza distinzione tra maiuscole e minuscole.
Shell
curl "BOX_URL/api/public/chats?origin=API&limit=20" \
-H "x-api-key: YOUR_API_KEY"JSON
{
"chats": [
{
"id": "contract-review-8821",
"title": "Standard notice period",
"origin": "API",
"vectorIds": ["9c8a2b31-7f45-4d10-8e6a-1b3f0d2c4a58"],
"projectId": null,
"messageCount": 4,
"createdAt": "2026-08-02T16:03:11.220Z",
"updatedAt": "2026-08-02T16:07:48.905Z"
}
],
"pagination": { "total": 37, "limit": 20, "offset": 0, "hasMore": true }
}origin è ciò che ti distingue agli occhi dell’app
Le conversazioni create tramite API sono etichettateAPI e compaiono separatamente nella vista di monitoraggio dell’app desktop. Filtrare su questo campo è il modo più pulito per controllare esattamente cosa ha chiesto la tua integrazione.Leggere una conversazione#
GET
/api/public/chats/:idAPI keyLa conversazione con la trascrizione completa in ordine cronologico.
JSON
{
"chat": {
"id": "contract-review-8821",
"title": "Standard notice period",
"origin": "API",
"messages": [
{
"id": "0a3f…",
"role": "user",
"content": "What is our standard notice period?",
"parts": [{ "type": "text", "text": "What is our standard notice period?" }],
"attachments": null,
"finishReason": null,
"createdAt": "2026-08-02T16:03:11.220Z"
},
{
"id": "5b91…",
"role": "assistant",
"content": "Ninety days' written notice, per clause 14.2…",
"parts": [ /* text, tool calls, reasoning */ ],
"finishReason": "stop",
"createdAt": "2026-08-02T16:03:19.741Z"
}
]
}
}Messaggio
role"user" | "assistant" | "system"- Chi ha prodotto il messaggio.
contentstring- I segmenti di solo testo uniti insieme — il campo comodo quando ti serve solo leggere la risposta.
partsarray- Il messaggio strutturato completo: testo, chiamate agli strumenti, risultati degli strumenti e passaggi di ragionamento. Usalo se ti serve vedere cosa ha fatto davvero l’assistente.
attachmentsarray | null- File inviati insieme al messaggio.
finishReasonstring | null- Perché la generazione si è fermata —
stop,length,tool-calls.
Rinominare una conversazione#
PATCH
/api/public/chats/:idAPI keyCampo
titlestringobbligatorio- Il nuovo titolo. Massimo 300 caratteri.
Shell
curl -X PATCH BOX_URL/api/public/chats/contract-review-8821 \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "title": "Acme MSA — notice period" }'Eliminare una conversazione#
DELETE
/api/public/chats/:idAPI keyRimuove la conversazione e tutti i messaggi che contiene.
200Eliminata.404Nessuna conversazione con questo id per questo utente.
I messaggi se ne vanno con lei
L’eliminazione si propaga alla trascrizione. Se ti serve il contenuto, recupera prima la conversazione.