Riferimento API · Sessioni e Messaggi
API Sessioni e Messaggi della Chat
Crea, elenca, rinomina, fissa, contrassegna con stella e elimina le sessioni di chat, e gestisci i singoli messaggi al loro interno — inclusa la cronologia delle modifiche tracciata e l'annullamento.
Endpoint delle sessioni
POST /api/v1/sessionsGET /api/v1/sessionsGET /api/v1/sessions/{session_id}/messagesPATCH /api/v1/sessions/{session_id}DELETE /api/v1/sessions/{session_id}Endpoint dei messaggi
GET /api/v1/messages/{message_id}PATCH /api/v1/messages/{message_id}GET /api/v1/messages/{message_id}/historyPOST /api/v1/messages/{message_id}/undoDELETE /api/v1/messages/{message_id}Crea sessione — Corpo della richiesta
{
"title": "Untitled Chat",
"kind": "chat",
"folder_id": null,
"agent_id": null,
"metadata": {}
}workspace_id non è accettato dal client in runtime personale, e deve corrispondere al contesto runtime dello workspace attivo altrimenti — non viene mai considerato come una sovrascrittura arbitraria del client.
Elenco — Parametri di query e risposta
{
"items": [ { "id": "...", "title": "...", "pinned": false, "...": "..." } ],
"total": 12,
"limit": 50,
"offset": 0
}Aggiorna sessione (PATCH)
Almeno un campo deve essere presente nel corpo della richiesta — un PATCH vuoto viene rifiutato.
{
"pinned": true,
"starred": false
}Comportamenti della sessione
- Una sessione appartiene esattamente a un proprietario (un utente, opzionalmente limitato a uno workspace) — determinato dal contesto della richiesta autenticata, non dall'input del client.
- Eliminare una sessione è una cancellazione logica (deleted_at viene impostato); la sessione e i suoi messaggi rimangono nel database ma sono esclusi da tutte le query standard.
- GET /sessions/{session_id}/messages restituisce un conteggio dei messaggi calcolato dal vivo dai messaggi stessi, non un contatore memorizzato.
- I parametri di percorso session_id e message_id sono validati come UUID — un ID malformato restituisce un errore di validazione chiaro, non un errore di server.
- Le sessioni demo del sito di marketing sono limitate a 3 per utente e restituiscono 403 una volta raggiunto tale limite.
Cronologia delle modifiche del messaggio e annullamento
Ogni modifica al contenuto o al payload di un messaggio viene registrata prima che la modifica sia applicata, preservando la versione precedente.
[
{
"id": "8f14e...",
"old_content": "Original message text",
"old_payload": null,
"edited_at": "2026-07-30T16:40:00Z"
}
]- Un messaggio può essere modificato o eliminato solo dal proprietario della sessione a cui appartiene.
- Annulla ripristina la versione registrata più recente e rimuove quella voce di cronologia — non torna oltre l'ultima modifica.
- La modifica o l'eliminazione di un messaggio attualmente non regola il campo del conteggio messaggi memorizzato nella sessione; esso riflette sempre il conteggio dal vivo.
Modelli di errore
400
Richiesta non valida — incluso un corpo PATCH vuoto o nessuna modifica rilevata.
401
Autenticazione mancante o non valida.
404
Sessione o messaggio non trovato (o non di proprietà del chiamante).
Esempi
Crea una sessione
curl -X POST "/api/v1/sessions" \
-H "Authorization: Bearer [token]" \
-H "Content-Type: application/json" \
-d '{"title": "New Chat", "kind": "chat"}'Fissa una sessione
curl -X PATCH "/api/v1/sessions/[session_id]" \
-H "Authorization: Bearer [token]" \
-H "Content-Type: application/json" \
-d '{"pinned": true}'Modifica un messaggio
curl -X PATCH "/api/v1/messages/[message_id]" \
-H "Authorization: Bearer [token]" \
-H "Content-Type: application/json" \
-d '{"content": "Corrected message text"}'Annulla l'ultima modifica
curl -X POST "/api/v1/messages/[message_id]/undo" \
-H "Authorization: Bearer [token]"