> This page is for Designer API.

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://developers.webflow.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://developers.webflow.com/_mcp/server.

# Get all variants of a component (Beta)

## `component.getVariants()`

Retrieves all variants of a component.

> **Beta**
>
> These methods are in public beta and may change with future releases.

### Syntax

```typescript
component.getVariants(): Promise<Variant[]>
```

### Returns

**Promise\<Array\<*Variant*>>**

A promise that returns an array of variants.

### Example

```typescript
const component = (await webflow.getAllComponents())[0];
const variants = await component.getVariants();
console.log(variants);
// [
//   { id: 'base', name: 'Primary', isSelected: true },
//   { id: 'xxxx', name: 'Secondary', isSelected: false },
// ]
// Find which variant the user is currently editing
const activeVariant = variants.find(v => v.isSelected);
console.log(`Currently editing: ${activeVariant?.name}`);
```

[Try this example](https://webflow.com/oauth/authorize?response_type=code\&client_id=19511de1ec410f9228d8dcbc9420e67916dea80d86d18f0c9a533eb475ea0f62)

---

### Designer Ability

Checks for authorization only

| Designer Ability    | Permission | Locale | Branch | Workflow | Sitemode |
| :------------------ | :--------- | :----- | :----- | :------- | :------- |
| **canAccessCanvas** | any        | any    | any    | any      | any      |