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

# List Actors

> Returns a paginated list of actors

```
GET /openapi/memorylake/api/v3/actors
```

Returns a paginated list of all actors in your account. Use `custom_id` to filter actors by their external identifier.

<Note>
  **Permission required:** `actor:list`
</Note>

### Query Parameters

<ParamField query="page_size" type="integer" default="20">
  Number of actors per page.
</ParamField>

<ParamField query="continuation_token" type="string">
  Token returned by the previous call. Omit on the first request.
</ParamField>

<ParamField query="custom_id" type="string">
  Filter by custom ID. Returns only actors whose `custom_id` matches exactly.
</ParamField>

<RequestExample>
  ```bash First page theme={null}
  curl -X GET 'https://app.memorylake.ai/openapi/memorylake/api/v3/actors?page_size=20' \
    -H 'Authorization: Bearer sk_xxxxxx'
  ```

  ```bash Filter by custom_id theme={null}
  curl -X GET 'https://app.memorylake.ai/openapi/memorylake/api/v3/actors?custom_id=user-ext-001' \
    -H 'Authorization: Bearer sk_xxxxxx'
  ```

  ```bash Next page theme={null}
  curl -X GET 'https://app.memorylake.ai/openapi/memorylake/api/v3/actors?page_size=20&continuation_token=eyJsYXN0X2lkIjoiYWN0LTk4NzY1NCJ9' \
    -H 'Authorization: Bearer sk_xxxxxx'
  ```
</RequestExample>

### Response

<ResponseField name="data" type="object">
  <Expandable title="Paginated actor list">
    <ResponseField name="items" type="array">
      Array of actor objects

      <Expandable title="Actor object">
        <ResponseField name="id" type="string">Actor ID</ResponseField>
        <ResponseField name="custom_id" type="string">Caller-defined external identifier</ResponseField>
        <ResponseField name="actor_type" type="string">Actor type: `HUMAN` or `ASSISTANT`</ResponseField>
        <ResponseField name="display_name" type="string">Human-readable display name</ResponseField>
        <ResponseField name="description" type="string">Actor description</ResponseField>
        <ResponseField name="metadata" type="object">Caller-defined metadata (key-value pairs)</ResponseField>
        <ResponseField name="created_at" type="string">Creation timestamp</ResponseField>
        <ResponseField name="updated_at" type="string">Last update timestamp</ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="continuation_token" type="string">Token for the next page. Absent or `null` when this is the last page.</ResponseField>
  </Expandable>
</ResponseField>

<ResponseExample>
  ```json Success (200) theme={null}
  {
    "success": true,
    "data": {
      "items": [
        {
          "id": "act-a1b2c3d4e5f6",
          "custom_id": "user-ext-001",
          "actor_type": "HUMAN",
          "display_name": "Alice Chen",
          "description": "Primary end user for the mobile app",
          "metadata": {
            "tier": "premium",
            "region": "us-west"
          },
          "created_at": "2025-03-10T08:00:00Z",
          "updated_at": "2025-03-10T08:00:00Z"
        },
        {
          "id": "act-f6e5d4c3b2a1",
          "custom_id": "system-intake",
          "actor_type": "system",
          "display_name": "Intake Bot",
          "description": "Automated intake system for onboarding flows",
          "metadata": {},
          "created_at": "2025-03-12T14:30:00Z",
          "updated_at": "2025-03-12T14:30:00Z"
        }
      ],
      "continuation_token": "eyJsYXN0X2lkIjoiYWN0LWY2ZTVkNGMzYjJhMSJ9"
    }
  }
  ```
</ResponseExample>
