# List conversation items

Launch stage: Beta

`GET /api/2.0/genie/one/conversations/{conversation_id}/items`

Lists public user and assistant messages in a conversation. This endpoint is
available when Genie One conversation history is enabled for the workspace.
Pass a page's `next_page_token` as `page_token` to request the next page.

## Path parameters

- `conversation_id` (string, required)
  The conversation whose public items are returned.

## Query parameters

- `page_size` (integer, optional)
  The maximum number of items to return.
- `page_token` (string, optional)
  The opaque `next_page_token` from the previous page. Omit for the first page.

## Returns

- `object` (string, optional, Output only)
  Always `list`.
- `data` (array of object, optional, Output only)
  The public messages in this page.
  - `type` (string, optional, Output only)
    The item discriminator, `message`.
  - `id` (string, optional, Output only)
    The opaque item identifier. Clients must not parse or derive identifiers from it.
  - `role` (string, optional, Output only)
    The message role: `user` or `assistant`.
  - `content` (array of object, optional, Output only)
    The ordered text parts of the message.
    - `type` (string, optional, Output only)
      `input_text` for user messages, or `output_text` for assistant messages.
    - `text` (string, optional, Output only)
      The text of this content part. Output text may contain Markdown, including result tables.
    - `annotations` (array of object, optional, Output only)
      Public source references used by assistant text. User input has no annotations.
      - `type` (string, optional, Output only)
        The citation discriminator, `asset`.
      - `title` (string, optional, Output only)
        The customer-visible source title.
      - `asset_type` (string, optional, Output only)
        The kind of cited source, such as `TABLE`, `NOTEBOOK`, or `WEB`.
      - `identifier` (string, optional, Output only)
        The public asset identifier, volume path, or source web URL.
      - `index` (int32, optional, Output only)
        The one-based citation number. It is neither a character offset nor an
        index into `annotations`. Numbers remain stable if unsupported citations
        are omitted.
  - `status` (string, optional, Output only)
    The lifecycle status of this message, when available.
  - `phase` (string, optional, Output only)
    Assistant message phase: `commentary` or `final_answer`. Omitted for user messages.
  - `create_time` (string, optional, Output only)
    The message creation time as an RFC 3339 timestamp, when available.
  - `complete_time` (string, optional, Output only)
    The message completion time as an RFC 3339 timestamp, when available.
  - `response_id` (string, optional, Output only)
    The response associated with this history item, when available.
- `next_page_token` (string, optional, Output only)
  Present only when another page is available. Pass it as `page_token` to continue.

## Response

This example uses `page_size=2` and has another page.

```json
{
  "object": "list",
  "data": [
    {
      "type": "message",
      "id": "input_4f93a6",
      "role": "user",
      "content": [
        {"type": "input_text", "text": "How did revenue change last quarter?"}
      ],
      "status": "completed",
      "create_time": "2026-10-19T10:01:00Z",
      "response_id": "9f7c84c6d3af4ae8ac5cc43590a15366"
    },
    {
      "type": "message",
      "id": "2b6aa43956be4fe89ff68ccb565a214d",
      "role": "assistant",
      "content": [
        {
          "type": "output_text",
          "text": "Revenue increased 12% last quarter.",
          "annotations": []
        }
      ],
      "status": "completed",
      "phase": "final_answer",
      "create_time": "2026-10-19T10:01:15Z",
      "complete_time": "2026-10-19T10:01:20Z",
      "response_id": "9f7c84c6d3af4ae8ac5cc43590a15366"
    }
  ],
  "next_page_token": "opaque-next-page-token"
}
```
