:::endpoint 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](/docs/api/apps/ai-conversations). Anything else, or a conversation
of somebody else, answers `404`.

## Request

```bash
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:

```json
{
    "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](/docs/api/apps/ai-conversations),
and a message is described under [Ask a new question](/docs/api/apps/ai-conversation-create).

| Field | Description |
| ----- | ----------- |
| `messages` | Every question and every answer that wrote something. An answer that failed or was stopped before its first word is left out |
| `streaming_message_id` | The `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 |
| `failure` | When the latest answer failed: a `reason` to branch on and an English `message`. `null` otherwise. The reasons are listed under [the assistant](/docs/api/apps/ai-overview#why-an-answer-failed) |

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

## Errors

| Status | Code | Meaning |
| ------ | ---- | ------- |
| 400 | `workspace_required` | Our own staff, without a firm in `Propper-Workspace` |
| 403 | `ai_unavailable` | The firm has the assistant switched off for this chat |
| 403 | `forbidden` | Staff whose role does not include `use_ai_chat` |
| 403 | `insufficient_scope` | This device does not hold `ai:read` |
| 404 | `resource_not_found` | No conversation of yours with that id in this chat and this firm |