# List asset groups

List asset groups for the current user with pagination and name filtering.

**Third-party SaaS** callers should pass `external_user_id` to scope results to a specific end-user; omitting it returns only groups bound to the API key holder directly (legacy / first-party behaviour).

## GET /v1/asset-groups

> List asset groups

List asset groups for the current user with pagination and name filtering.

**Third-party SaaS** callers should pass `external_user_id` to scope results to a specific end-user; omitting it returns only groups bound to the API key holder directly (legacy / first-party behaviour).

### Authentication

`Authorization: Bearer tr-xxx`

### Query Parameters

- **page_num** `integer`  
  Page number, starting from 1
- **page_size** `integer`  
  Items per page, maximum 100
- **name** `string`  
  Filter by group name (fuzzy match)
- **type** `string`  
  Group type filter. `aigc` (default) returns AIGC asset groups; `real_person` returns LivenessFace groups created via `validate-session`. Upstream Ark requires exactly one type — there is no "return both" option, so you must call this endpoint twice if you need both lists.

- **external_user_id** `string`  
  Optional third-party SaaS end-user identifier. When set, only groups bound to (api_user, external_user_id) are returned. Omit (or leave empty) to return groups bound directly to the API key holder (legacy behaviour). Max 128 chars.

### Response

- **Items** `object[]`  
  Group list
- **Items[].Id** `string`  
  Asset group ID
- **Items[].Name** `string`  
  Group name
- **Items[].Description** `string`  
  Group description
- **Items[].GroupType** ``AIGC``  
  Group type, fixed value `AIGC`
- **Items[].CreateTime** `string`  
  Creation time
- **Items[].UpdateTime** `string`  
  Last updated time
- **TotalCount** `integer`  
  Total count
- **PageNumber** `integer`  
  Current page number
- **PageSize** `integer`  
  Items per page

### Error Codes

- `401`: 
- `429`:
