---
name: "getPanelAgentCustomRolePage"
mode: "api"
versionRequirements:
  - { name: "@tuya-miniapp/cloud-api", version: "1.0.6" }
---

## getPanelAgentCustomRolePage

> [VERSION] @tuya-miniapp/cloud-api >= 1.0.6

> 💡 This API depends on cloud capabilities. In the Miniapp Developer Platform (https://platform.tuya.com/miniapp/), go to Development Settings > Cloud Capabilities to configure authorization.

### Description

Query the custom role list (paginated).

### Parameters

`Params`

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `params` | `GetPanelAgentCustomRolePageParams` | Yes | Request body |

### Return Value

Type: `Promise<PanelAgentCustomRoleListItem[]>`

GetPanelAgentCustomRolePageResult (see type definitions and minituya return parameters for field meanings)

##### PanelAgentCustomRoleListItem

| Property | Type | Description |
| --- | --- | --- |
| `roleId` | `string` | Role ID |
| `roleName` | `string` | Role name |
| `roleDesc` | `string` | Role description |
| `roleIntroduce` | `string` | Role introduction |
| `roleImgUrl` | `string` | Role image |
| `useLangCode` | `string` | Role language code |
| `useLangName` | `string` | Role language name |
| `useTimbreId` | `string` | Role voice |
| `useTimbreName` | `string` | Role voice name |
| `useLlmId` | `string` | Role language model |
| `useLlmName` | `string` | Role language model name |
| `inBind` | `boolean` | Whether bound |
| `templateId` | `string` | Template ID |
| `inConversation` | `boolean` | Whether in session |
| `lastTextAnswer` | `string` | Most recent reply text |

### Referenced Types

##### `interface` GetPanelAgentCustomRolePageParams

| Property | Type | Description |
| --- | --- | --- |
| `devId` | `string` | Device ID |
| `pageNo` | `number` | Page number |
| `pageSize` | `number` | Page size |
| `roleCategory` | `string` | Role category |


### Examples

#### Request example

```typescript
import { getPanelAgentCustomRolePage } from '@tuya-miniapp/cloud-api';

const params = {
  devId: 'your_device_id',
  pageNo: 1,
  pageSize: 10,
  roleCategory: 'assistant',
};

getPanelAgentCustomRolePage(params)
  .then(result => {
    console.log('Custom role list:', result);
  })
  .catch(error => {
    console.error('Failed to get custom role list:', error);
  });
```

#### Response example

```json
[
  {
    "roleId": "role_custom_001",
    "roleName": "Smart Assistant Xiaomei",
    "roleDesc": "A gentle and attentive smart assistant",
    "roleIntroduce": "I'm Xiaomei, your personal smart assistant",
    "roleImgUrl": "https://example.com/role_avatar.jpg",
    "useLangCode": "zh-CN",
    "useLangName": "Chinese (Simplified)",
    "useTimbreId": "timbre_001",
    "useTimbreName": "Gentle female voice",
    "useLlmId": "1001",
    "useLlmName": "GPT-3.5-turbo",
    "inBind": true,
    "templateId": "template_001",
    "inConversation": false,
    "lastTextAnswer": "Hello, how can I help you?"
  }
]
```
