Leni HTTP API
Sessions, results, and attachments
Read a session only when the project-key owner participates in it. Session and optional message filters are checked before response data is returned.
GET/users/me/chat-sessions/:sessionId
Returns { "session": { ... } }. A missing or inaccessible session returns 404.
GET/users/me/chat-sessions/:sessionId/messages
Returns the authorized transcript as { "sessionId": "...", "messages": [ ... ] }.
POST/users/me/chat-sessions/attachments
Resolves generated-file references found in authorized response summaries. Send JSON with required sessionId and optional messageId. Resolved URLs are time-limited capabilities; avoid logging or sharing them.
{
"sessionId": "<session-uuid>",
"messageId": "<optional-message-uuid>"
}POST/users/me/chat-sessions/message-responses
Uses the same JSON body and returns persisted response rows in creation order: { "sessionId": "...", "messageId": null, "messageResponses": [ ... ] }. After polling a run to a terminal message status, send both exact identifiers to retrieve only that turn’s result.
{
"sessionId": "<session-uuid>",
"messageId": "<message-uuid>"
}Identifiers are distinct
messageId and sessionId returned by run-models. Do not substitute an analysis id for a session id.