---
title: "List Avatar Looks"
method: GET
path: "/v3/avatars/looks"
tags: ["Avatars"]
---

# List Avatar Looks

`GET /v3/avatars/looks`

Returns a paginated list of avatar looks (outfits, poses, styles). Filterable by group_id, avatar_type, and ownership. The look id is the avatar_id to pass when creating a video.

## Query parameters

- `group_id` string
- `avatar_type` 'studio_avatar' | 'digital_twin' | 'photo_avatar'
- `ownership` 'public' | 'private'
- `limit` integer
- `token` string

## Response `200`

Successful response

- object
  - `data` AvatarLookItem[]
    - `id` string, required — Unique look identifier. Pass this as avatar_id to POST /v3/videos.
    - `name` string, required — Display name of the look.
    - `avatar_type` 'studio_avatar' | 'digital_twin' | 'photo_avatar', required — Avatar look type — determines engine compatibility with POST /v3/videos.
    - `group_id` string, nullable — ID of the avatar group this look belongs to.
    - `preview_image_url` string, nullable — URL to the look preview image.
    - `preview_video_url` string, nullable — URL to the look preview video.
    - `gender` string, nullable — Gender of the avatar.
    - `tags` string[] — Tags associated with the look.
    - `default_voice_id` string, nullable — Default voice ID for this look.
    - `supported_api_engines` string[] — Engine values this look supports for POST /v3/videos. Possible values: 'avatar_v', 'avatar_iv', 'avatar_iii'.
    - `image_width` integer, nullable — Native width of the look in pixels.
    - `image_height` integer, nullable — Native height of the look in pixels.
    - `preferred_orientation` 'portrait' | 'landscape' | 'square', nullable — Preferred orientation of the look: 'portrait', 'landscape', or 'square'.
    - `status` 'processing' | 'pending_consent' | 'failed' | 'completed' — Training/creation status of an avatar group or look.
    - `error` AvatarError — Error details for a failed avatar creation.
      - `code` string, required — Machine-readable error code.
      - `message` string, required — Human-readable error description.
  - `has_more` boolean — Whether more pages are available
  - `next_token` string, nullable — Opaque cursor for the next page

## Other responses

- `400` — Invalid request parameters
- `401` — Authentication failed
- `429` — Rate limit exceeded

---

[API](https://skmtc.net/heygen/apis/heygen-external-api.md) · [All operations](https://skmtc.net/heygen/apis/heygen-external-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/heygen/heygen-external-api/versions/e2e54726e210/schema)
