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

# List the conversations you can see

> List conversations newest first. What you see is decided by your credential, not the query: an owner or admin sees all of them, every other role sees its own.

Which conversations you see is decided by your credential, not by the query. A caller whose role can moderate conversations (`owner` or `admin`) sees every conversation in the organization. Every other caller, including an API key with the `normal` or `editor` role, sees only the conversations it owns.

Results are ordered by creation time, newest first, and paged with a cursor. Loop until `has_more` is `false`; see [Pagination](/api-reference/pagination). Archived conversations are not listed.

<ParamField query="limit" type="integer" default="20">
  The page size, from 1 to 100.
</ParamField>

<ParamField query="cursor" type="string">
  The `next_cursor` value from the previous page. A cursor this server did not issue returns `400`.
  If the conversation a cursor points at has since been deleted, you get an empty page.
</ParamField>

<ParamField query="assistant_id" type="string">
  Only list conversations with this assistant. A value that is not a valid ID returns `400`.
</ParamField>

<ParamField query="include_archived" type="boolean" default="false">
  Include archived conversations. Accepts `true`, `false`, `1` or `0`, in any letter case. Any other
  value returns `400 validation_error`.
</ParamField>

## Response

<ResponseField name="data" type="object[]" required>
  The conversations on this page.

  <Expandable title="properties">
    <ResponseField name="id" type="string">
      The conversation ID.
    </ResponseField>

    <ResponseField name="assistant_id" type="string">
      The assistant that answers in this conversation.
    </ResponseField>

    <ResponseField name="title" type="string">
      The conversation title.
    </ResponseField>

    <ResponseField name="status" type="string">
      `active` or `archived`.
    </ResponseField>

    <ResponseField name="turn_state" type="string">
      `idle`, or `awaiting_answer` while a question is being answered.
    </ResponseField>

    <ResponseField name="message_count" type="integer">
      The number of messages. Each question and each answer counts as one.
    </ResponseField>

    <ResponseField name="created_at" type="string">
      ISO 8601 creation timestamp with a UTC offset.
    </ResponseField>

    <ResponseField name="updated_at" type="string">
      ISO 8601 timestamp of the last change.
    </ResponseField>

    <ResponseField name="owner" type="object">
      The owning participant: `type` is `user` or `service`, and `id` is its identifier.
    </ResponseField>

    <ResponseField name="metadata" type="object">
      Your metadata entries.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="next_cursor" type="string | null" required>
  Pass this back as `cursor` to get the next page. `null` on the last page.
</ResponseField>

<ResponseField name="has_more" type="boolean" required>
  Whether another page exists.
</ResponseField>

<RequestExample>
  ```bash cURL theme={"theme":{"light":"github-light","dark":"github-dark"}}
  curl --request GET "$MITHUNAI_URL/arukz/api/v1/conversations?limit=20" \
    --header "Authorization: Bearer $MITHUNAI_API_KEY"
  ```

  ```python Python theme={"theme":{"light":"github-light","dark":"github-dark"}}
  import os, requests

  response = requests.get(
      f"{os.environ['MITHUNAI_URL']}/arukz/api/v1/conversations",
      headers={"Authorization": f"Bearer {os.environ['MITHUNAI_API_KEY']}"},
      params={"limit": 20},
      timeout=60,
  )
  response.raise_for_status()
  print(response.json())
  ```

  ```javascript JavaScript theme={"theme":{"light":"github-light","dark":"github-dark"}}
  const response = await fetch(`${process.env.MITHUNAI_URL}/arukz/api/v1/conversations?limit=20`, {
    headers: { Authorization: `Bearer ${process.env.MITHUNAI_API_KEY}` },
  })
  console.log(await response.json())
  ```
</RequestExample>

<ResponseExample>
  ```json 200 theme={"theme":{"light":"github-light","dark":"github-dark"}}
  {
    "data": [
      {
        "id": "c41f8a2e-6d93-4b0a-b7e5-3f1d2c8a9e60",
        "assistant_id": "5b0e2c7a-91d4-4f3e-8a6b-2d7c9e1f4a38",
        "title": "How do I rotate an API key?",
        "status": "active",
        "turn_state": "idle",
        "message_count": 2,
        "created_at": "2026-09-24T10:15:02.184311+00:00",
        "updated_at": "2026-09-24T10:15:09.402117+00:00",
        "owner": { "type": "service", "id": "9a7d3e51-2f6c-4b88-a0d4-6e1b5c3f7a92" },
        "metadata": { "source": "support-portal" }
      }
    ],
    "next_cursor": null,
    "has_more": false
  }
  ```

  ```json 400 theme={"theme":{"light":"github-light","dark":"github-dark"}}
  { "code": "validation_error", "message": "'limit' must be between 1 and 100." }
  ```
</ResponseExample>
