> 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 attributes (Beta)

> Get all attributes on an element as an array of name/value pairs.

## `element.getAttributes()`

Get all attributes on an element as an array of name/value pairs.
Both the name and value of each attribute can be a string or a `BindingValue` when the attribute is bound to a variable or component prop.

To get the final resolved string values with all bindings evaluated, use the method [`element.getResolvedAttributes()`](/designer/reference/attributes/getResolvedAttributes).

This method is equivalent to the [`element.getAllCustomAttributes()`](/designer/reference/custom-attributes/getAllCustomAttributes) method.

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

### Syntax

```typescript
element.getAttributes(): Promise<Array<AttributeEntry>>
```

### Returns

**Promise\<Array\<*AttributeEntry*>>**

A Promise that resolves to an array of attribute objects.

Related types:

```typescript
type AttributeEntry = {
  name: string | BindingValue
  value: string | BindingValue
}
```

### Example

```typescript
const element = await webflow.getSelectedElement()

if (element && element.attributes) {
  const attributes = await element.getAttributes()
  console.log(attributes)
  // [{ name: 'data-label', value: 'primary' }]
}
```

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

### Designer Ability

Checks for authorization only.

| Designer Ability    | Locale | Branch | Workflow | Sitemode |
| :------------------ | :----- | :----- | :------- | :------- |
| **canAccessCanvas** | Any    | Any    | Any      | Any      |