Open a conversation

.md

One conversation with every message in it, and where its latest answer stands.

Scopesai:read
GET/v1/me/ai/conversations/{id}

The conversation with all its messages, oldest first, and two fields that say where the latest answer stands. Open it again after subscribing to its channel, because an answer that ended before the subscription sent its events to nobody.

The path takes the conversation's id, a uuid from the list. Anything else, or a conversation of somebody else, answers 404.

Request

curl https://api.proppertrading.com/v1/me/ai/conversations/01a16154-2543-710f-978e-494b6ec33a6e \
  -H "Authorization: Bearer ptat_9f2c1a44_3b8e7d2f5c9a1b4e6d8f0a2c4e6b8d1f" \
  -H "Propper-Workspace: propper-live-demo"

Response

A conversation of one of our own staff in a firm, whose answer failed:

{
    "data": {
        "id": "01a16154-2543-710f-978e-494b6ec33a6e",
        "object": "ai_conversation",
        "title": null,
        "pinned": false,
        "surface": "team_chat",
        "channel": "private-ai-chat.01a16154-2543-710f-978e-494b6ec33a6e",
        "last_message_at": "2026-10-22T01:58:04+00:00",
        "created_at": "2026-10-22T01:57:46+00:00",
        "messages": [
            {
                "id": "aimsg_d5u92cjqg9dz8k24",
                "object": "ai_message",
                "role": "user",
                "content": "Which traders breached a rule today?",
                "status": "complete",
                "attachments": [],
                "actions": [],
                "created_at": "2026-10-22T01:57:46+00:00"
            }
        ],
        "streaming_message_id": null,
        "failure": {
            "reason": "failed",
            "message": "The AI assistant could not respond. Please try again."
        }
    },
    "meta": {
        "request_id": "req_01m5gn913c5zrew2cgb9k97bjd"
    }
}

The fields of the conversation are those of the list, and a message is described under Ask a new question.

FieldDescription
messagesEvery question and every answer that wrote something. An answer that failed or was stopped before its first word is left out
streaming_message_idThe id of the answer still being written, also when it has no text yet and is left out of messages. null when nothing is being written
failureWhen the latest answer failed: a reason to branch on and an English message. null otherwise. The reasons are listed under the assistant

The whole conversation comes back at once. There is no paging inside it.

Errors

StatusCodeMeaning
400workspace_requiredOur own staff, without a firm in Propper-Workspace
403ai_unavailableThe firm has the assistant switched off for this chat
403forbiddenStaff whose role does not include use_ai_chat
403insufficient_scopeThis device does not hold ai:read
404resource_not_foundNo conversation of yours with that id in this chat and this firm