> ## 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.

# List recent customer conversations

> Conversations

### Query parameters

<ParamField query="limit" type="integer" />

<ParamField query="offset" type="integer" />

<ParamField query="cursor" type="string">
  Opaque next\_cursor from a previous page. Takes precedence over offset.
</ParamField>

<ParamField query="status" type="string">
  Filter by status, e.g. open, closed, reviewed.
</ParamField>

<ParamField query="channel" type="string">
  Filter by channel.
</ParamField>

<ParamField query="agent_id" type="string (uuid)">
  Filter to one agent.
</ParamField>

<ParamField query="escalated" type="string">
  Only escalated conversations.
</ParamField>

### Response

`object`

<ResponseField name="object" type="string" />

<ResponseField name="data" type="Conversation[]">
  <Expandable title="Conversation">
    <ResponseField name="object" type="string" />

    <ResponseField name="id" type="string,null" />

    <ResponseField name="channel" type="string,null" />

    <ResponseField name="status" type="string,null" />

    <ResponseField name="escalated" type="boolean" />

    <ResponseField name="rating" type="string,null" />

    <ResponseField name="agent_id" type="string,null" />

    <ResponseField name="subject" type="string,null" />

    <ResponseField name="tags" type="any" />

    <ResponseField name="created_at" type="string,null" />

    <ResponseField name="messages" type="Message[]">
      Single-conversation reads only (capped transcript).

      <Expandable title="Message">
        <ResponseField name="object" type="string" />

        <ResponseField name="id" type="string,null" />

        <ResponseField name="body" type="string,null" />

        <ResponseField name="from_agent" type="boolean" />

        <ResponseField name="author" type="string,null" />

        <ResponseField name="created_at" type="string,null" />
      </Expandable>
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="has_more" type="boolean" />

<ResponseField name="next_cursor" type="string">
  Keyset cursor for the next page — present only on cursor-capable lists with more rows.
</ResponseField>

### Status codes

| Code  | Meaning                               |
| ----- | ------------------------------------- |
| `200` | Conversations                         |
| `401` | Missing, invalid, or expired API key. |
| `403` | The key lacks a required scope.       |
| `429` | Rate limit exceeded.                  |

### Access

|                |                         |
| -------------- | ----------------------- |
| Required scope | `responses:read`        |
| Rate limit     | 120 requests per minute |

<RequestExample>
  ```bash cURL theme={null}
  curl --request GET \
    --url 'https://response.stateset.com/api/v1/conversations' \
    --header 'Authorization: Bearer YOUR_API_KEY'
  ```
</RequestExample>

<ResponseExample>
  ```json 200 theme={null}
  {
    "object": "list",
    "data": [
      {
        "object": "string",
        "id": null,
        "channel": null,
        "status": null,
        "escalated": true,
        "rating": null,
        "agent_id": null,
        "subject": null,
        "tags": null,
        "created_at": null,
        "messages": []
      }
    ],
    "has_more": true,
    "next_cursor": "string"
  }
  ```
</ResponseExample>
