# List Avatar Look ID Options — HeyGen

> Retrieves a page of available avatar looks, whose id can be used for Avatar Look ID fields. Lists photo_avatar looks by default; set Avatar Type to digital_twin or studio_avatar for other kinds, and Ownership to public or private to narrow…

- Key: `heygen-list-avatar-look-id-options`
- Type: Action (Read-only)
- Version: 0.0.1
- App: HeyGen (`heygen`) — https://pipedream.com/apps/heygen.md
- This page (HTML): https://pipedream.com/apps/heygen/actions/list-avatar-look-id-options
- Hints: read-only · open-world
- Source: https://github.com/PipedreamHQ/pipedream/blob/master/components/heygen/actions/list-avatar-look-id-options/list-avatar-look-id-options.mjs

## Description

Retrieves a page of available avatar looks, whose `id` can be used for Avatar Look ID fields. Lists `photo_avatar` looks by default; set **Avatar Type** to `digital_twin` or `studio_avatar` for other kinds, and **Ownership** to `public` or `private` to narrow further. Pass **Fields** to keep the response small. If `has_more` is true, pass `next_token` as the Token to get the next page. Example: Limit `2` and Fields `["id", "name"]` returns `{"data": [{"id": "look_1", "name": "Office look"}, {"id": "look_2", "name": "Outdoor look"}], "has_more": true, "next_token": "abc"}`. [See the documentation](https://developers.heygen.com/reference/list-avatar-looks)

## Props

| Prop | Type | Required | Description |
|---|---|---|---|
| `avatarType` | `string` | No | Type of avatar looks to list: photo_avatar (photo-based avatars), digital_twin (avatars cloned from video footage), or studio_avatar (preset studio avatars). Defaults to photo_avatar. Example: photo_avatar |
| `ownership` | `string` | No | Filter by ownership: public for HeyGen's preset avatars, or private for your own. Returns both if not set. Example: private |
| `avatarLookFields` | `string[]` | No | Only return these fields for each avatar look, to keep the response small. Valid fields: id, name, avatar_type, group_id, preview_image_url, preview_video_url, gender, tags, default_voice_id, status, supported_api_engines (the video generation engines this look works with, e.g. ["avatar_v", "avatar_iv", "avatar_iii"]), image_width and image_height (source image size in pixels, e.g. 1920 x 1080), and preferred_orientation (landscape or portrait, the orientation this look is best suited to). Example: ["id", "name"]. Returns all fields if not set. |
| `limit` | `integer` | No | Number of results per page (1-50). Defaults to the API default if not set. Example: 20 |
| `token` | `string` | No | Cursor for the next page. Use the next_token value from the previous response of this same action, with the same filters and limit. Example: eyJzdGFydF9pZCI6ICI4NDU5MTlhZTEw... |

## Run it

**MCP**

```ts
import { Client } from "@modelcontextprotocol/sdk/client/index.js"
import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js"
import { PipedreamClient } from "@pipedream/sdk"

const pd = new PipedreamClient({
  projectId: process.env.PIPEDREAM_PROJECT_ID!,
  clientId: process.env.PIPEDREAM_CLIENT_ID!,
  clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
  projectEnvironment: "production",
})

const accessToken = await pd.rawAccessToken

const transport = new StreamableHTTPClientTransport(
  new URL("https://remote.mcp.pipedream.net/v3"),
  {
    requestInit: {
      headers: {
        Authorization: `Bearer ${accessToken}`,
        "x-pd-project-id": process.env.PIPEDREAM_PROJECT_ID!,
        "x-pd-environment": "production",
        "x-pd-external-user-id": "{external_user_id}", // any stable ID for this user in your system
        "x-pd-app-slug": "heygen",
      },
    },
  },
)

const mcp = new Client({ name: "my-agent", version: "1.0.0" })
await mcp.connect(transport)

const { tools } = await mcp.listTools()

// listTools() hands your model this tool's input schema, so it can
// fill the arguments itself:
const result = await mcp.callTool({
  name: "heygen-list-avatar-look-id-options",
  arguments: {
    avatarType: "Avatar Type",
    ownership: "Ownership",
  },
})
```

**TypeScript**

```ts
import { PipedreamClient } from "@pipedream/sdk"

const pd = new PipedreamClient({
  projectId: process.env.PIPEDREAM_PROJECT_ID!,
  clientId: process.env.PIPEDREAM_CLIENT_ID!,
  clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
  projectEnvironment: "production",
})

const result = await pd.actions.run({
  id: "heygen-list-avatar-look-id-options",
  externalUserId: "{external_user_id}", // any stable ID for this user in your system
  configuredProps: {
    heygen: { authProvisionId: "apn_xxxxxxx" },
    avatarType: "Avatar Type",
    ownership: "Ownership",
  },
})

console.log(result)
```

**cURL**

```bash
curl -X POST https://api.pipedream.com/v1/connect/{project_id}/actions/run \
  -H "Content-Type: application/json" \
  -H "X-PD-Environment: production" \
  -H "Authorization: Bearer {access_token}" \
  -d '{
    "external_user_id": "{external_user_id}",
    "id": "heygen-list-avatar-look-id-options",
    "configured_props": {
      "heygen": { "authProvisionId": "apn_xxxxxxx" },
      "avatarType": "Avatar Type",
      "ownership": "Ownership"
    }
  }'
```

---

- App: https://pipedream.com/apps/heygen.md · All apps: https://pipedream.com/apps
