ClickCease

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

Preserve the exact messageId and sessionId returned by run-models. Do not substitute an analysis id for a session id.