> ## Documentation Index
> Fetch the complete documentation index at: https://docs.stateset.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Get a conversation with all its messages.

> **Required scope:** read

**Required scope:** `read`

### Path parameters

<ParamField path="id" type="string" required>
  Conversation ID
</ParamField>

### Response

`ConversationWithMessages`

<ResponseField name="conversation" type="Conversation" required>
  <Expandable title="Conversation">
    <ResponseField name="archived_at" type="string">
      Archive timestamp (RFC3339), if soft-deleted
    </ResponseField>

    <ResponseField name="created_at" type="string" required>
      Creation timestamp (RFC3339)
    </ResponseField>

    <ResponseField name="id" type="string" required>
      Unique conversation ID
    </ResponseField>

    <ResponseField name="metadata" type="object" required>
      Arbitrary metadata
    </ResponseField>

    <ResponseField name="session_id" type="string">
      Linked reasoning session ID
    </ResponseField>

    <ResponseField name="tenant_id" type="string" required>
      Tenant (organization) that owns this conversation
    </ResponseField>

    <ResponseField name="title" type="string" required>
      Human-readable title
    </ResponseField>

    <ResponseField name="updated_at" type="string" required>
      Last update timestamp (RFC3339)
    </ResponseField>

    <ResponseField name="user_id" type="string">
      Optional user who created the conversation
    </ResponseField>

    <ResponseField name="workflow_id" type="string" required>
      Workflow ID controlling agent behavior
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="messages" type="ConversationMessage[]" required>
  Messages ordered by creation time

  <Expandable title="ConversationMessage">
    <ResponseField name="analysis" type="object">
      Optional analysis payload from NSR
    </ResponseField>

    <ResponseField name="completion" type="object">
      Optional completion metadata
    </ResponseField>

    <ResponseField name="content" type="string" required>
      Message text content
    </ResponseField>

    <ResponseField name="conversation_id" type="string" required>
      Parent conversation ID
    </ResponseField>

    <ResponseField name="created_at" type="string" required>
      Message creation timestamp (RFC3339)
    </ResponseField>

    <ResponseField name="id" type="integer (int64)" required>
      Auto-increment message ID
    </ResponseField>

    <ResponseField name="role" type="string" required>
      Message role: user, assistant, or system
    </ResponseField>

    <ResponseField name="token_usage" type="object">
      Optional token usage breakdown
    </ResponseField>
  </Expandable>
</ResponseField>

### Status codes

| Code  | Meaning                                            |
| ----- | -------------------------------------------------- |
| `200` | Conversation with messages                         |
| `401` | Unauthorized — missing or invalid credentials      |
| `403` | Forbidden — the key/token lacks the required scope |
| `404` | Conversation not found                             |
| `429` | Rate limited — see Retry-After / X-RateLimit-Reset |
| `503` | Database not configured                            |

<RequestExample>
  ```bash cURL theme={null}
  curl --request GET \
    --url 'https://api.nsr.stateset.com/api/v1/conversations/{id}' \
    --header 'X-API-Key: YOUR_API_KEY'
  ```
</RequestExample>

<ResponseExample>
  ```json 200 theme={null}
  {
    "conversation": {
      "archived_at": "2026-08-31T14:22:05Z",
      "created_at": "2026-08-31T14:22:05Z",
      "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "metadata": null,
      "session_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "tenant_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "title": "Replacement tent pole set",
      "updated_at": "2026-08-31T14:22:05Z",
      "user_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "workflow_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
    },
    "messages": [
      {
        "analysis": null,
        "completion": null,
        "content": "Two-person tent, green — replacement for damaged pole set.",
        "conversation_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
        "created_at": "2026-08-31T14:22:05Z",
        "id": 1001,
        "role": "string",
        "token_usage": null
      }
    ]
  }
  ```
</ResponseExample>
