> 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 variable mode by ID

> Learn how to get a variable mode by its ID.

## `collection.getVariableModeById(string: modeId)`

Get a variable mode by its ID.

#

### Syntax

```typescript
collection.getVariableModeById(modeId: string): Promise<VariableMode>
```

### Parameters

* **modeId**: *string* - The ID of the variable mode to get. Pass the reserved ID `"base"` to get the collection's base mode.

### Returns

**Promise\<*VariableMode*>**
A Promise that resolves to a variable mode object.

#

### Example

```typescript
// Get Collection
const collection = await webflow.getDefaultVariableCollection()

// Get Variable Mode by ID
const variableMode = await collection?.getVariableModeById(modeId)
console.log(variableMode)
```

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

> **Note**
>
> `"base"` is a reserved mode ID. Passing it returns the collection's base mode — the default mode every variable falls back to. The base mode's ID stays `"base"` even when its display name is customized, so this is a reliable way to fetch it without first looking it up by name.

### Designer Ability

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