> 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.

# Introduction

> Webflow's Designer APIs let you build apps that programmatically control the Webflow Designer.

Webflow's Designer APIs let you build apps that programmatically control the Webflow Designer. With these APIs, developers can create tools that automatically add elements to pages, apply styles, manage components, and streamline design workflows.

\


## Getting started

To start using the Designer APIs, [register a Webflow App](/data/docs/getting-started-apps) and create a [Designer Extension](/designer/docs/getting-started-designer-extensions) using the [Webflow CLI.](/designer/reference/webflow-cli) Once you have your Designer Extension running locally on a Webflow project, you can start using the Designer APIs to create elements, styles, components, and more.

#### [Create your first extension](/designer/docs/getting-started-designer-extensions)

Follow our step-by-step guide to build and deploy your first Designer Extension\
\


[Create a Designer Extension ](/designer/docs/getting-started-designer-extensions)

#### [Try the interactive playground](https://webflow.com/oauth/authorize?response_type=code\&client_id=19511de1ec410f9228d8dcbc9420e67916dea80d86d18f0c9a533eb475ea0f62)

Experiment with live API calls in our interactive playground environment\
\

Test the API playground

\


## Working with the Designer APIs

The Designer APIs provide several objects and methods that give Apps control over the Webflow Designer. Each object serves a specific purpose and contains methods to help you design automated workflows for teams working in Webflow.

#### [Elements](/designer/reference/elements-overview)

Create and manipulate elements on the canvas, including their properties, content, and styles.

#### [Styles](/designer/reference/styles-overview)

Manage reusable CSS classes to control the visual appearance of elements across your site.

#### [Components](/designer/reference/components-overview)

Create and modify reusable element groups to maintain consistency across your designs.

#### [Variables](/designer/reference/variables-overview)

Define and manage global values for numbers, percentages, sizes, colors, and fonts.

#### [Interactions](/designer/reference/interactions-overview)

List, read, create, set, and remove interactions on the current site or page.

#### [Pages](/designer/reference/pages-overview)

Manage page properties, SEO settings, and site structure.

#### [Extension Utilities](/designer/reference/extension-utilities)

Utility methods to manage your extension's behavior and interaction with the Designer.

\


## How the Designer APIs work in Webflow

Designer APIs are client-side JavaScript APIs that execute in the browser via an iframe. They interact with Webflow just as a user would - creating elements, applying styles, and modifying properties. This client-side approach allows your apps to directly manipulate the Designer interface in real-time, creating a seamless integration between your code and the Webflow environment.

To work with objects in your Webflow project, you'll need to reference the object using an appropriate method, and then make changes using the available methods.

#### Referencing objects

* **Existing Objects:** Get an existing object using an appropriate **GET** method. For example, to get the currently selected element, you can use the [`webflow.getSelectedElement()`](/designer/reference/get-selected-element) method. You can see all the methods available for retrieving objects in the [Designer API Reference](/designer/reference/elements-overview).

* **New Objects:** Create a new object using an appropriate **CREATE** method. When you create a new object, Webflow will always return a reference to the new object. For example, to create a new element, you can use the [`element.after()`](/designer/reference/insert-element-after) method. You can see all the methods available for creating objects in the [Designer API Reference](/designer/reference/elements-overview).

![Getting a reference to a resource](/_fern-img/17d1ef94bda2296a5c365947d98c551f101ba498801c0abb42850a93982accb3.webp)

#### Modifying objects

Once you've referenced an object, you can start manipulating it using the available methods on that object. Each object has its own set of methods, so be sure to refer to the [Designer API Reference](/designer/reference/elements-overview) for the object you're working with.

In the example below, we're using the [`element.setCustomAttribute()`](/designer/reference/custom-attributes/setCustomAttribute) method to set a custom attribute on the element. When the custom attribute is set, the element will be updated in the Webflow Designer, and the information about the updated object will be returned to the Designer Extension.

![Saving changes to an element](/_fern-img/3b78ee45acd2c5a5b79458bd1f6b77277e8534b706c1130f5a0d53d8f11555fb.webp)