Conversations
A conversation is identified by its convid. The /api/user/ and /api/exec/ groups list, read, rename, pin and delete the caller's conversations.
Reading a conversation
POST /api/user/getConversation with a convid returns the exchanges so far: for each run, the query, the response (the agent's name and its output parts) and respondedAt in epoch milliseconds. The state is decrypted on the agent server for this call; the cloud only ever holds the ciphertext.
Listing conversations
getPinnedConversations returns the caller's pinned conversations. getUnpinnedConversations returns the recent ones, most recently used first, in pages: send limit (1 to 25) and pass the nextCursor from one response into the next request until the cursor comes back null. Each entry carries the convid, the title and the time of the last run.
Changing a conversation
| Endpoint | Body | Effect |
|---|---|---|
/api/user/setConversationTitle | convid, title | Renames the conversation. The title is the first query until renamed. |
/api/user/setPinned | convid, pinned | Pins or unpins. A pinned conversation is kept indefinitely; an unpinned one expires after its last use: 7 days on the Free plan, 90 days on Paid. |
/api/user/deleteConversation | convid | Deletes the conversation and its stored state. |
All of these act on the caller's own conversations only. A convid that belongs to another user, or that has expired, is reported as unknown.

