> This page is for MCP Server.

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

# Data

> Reference for Webflow MCP data tools: work with sites, pages, elements, CMS, and more.

Data tools work directly against your Webflow project's content and settings. They don't require an open Designer session or the companion [bridge app](/mcp/reference/how-it-works). You can call them headlessly, from a server, script, or agent, without the Designer being open.

For tools that operate on the live Designer canvas (selecting elements, navigating between pages, reading breakpoints), see [Design tools](/mcp/tools/designer-tools). For discovery, guidance, and AI tools, see [Utility tools](/mcp/tools/utility-tools).

Each tool below lists whether it reads, writes, or both. Access is governed at the tool level, so granting a tool grants all of its actions. Under each tool is the full set of actions and the parameters each one requires.

**Note:** The page-building tools (`data_element_tool`, `data_element_settings_tool`, `data_component_tool`, `data_component_props_tool`, `data_component_variants_tool`, `data_element_builder`, `data_component_builder`, `data_whtml_builder`, `data_style_tool`, `data_variable_tool`, and `data_interactions_tool`) operate on a specific page. Every action on these tools requires `siteId` and `pageId` in addition to the parameters listed.

---

## data\_agent\_instructions\_tool

read

write

Manage a site's agent instructions: the markdown-based rules and skills that give agents custom guidance for working on that site. Instructions can reference Webflow primitives (variables, styles, components, pages, CMS collections and items, locales, and other instructions), which resolve server-side against the site's own data.

* Create, read, search, update, move, or delete the rules and skills stored on a site so agents working on it follow site-specific guidance
* Generate a skill from a site's own structure or from a CMS collection, then review the draft before publishing it

> **Note:** Generation is asynchronous and saves a draft. Call `generate_instruction` to start it, then call it again with `task_id` set to the returned task ID until it finishes and returns a resource URI.

\


| Action                 | Description                                                                                                               | Required parameters                                   |
| ---------------------- | ------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------- |
| `search_instructions`  | Search a site's instructions by name, description, or markdown substring; returns metadata and a resource URI per result. | `site_id`                                             |
| `read_instruction`     | Read a single instruction by path; by default resolves and inlines any referenced instructions.                           | `site_id`, `path`                                     |
| `create_instruction`   | Create a new instruction. The `kind` selects the path grammar.                                                            | `site_id`, `kind`, `path`, `markdown`                 |
| `update_instruction`   | Update an existing instruction; only the fields you provide change.                                                       | `site_id`, `kind`, `path`                             |
| `delete_instruction`   | Delete an instruction by path. Deleting a skill's `SKILL.md` cascades to all its descendants.                             | `site_id`, `kind`, `path`                             |
| `move_instruction`     | Rename or move an instruction; `SKILL.md` or subfolder renames cascade. The destination must keep the same parent folder. | `site_id`, `kind`, `fromPath`, `toPath`               |
| `generate_instruction` | Generate new instructions from an existing site or CMS. Poll an in progress generation for a status update.               | `site_id`, `instruction_type` or `site_id`, `task_id` |

---

## data\_analyze\_tool

read

Read-only access to Webflow Analyze report data for a site: traffic over time, ranked pages, ranked dimensions, engagement events, and time on page. It also exposes two guide actions that return static guidance for building queries and interpreting results; these make no API call.

> **Note:** Requires the [Webflow Analyze](https://webflow.com/feature/analyze) add-on. Actions return an error on sites without it.

* Pull a site's traffic trend over a date range
* Rank top pages or break traffic down by country, browser, or source
* Use the guide actions first when you're unsure how to shape a query or trace an event back to the element that produced it

\


| Action                            | Description                                                                                         | Required parameters                                                    |
| --------------------------------- | --------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------- |
| `get_query_guide`                 | Return guidance for constructing valid Analyze queries.                                             | None                                                                   |
| `get_resolve_event_element_guide` | Return guidance for resolving event rows back to elements, components, or CMS items.                | None                                                                   |
| `get_time_on_page_report`         | Average time on a site or page, as a single aggregate or bucketed over time.                        | `site_id`, `startTime`, `endTime`, `metricScope`                       |
| `get_top_dimensions_report`       | Top values for one dimension (country, browser, traffic source, etc.), ranked by sessions or users. | `site_id`, `startTime`, `endTime`, `dimension`, `metricScope`, `limit` |
| `get_top_events_report`           | Top engagement events ranked by frequency, with page context.                                       | `site_id`, `startTime`, `endTime`                                      |
| `get_top_pages_report`            | Top pages ranked by session, user, or pageview count.                                               | `site_id`, `startTime`, `endTime`, `limit`                             |
| `get_traffic_report`              | Time series of sessions, users, or pageviews over a window.                                         | `site_id`, `startTime`, `endTime`, `metricScope`, `bucketTimeZone`     |

---

## data\_apps\_tool

read

write

Inspect and manage [Webflow Cloud](/webflow-cloud/getting-started) apps: their GitHub sources, [environments](/webflow-cloud/environments), environment variable metadata, [deployments](/webflow-cloud/deployments), custom domains, and logs. Apps created through this tool are built from a GitHub repository. Use the [Webflow CLI](/cli/reference/webflow-cli) for local-source apps, local-source deployment, and writing environment variable values.

> **Note:** This tool never accepts environment variable values. `list_variables` returns plaintext values for non-secret entries and omits secret values entirely. Set and change values with the Webflow CLI.

> **Note:** Build-phase and runtime logs are returned unsanitized and can contain secrets or presigned URLs. Treat the output of `get_build_logs` and `get_runtime_logs` as sensitive.

* Diagnose a failed deployment from its build logs, then redeploy the same commit once the fix lands
* Deploy the HEAD of a connected GitHub branch, or roll back to the commit from an earlier deployment
* Map a Git branch to a new environment mount, or retire an environment you no longer need
* Audit which variables an environment defines without reading any secret values

The destructive and deployment actions (`delete_app`, `delete_environment`, `delete_variable`, `redeploy`, `trigger_deployment`, and `create_app`) accept a `dry_run` parameter that reports what the call would do without applying it.

\


| Action               | Description                                                                                                  | Required parameters                 |
| -------------------- | ------------------------------------------------------------------------------------------------------------ | ----------------------------------- |
| `create_app`         | Create a standalone or site-attached app from a GitHub repository and attempt its first deployment.          | `name`, `source_url`, `branch`      |
| `create_environment` | Create an environment mapping a Git branch to an app mount. Doesn't deploy code.                             | `app_id`, `branch`, `mount`         |
| `delete_app`         | Remove an app, either by archiving it or by permanently deleting it and all of its environments.             | `app_id`                            |
| `delete_environment` | Permanently delete an environment, including its worker, KV, D1, and R2 storage, deployments, and variables. | `app_id`, `env_id`                  |
| `delete_variable`    | Delete one environment variable by key.                                                                      | `app_id`, `env_id`, `key`           |
| `get_app`            | Get an app's ID, name, description, site ID, app path, GitHub source, and site-attachment status.            | `app_id`                            |
| `get_app_domains`    | List custom domains for the app's underlying site. Excludes `*.webflow.io` hostnames.                        | `app_id`                            |
| `get_build_logs`     | Get build and deploy logs for a deployment, with a timestamp, message, and phase per entry.                  | `app_id`, `env_id`, `deployment_id` |
| `get_deployment`     | Get a deployment's status, commit, build and deploy timestamps, build size, and framework.                   | `app_id`, `env_id`, `deployment_id` |
| `get_runtime_logs`   | Get runtime logs for an environment. Base plans retain roughly one hour of history.                          | `app_id`, `env_id`                  |
| `list_apps`          | List visible apps, optionally filtered by site, name, or search query.                                       | None                                |
| `list_deployments`   | List an environment's deployments, newest first, optionally filtered by status.                              | `app_id`, `env_id`                  |
| `list_environments`  | List an app's environments with their branch, mount, public URL, and deployment status.                      | `app_id`                            |
| `list_variables`     | List an environment's variables. Non-secret values are returned in plaintext and secret values are omitted.  | `app_id`, `env_id`                  |
| `redeploy`           | Rebuild and deploy the exact commit from an earlier deployment, to retry or roll back. GitHub sources only.  | `app_id`, `env_id`, `deployment_id` |
| `trigger_deployment` | Deploy the HEAD commit of the connected GitHub branch. GitHub sources only.                                  | `app_id`, `env_id`                  |
| `update_app`         | Update an app's name, description, or GitHub source. Source updates need a user-authorized token.            | `app_id`                            |
| `update_environment` | Change an environment's Git branch or mount. Doesn't deploy code.                                            | `app_id`, `env_id`                  |

---

## data\_assets\_tool

read

write

Manage a site's assets and asset folders. Uploads are a two-step process: create the asset metadata to get a presigned upload target, then POST the file bytes to it. The tool also lists, updates, organizes, and deletes assets and folders, and compresses images to WebP or AVIF through asynchronous tasks.

* Upload an image and organize it into folders
* Audit or update asset metadata like alt text
* Clean up unused assets
* Batch-compress a site's images to reduce their size

\


| Action                   | Description                                                                                                                                          | Required parameters                 |
| ------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------- |
| `compress_assets`        | Start an async task compressing image assets (JPG/PNG/WebP) to WebP or AVIF, replacing files in place. Rate-limited to 10 calls per minute per site. | `site_id`, `asset_ids[]`, `format`  |
| `create_asset`           | Create an asset metadata entry; returns a presigned upload URL and details for uploading the bytes (step one of a two-step upload).                  | `site_id`, `file_name`, `file_hash` |
| `create_asset_folder`    | Create a new asset folder (names must be unique among siblings). Folders can't be deleted via the API.                                               | `site_id`, `display_name`           |
| `delete_asset`           | Delete an asset. Soft delete; not restorable via the API.                                                                                            | `asset_id`                          |
| `get_asset`              | Get one asset's metadata, including hosted URL, alt text, and folder.                                                                                | `asset_id`                          |
| `get_asset_folder`       | Get one asset folder, including its display name, parent, and asset IDs.                                                                             | `folder_id`                         |
| `get_compression_task`   | Poll the status and result of a compression task.                                                                                                    | `site_id`, `task_id`                |
| `list_asset_folders`     | List a site's asset folders (default page size 25).                                                                                                  | `site_id`                           |
| `list_assets`            | List a site's assets, newest first; optional folder or locale filter.                                                                                | `site_id`                           |
| `list_compression_tasks` | List a site's compression tasks, newest first.                                                                                                       | `site_id`                           |
| `update_asset`           | Update an asset's metadata (display name, alt text, folder).                                                                                         | `asset_id`                          |
| `update_asset_folder`    | Rename an asset folder or move it under a different parent.                                                                                          | `folder_id`                         |

---

## data\_campaigns\_tool

read

write

Manage Campaign Hub sites, campaigns, page variations, and campaign analytics. A campaign is generated from a markdown brief and produces a landing page. Personalization binds campaign fields to element settings and component props, so a single page can present different content per variation.

> **Note:** Campaign generation is asynchronous. `create_campaign` returns a task ID, and `get_campaign_task_status` is the only signal that the landing page has finished generating.

* Find a workspace's Campaign Hub sites, then list the campaigns on one of them
* Generate a campaign and its landing page from an approved markdown brief
* Create page variations for different audiences and update their field values in bulk
* Bind a campaign field to an element setting or a component prop so its content varies by variation
* Read how a campaign performed: traffic over time, form submissions, engaged companies, and CRM opportunity totals

\


| Action                             | Description                                                                                                       | Required parameters                                                                        |
| ---------------------------------- | ----------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------ |
| `bulk_update_page_variations`      | Update the name, slug, or field values of up to 30 page variations, returning a result per row.                   | `site_id`, `campaign_id`, `variations[]`                                                   |
| `create_campaign`                  | Create a campaign and landing page from a confirmed markdown brief. Returns a task ID to poll.                    | `site_id`, `markdown_brief`, `campaign_description`                                        |
| `create_page_variation`            | Create a page variation with a name, slug, and summary of its audience or personalization intent.                 | `site_id`, `campaign_id`, `name`, `slug`, `summary`                                        |
| `delete_campaign`                  | Permanently delete a campaign, its landing-page record, and its generated assets. Only some states are deletable. | `site_id`, `campaign_id`                                                                   |
| `delete_page_variation`            | Permanently delete a page variation. Published variations can't be deleted.                                       | `site_id`, `campaign_id`, `page_variation_id`                                              |
| `get_campaign`                     | Get one campaign's metadata, including name, brief, state, timestamps, and landing page ID.                       | `site_id`, `campaign_id`                                                                   |
| `get_campaign_task_status`         | Poll the landing-page generation task started by `create_campaign` until it finishes or fails.                    | `site_id`, `task_id`                                                                       |
| `get_engaged_accounts`             | Get the companies that engaged with a campaign landing page, with session, user, and submission counts.           | `site_id`, `campaign_id`, `start_time`, `end_time`, `sort_by`, `sort_direction`            |
| `get_form_submissions_count`       | Get the total form submissions for a campaign landing page over a time window.                                    | `site_id`, `campaign_id`, `start_time`, `end_time`                                         |
| `get_opportunity_summary`          | Get CRM opportunity totals, open and closed-won value and counts, for campaign landing-page visitors.             | `site_id`, `campaign_id`, `start_time`, `end_time`                                         |
| `get_page_variation_suggestions`   | List suggested page variations for a campaign, with IDs, names, and summaries.                                    | `site_id`, `campaign_id`                                                                   |
| `get_page_variations`              | List a campaign's page variations and their field-value matrix, paginated.                                        | `site_id`, `campaign_id`                                                                   |
| `get_time_series`                  | Get a daily session, user, or pageview series for a campaign landing page.                                        | `site_id`, `campaign_id`, `start_time`, `end_time`, `metric_scope`                         |
| `list_campaign_hub_sites`          | List a workspace's Campaign Hub sites, with IDs, names, and preview URLs.                                         | `workspace_id`                                                                             |
| `list_campaigns`                   | List a site's campaigns, paginated, with state and landing page ID.                                               | `site_id`                                                                                  |
| `personalize_element`              | Create a PlainText campaign field and bind it to a setting on a non-component element.                            | `site_id`, `campaign_id`, `field{name, type}`, `element_id{component, element}`, `key`     |
| `personalize_property`             | Create a PlainText campaign field and bind it to a prop on a component instance.                                  | `site_id`, `campaign_id`, `field{name, type}`, `element_id{component, element}`, `prop_id` |
| `unlink_delete_personalized_field` | Permanently unlink and delete a personalized field. All page variations then share the same content.              | `site_id`, `campaign_id`, `field_slug`                                                     |
| `update_campaign`                  | Update a campaign's name or markdown brief. Doesn't regenerate or republish the landing page.                     | `site_id`, `campaign_id`                                                                   |
| `update_personalized_field`        | Rename a personalized field's display name. Its slug and type can't be changed.                                   | `site_id`, `campaign_id`, `field_slug`, `name`                                             |

---

## data\_cms\_tool

read

write

Manage a site's CMS: collections, their fields (static, option, and reference), collection field groups, and the items within them. Items are created and updated as drafts; publishing them live is a separate action.

> **Note:** The field-group actions aren't available for Ecommerce collections.

> **Note:** `list_collection_items` filters on custom fields with bracket notation, `filter[<fieldSlug>][<operator>]=<value>` (for example `filter[price][gte]=10&filter[price][lte]=100`), combined with AND. Supported operators vary by field type: `eq`/`ne`/`in`/`nin` on most types, `gt`/`gte`/`lt`/`lte` on `Number` and `DateTime`, `contains`/`ncontains` on text-like types, and `exists` everywhere. Sort on custom fields with `sort[<fieldSlug>]=asc|desc` (sortable on `PlainText`, `Email`, `Phone`, `Number`, `DateTime`, and `Switch`); when present, `sort` takes precedence over `sortBy`/`sortOrder`. A request allows up to 10 filter terms (2 of them `contains`/`ncontains`) and 3 sort fields.

* Build or inspect a collection's schema
* Read a collection's field groups and reorganize how its fields are grouped
* Filter and sort items by custom field, not just the default system fields
* Bulk-create or update items programmatically
* Publish and unpublish content on a schedule

\


| Action                              | Description                                                                                         | Required parameters                                                   |
| ----------------------------------- | --------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------- |
| `create_collection`                 | Create a new CMS collection in a site.                                                              | `siteId`, `request{displayName, singularName}`                        |
| `create_collection_items`           | Create new items in a collection (as drafts).                                                       | `collection_id`, `request{fieldData}`                                 |
| `create_collection_option_field`    | Create an option field with a predefined set of choices.                                            | `collection_id`, `request{type=Option, displayName, metadata}`        |
| `create_collection_reference_field` | Create a reference or multi-reference field linking another collection.                             | `collection_id`, `request{type, displayName, metadata{collectionId}}` |
| `create_collection_static_field`    | Create a static field (text, number, date, image, etc.).                                            | `collection_id`, `request{type, displayName}`                         |
| `delete_collection_field`           | Delete a custom field from a collection. No bulk delete.                                            | `collection_id`, `field_id`                                           |
| `delete_collection_items`           | Delete existing items from a collection.                                                            | `collection_id`, `request{items[].id}`                                |
| `get_collection_details`            | Get a collection's schema and field definitions.                                                    | `collection_id`                                                       |
| `get_collection_field_groups`       | Get a collection's field groups, its public fields, and the fields that can be assigned to a group. | `collection_id`                                                       |
| `get_collection_list`               | List all CMS collections in a site.                                                                 | `siteId`                                                              |
| `list_collection_items`             | List items in a collection. Optionally filter and sort by system fields or by custom field.         | `collection_id`                                                       |
| `publish_collection_items`          | Publish existing items in a collection, making them live.                                           | `collection_id`, `request{itemIds}`                                   |
| `unpublish_collection_items`        | Unpublish live items, reverting them to draft. Up to 100 per call.                                  | `collection_id`, `request{items[].id}`                                |
| `update_collection_field`           | Update the properties of an existing field.                                                         | `collection_id`, `field_id`, `request`                                |
| `update_collection_field_groups`    | Replace a collection's field groups, up to 50. An empty array removes all groups.                   | `collection_id`, `field_groups[]`                                     |
| `update_collection_items`           | Update existing items in a collection (as drafts).                                                  | `collection_id`, `request{items[].id, fieldData}`                     |

---

## data\_comments\_tool

read

write

Read Designer comment threads and their replies (filterable by page, resolution status, and date), look up comment participants by email, and post replies to existing threads.

* Surface open (unresolved) comments across a site
* Pull a specific thread and its replies
* Reply to a thread programmatically as part of a review workflow

\


| Action                         | Description                                                           | Required parameters                       |
| ------------------------------ | --------------------------------------------------------------------- | ----------------------------------------- |
| `create_reply`                 | Post a reply on an existing comment thread (1–2040 characters).       | `site_id`, `comment_thread_id`, `content` |
| `get_comment_thread`           | Get details of a specific comment thread.                             | `site_id`, `comment_thread_id`            |
| `list_comment_replies`         | List all replies on a comment thread.                                 | `site_id`, `comment_thread_id`            |
| `list_comment_threads`         | List comment threads for a site; filter by page, resolution, or date. | `site_id`                                 |
| `search_comment_user_by_email` | Find a workspace comment participant by email.                        | `site_id`, `email`                        |

---

## data\_component\_builder

write

Insert component instances onto a page as a child of an element or into a slot of an existing component instance, including recursive trees of nested components in a single call.

* Assemble a page from existing components
* Drop a component into a slot of another component, without hand-building each instance in the Designer

\


| Action              | Description                                                      | Required parameters                                                                            |
| ------------------- | ---------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- |
| `insert_in_element` | Insert a component instance as a child of a parent element.      | `build_label`, `parent_element_id`, `creation_position`, `component_schema{name}`              |
| `insert_in_slot`    | Insert a component instance into a slot of a component instance. | `build_label`, `parent_element_id`, `creation_position`, `component_schema{name}`, `slot_name` |

---

## data\_component\_props\_tool

read

write

Manage a component's prop definitions and the prop values on its instances. Create, update, and remove prop definitions, and set or reset the values on an instance.

* Define the props a component accepts
* Set or reset prop values on individual instances, including binding them to prop, CMS, page, or locale data

\


| Action                               | Description                                                                                       | Required parameters               |
| ------------------------------------ | ------------------------------------------------------------------------------------------------- | --------------------------------- |
| `create_prop`                        | Create prop definitions on a component (10 prop types).                                           | `component_id`, `props[]`         |
| `get_component_instance_props`       | Get prop definitions and current values for a component instance (optionally resolving bindings). | `element_id {component, element}` |
| `remove_prop`                        | Remove prop definitions. Each is removed independently, with per-prop errors aggregated.          | `component_id`, `prop_ids`        |
| `reset_all_props_value`              | Reset all prop values on a component instance to their defaults.                                  | `element_id {component, element}` |
| `set_component_instance_prop_values` | Set prop values on a component instance (supports prop, CMS, page, and locale bindings).          | `element_id`, `values[]`          |
| `update_prop`                        | Update prop definitions; omitted fields stay the same.                                            | `component_id`, `props[].prop_id` |

---

## data\_component\_tool

read

write

Manage component definitions and instances: get and query components, create blank components, transform elements into components, and insert and unlink instances. Prop definitions and values live in `data_component_props_tool`, and variants in `data_component_variants_tool`. Navigating the canvas and component views happens in the Designer tools.

* Audit a site's components and their instance counts
* Create or duplicate components
* Turn an existing element into a reusable component
* Insert and unlink instances on a page

\


| Action                           | Description                                                                               | Required parameters                                      |
| -------------------------------- | ----------------------------------------------------------------------------------------- | -------------------------------------------------------- |
| `create_blank_component`         | Create a blank component with no root element.                                            | `name`                                                   |
| `duplicate_component`            | Duplicate a component under a new name.                                                   | `source_component_id`, `name`                            |
| `get_all_components`             | Get all components in the site, optionally with props, variants, and instance counts.     | *(options)*                                              |
| `get_component`                  | Get a component by ID or by name (optionally narrowed by group).                          | `component_id` or `name`                                 |
| `get_parent_component`           | Get the component that contains an element (null for page-level elements).                | `id {component, element}`                                |
| `insert_component_instance`      | Insert a component instance on the active page.                                           | `parent_element_id`, `component_id`, `creation_position` |
| `query_components`               | Query components by keywords, prop characteristics, and code/library flags.               | `queries[]`                                              |
| `set_component_metadata`         | Update a component's name, group, or description.                                         | `component_id`                                           |
| `transform_element_to_component` | Transform an element into a component (optionally replacing the source with an instance). | `id {component, element}`, `name`                        |
| `unlink_component_instance`      | Unlink an instance back into editable elements. Not for library or code components.       | `component_instance_id`                                  |
| `unregister_component`           | Unregister a component. Affects all instances.                                            | `component_id`                                           |

---

## data\_component\_variants\_tool

read

write

Manage a component's variants and the styles scoped to each one. Create, duplicate, delete, reorder, and rename variants, and read or set per-variant style overrides.

* Add or organize a component's variants
* Style a specific variant without affecting the base or other variants

\


| Action                 | Description                                                                                                  | Required parameters                  |
| ---------------------- | ------------------------------------------------------------------------------------------------------------ | ------------------------------------ |
| `create_variant`       | Create a new variant on a component.                                                                         | `component_id`, `name`               |
| `delete_variant`       | Delete a variant. The base variant can't be deleted.                                                         | `component_id`, `variant_id`         |
| `duplicate_variant`    | Duplicate a variant, copying its settings and styles.                                                        | `component_id`, `source_variant_id`  |
| `get_variant_settings` | Get a variant's settings (ID, name, selection state).                                                        | `component_id`, `variant_id`         |
| `get_variant_styles`   | Get the styles scoped to a variant (independent of the base component's styles).                             | `variant_id`, `style_name`           |
| `reorder_variants`     | Reorder a component's variants. Pass the full ordered list, including `base`, for a deterministic order.     | `component_id`, `variant_ids`        |
| `set_variant_name`     | Rename a variant (`base` is allowed).                                                                        | `component_id`, `variant_id`, `name` |
| `set_variant_styles`   | Set or update styles scoped to a variant (base and other variants unaffected; breakpoint- and pseudo-aware). | `variant_id`, `style_name`           |

---

## data\_element\_builder

write

Create elements on a page from an element schema, including nested child elements in a single call.

* Build out page structure programmatically from a defined schema, including sections with child divs, headings, and text, rather than adding each element by hand

\


| Action           | Description                                                                                    | Required parameters                                                             |
| ---------------- | ---------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- |
| `create_element` | Create one element, with optional nested children, from an element schema at a given position. | `build_label`, `parent_element_id`, `creation_position`, `element_schema{type}` |

---

## data\_element\_settings\_tool

read

write

Read and write element-level settings and data bindings. Get and set settings, discover the data sources an element can bind to, and set an element's tag, visibility, and DOM id as static values or bindings.

* Configure an element's settings
* Bind an element to a data source (prop, CMS, page, or locale)
* Set its tag, visibility, or DOM id as a static value or a binding

\


| Action                 | Description                                                                                                     | Required parameters              |
| ---------------------- | --------------------------------------------------------------------------------------------------------------- | -------------------------------- |
| `get_bindable_sources` | Get the data sources an element can bind to (prop, CMS, page, locale); optional setting and value-type filters. | `queries[]` (label, element\_id) |
| `get_settings`         | Read element-level settings (raw, resolved, or query modes).                                                    | `type`, `element_id`             |
| `set_dom_id`           | Set an element's DOM id (`#id`), static or bound.                                                               | `element_id`                     |
| `set_settings`         | Write element-level settings; multiple writes per element are batched into one atomic call.                     | `operations[]`                   |
| `set_tag`              | Change an element's HTML tag, static or bound (valid tags depend on the element type).                          | `element_id`                     |
| `set_visibility`       | Set element visibility, static boolean or bound.                                                                | `element_id`                     |

---

## data\_element\_tool

read

write

Inspect and modify the elements on a page: query the element tree, move and remove elements, and edit text, styles, links, images, heading levels, attributes, and display names. Element settings and data bindings live in `data_element_settings_tool`; selecting an element happens in the Designer tools.

* Read a page's structure and find elements matching a query
* Make targeted edits across one or many elements: set text, swap an image, change a heading level, or update an attribute

\


| Action              | Description                                                                    | Required parameters                            |
| ------------------- | ------------------------------------------------------------------------------ | ---------------------------------------------- |
| `get_all_elements`  | Get all elements on the page (optional depth or component scope).              | `pageId`, `siteId`                             |
| `get_attributes`    | Read an element's attributes (optionally resolving bindings).                  | `id {component, element}`                      |
| `get_display_name`  | Read an element's Navigator display name (null if automatic).                  | `element_id {component, element}`              |
| `move_element`      | Move an element to a new location, keeping its bindings and styles.            | `id`, `anchor_element_id`, `creation_position` |
| `query_elements`    | Query elements by filters, scope, or parent lookup; multiple queries per call. | `queries[]`                                    |
| `remove_attribute`  | Remove one or more attributes from an element.                                 | `id`, `attribute_names`                        |
| `remove_element`    | Remove an element from the page.                                               | `id {component, element}`                      |
| `set_attributes`    | Add or update attributes on an element.                                        | `id`, `attributes[]`                           |
| `set_display_name`  | Set an element's Navigator display name (empty string resets it to automatic). | `element_id`, `display_name`                   |
| `set_heading_level` | Set the heading level (1–6) on a heading element.                              | `id`, `heading_level`                          |
| `set_image_asset`   | Set the image asset on an image element.                                       | `id`, `image_asset_id`                         |
| `set_link`          | Set a link on an element (URL, file, page, element, email, or phone).          | `id`, `linkType`, `link`                       |
| `set_style`         | Replace an element's styles (removes existing, applies the given ones).        | `id`, `style_names`                            |
| `set_text`          | Replace an element's text content.                                             | `id`, `text`                                   |

---

## data\_enterprise\_tool

read

write

Manage enterprise site settings: 301 redirects, `robots.txt`, well-known files, and site activity logs.

> **Note:** Requires an Enterprise (or higher) workspace plan. Actions return an error on lower plans.

* Set up and maintain redirects during a site migration
* Manage `robots.txt` and `/.well-known/` files
* Review a site's activity log on Enterprise hosting

\


| Action                    | Description                                                                           | Required parameters                              |
| ------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------ |
| `add_well_known_file`     | Add or update a file in the site's `/.well-known/` directory.                         | `site_id`, `fileName`, `fileData`, `contentType` |
| `create_301_redirect`     | Create a new 301 redirect for a site.                                                 | `site_id`, `fromUrl`, `toUrl`                    |
| `delete_301_redirect`     | Delete a 301 redirect from a site.                                                    | `site_id`, `redirect_id`                         |
| `delete_robots_txt`       | Remove rules and/or the sitemap URL from `robots.txt`. Doesn't remove the whole file. | `site_id`                                        |
| `get_robots_txt`          | Get the `robots.txt` configuration for a site.                                        | `site_id`                                        |
| `list_301_redirects`      | List all 301 redirects for a site.                                                    | `site_id`                                        |
| `list_site_activity_logs` | List activity log events for a site (Enterprise hosting).                             | `site_id`                                        |
| `remove_well_known_files` | Remove one or more well-known files.                                                  | `site_id`, `fileNames`                           |
| `replace_robots_txt`      | Completely replace `robots.txt`.                                                      | `site_id`                                        |
| `update_301_redirect`     | Update an existing 301 redirect.                                                      | `site_id`, `redirect_id`, `fromUrl`, `toUrl`     |
| `update_robots_txt`       | Partially update `robots.txt`.                                                        | `site_id`                                        |

---

## data\_fonts\_tool

read

write

Manage a site's uploaded custom fonts: list and inspect them, register new fonts and replace their files (a two-step upload), update metadata, and remove fonts individually or in batches.

* Upload a custom font to a site
* Audit which fonts a site uses and their upload status
* Clean up unused fonts one at a time or in bulk

\


| Action               | Description                                                                                      | Required parameters                                                                    |
| -------------------- | ------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------- |
| `batch_delete_fonts` | Delete up to 100 custom fonts in one call.                                                       | `site_id`, `items[]`                                                                   |
| `create_font`        | Register a new custom font and return a presigned upload target (step one of a two-step upload). | `site_id`, `file_name`, `file_hash`, `font_family`, `weight`, `italic`, `font_display` |
| `delete_font`        | Delete a single custom font.                                                                     | `site_id`, `font_id`                                                                   |
| `get_font`           | Get metadata and upload status for one font.                                                     | `site_id`, `font_id`                                                                   |
| `list_fonts`         | List a site's custom fonts (paginated).                                                          | `site_id`                                                                              |
| `replace_font_file`  | Replace the file behind an existing font (step one of a two-step upload).                        | `site_id`, `font_id`, `file_name`, `file_hash`                                         |
| `update_font`        | Update a font's metadata without changing the file.                                              | `site_id`, `font_id`                                                                   |

---

## data\_forms\_tool

read

write

Read a site's forms and manage their submissions: list forms and their schemas, list and retrieve submissions site-wide or per form, update user-hidden submission fields, and delete submissions.

* Export or process form submissions
* Inspect a form's schema
* Update hidden fields on a submission as part of a workflow
* Delete spam submissions

\


| Action                       | Description                                                                            | Required parameters                                     |
| ---------------------------- | -------------------------------------------------------------------------------------- | ------------------------------------------------------- |
| `delete_form_submission`     | Delete a form submission.                                                              | `site_id`, `form_submission_id`                         |
| `get_form`                   | Get the schema for a single form (fields and metadata).                                | `form_id`                                               |
| `get_form_submission`        | Get a single form submission by ID.                                                    | `site_id`, `form_submission_id`                         |
| `list_form_submissions`      | List submissions for a specific form.                                                  | `site_id`, `form_id`                                    |
| `list_forms`                 | List a site's forms and their metadata.                                                | `site_id`                                               |
| `list_site_form_submissions` | List submissions across an entire site; optional element or locale filter.             | `site_id`                                               |
| `update_form_submission`     | Update user-hidden field values on a submission. Only user-hidden fields are writable. | `site_id`, `form_submission_id`, `form_submission_data` |

---

## data\_interactions\_tool

read

write

Create and manage IX3 interactions, the animations and interactive behavior attached to a page. An interaction carries its triggers and its inline timelines in a single call. The tool runs headlessly and needs no Designer session or bridge app.

> **Note:** `triggers` and `timelines` pass through to the interactions service, so the tool's own schema doesn't validate their shape. Call the `guide` action for the legal payload shapes, or read the `webflow://guides/interactions` resource.

* Read the interactions already on a page before changing any of them
* Create a timeline-based animation together with its triggers in one call
* Replace an interaction's timelines, or clear fields you no longer need
* Remove an interaction from a page

Animate opacity under `wf:transform`, for example `["0%", "100%"]`, rather than under `wf:style`.

\


| Action               | Description                                                                                                         | Required parameters                 |
| -------------------- | ------------------------------------------------------------------------------------------------------------------- | ----------------------------------- |
| `create_interaction` | Create an interaction from object-format triggers and inline timelines in one call.                                 | `name`, `triggers[]`, `timelines[]` |
| `delete_interaction` | Soft-delete an interaction by ID. Repeating the call on a deleted interaction still succeeds.                       | `id`                                |
| `get_interaction`    | Get one interaction by ID, with its timelines resolved inline.                                                      | `id`                                |
| `guide`              | Return the IX3 authoring guide, which describes the legal payload shapes for creates and updates.                   | None                                |
| `list_interactions`  | List the site's interactions as paginated summaries, optionally filtered to those visible on one page.              | None                                |
| `update_interaction` | Update an interaction by ID. Only the fields you provide change, and `timelines` replaces the existing set in full. | `id`                                |

---

## data\_localization\_tool

read

write

Localize page and component content into secondary locales. Reads from the primary or a secondary locale, but writes only to secondary locales. Also lists a site's components.

* Translate a page or component into another locale
* Read the source content to feed a translation step
* List a site's components before localizing them

\


| Action                        | Description                                                                         | Required parameters                                 |
| ----------------------------- | ----------------------------------------------------------------------------------- | --------------------------------------------------- |
| `get_component_content`       | Read a component's content (text, images, nested content) for a locale.             | `site_id`, `component_id`                           |
| `get_component_properties`    | Read a component's property definitions and values for a locale.                    | `site_id`, `component_id`                           |
| `get_page_content`            | Read a page's content structure for a locale.                                       | `page_id`                                           |
| `list_components`             | List all components in a site (IDs, names, versions).                               | `site_id`                                           |
| `update_component_content`    | Localize a component's text nodes and property overrides. Secondary locales only.   | `site_id`, `component_id`, `localeId`, `nodes`      |
| `update_component_properties` | Localize a component's property values. Secondary locales only.                     | `site_id`, `component_id`, `localeId`, `properties` |
| `update_static_content`       | Localize a static page's text nodes and property overrides. Secondary locales only. | `page_id`, `localeId`, `nodes`                      |

---

## data\_pages\_tool

read

write

List, create, and update a site's pages, manage page branches and their staging previews, and read or write page-level SEO metadata and JSON-LD schema markup.

> **Note:** The branch actions require the site's workspace to be on an Enterprise plan. Every branch action except `get_branch_details`, `list_branches`, and `get_branch_conflicts` is asynchronous: it returns a task ID that you poll with `get_branch_task_status`.

* Create pages programmatically
* Bulk-update page settings or SEO across a site
* Run a page branch through its full lifecycle: create it, pull main into it, publish its preview, then merge or delete it
* Read and write structured data (schema markup) for multiple pages at once

\


| Action                            | Description                                                                                                                   | Required parameters        |
| --------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | -------------------------- |
| `bulk_update_pages`               | Update settings for 1–100 pages in one request (title, slug, draft, folder, SEO, Open Graph, schema markup; per-item locale). | `site_id`, `pages[]`       |
| `bulk_update_pages_schema_markup` | Write or clear JSON-LD schema markup for 1–25 pages.                                                                          | `site_id`, `pages[]`       |
| `create_branch`                   | Enqueue a task to create a branch from a page on a site.                                                                      | `site_id`, `page_id`       |
| `create_page`                     | Create a new page. Title and slug required; optional folder, draft state, page to duplicate, SEO, Open Graph.                 | `site_id`, `title`, `slug` |
| `delete_branch`                   | Enqueue a task to delete a branch from a site.                                                                                | `site_id`, `branch_id`     |
| `get_branch_conflicts`            | List a branch's unresolved conflicts with the site's main pages, without attempting a merge.                                  | `site_id`, `branch_id`     |
| `get_branch_details`              | Get details about a specific branch.                                                                                          | `site_id`, `branch_id`     |
| `get_branch_task_status`          | Poll an asynchronous branch task until it finishes or fails.                                                                  | `site_id`, `task_id`       |
| `get_page_metadata`               | Get a page's metadata: SEO, Open Graph, and draft/published status.                                                           | `page_id`                  |
| `list_branches`                   | List all branches on a site (paginated).                                                                                      | `site_id`                  |
| `list_pages`                      | List all pages within a site (IDs, titles, slugs).                                                                            | `site_id`                  |
| `merge_branch`                    | Enqueue a task merging a branch into the site's main pages. The branch is consumed on success.                                | `site_id`, `branch_id`     |
| `publish_branch`                  | Enqueue a task publishing only the branch's page preview to its staging domain.                                               | `site_id`, `branch_id`     |
| `query_pages_schema_markup`       | Read JSON-LD schema markup for 1–100 pages.                                                                                   | `site_id`, `pages[]`       |
| `update_branch`                   | Enqueue a task pulling the latest main-page changes into a branch. Doesn't merge the branch into main.                        | `site_id`, `branch_id`     |
| `update_page_settings`            | Update a single page's settings (title, slug, draft, folder, SEO, Open Graph, schema markup; optional locale).                | `page_id`                  |

---

## data\_scripts\_tool

read

write

Register, apply, update, and remove custom code scripts at the site or page level, and read or write the freeform head and footer custom-code blocks. Registering a script and applying it are separate steps.

* Add a third-party or inline script to a site or page
* Manage which registered scripts are applied where
* Read and write the freeform head/footer code blocks

\


| Action                     | Description                                                                           | Required parameters                                                       |
| -------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------- |
| `add_page_script`          | Apply one registered script to a page (additive).                                     | `page_id`, `script_id`, `location`, `version`                             |
| `add_site_script`          | Apply one registered script to a site (additive).                                     | `site_id`, `script_id`, `location`, `version`                             |
| `clear_page_scripts`       | Remove all scripts applied to a page. The registry is untouched.                      | `page_id`                                                                 |
| `clear_site_scripts`       | Remove all scripts applied to a site. The registry is untouched.                      | `site_id`                                                                 |
| `delete_registered_script` | Delete a registered script and all its versions. Irreversible.                        | `site_id`, `script_id`                                                    |
| `get_page_freeform_code`   | Read the freeform head and footer custom-code blocks on a page.                       | `page_id`                                                                 |
| `get_page_scripts`         | Get the scripts currently applied to a page.                                          | `page_id`                                                                 |
| `get_registered_script`    | Get a single registered script by ID (latest version if omitted).                     | `site_id`, `script_id`                                                    |
| `get_registered_scripts`   | List all registered scripts for a site (max 800).                                     | `site_id`                                                                 |
| `get_site_freeform_code`   | Read the freeform head and footer custom-code blocks on a site.                       | `site_id`                                                                 |
| `get_site_scripts`         | Get the scripts currently applied to a site.                                          | `site_id`                                                                 |
| `register_hosted_script`   | Register an externally hosted script (not yet applied).                               | `site_id`, `hosted_location`, `integrity_hash`, `version`, `display_name` |
| `register_inline_script`   | Register an inline script hosted by Webflow (max 2000 characters).                    | `site_id`, `source_code`, `version`, `display_name`                       |
| `remove_page_script`       | Remove one script from a page.                                                        | `page_id`, `script_id`                                                    |
| `remove_site_script`       | Remove one script from a site.                                                        | `site_id`, `script_id`                                                    |
| `set_page_freeform_code`   | Write the freeform head or footer code block on a page. Replaces the block's content. | `page_id`, `location`, `content`                                          |
| `set_page_scripts`         | Replace all scripts applied to a page.                                                | `page_id`, `scripts`                                                      |
| `set_site_freeform_code`   | Write the freeform head or footer code block on a site. Replaces the block's content. | `site_id`, `location`, `content`                                          |
| `set_site_scripts`         | Replace all scripts applied to a site.                                                | `site_id`, `scripts`                                                      |
| `update_registered_script` | Update a registered script (name, source or location, version, copy permission).      | `site_id`, `script_id`                                                    |

---

## data\_sitemap\_tool

read

write

Read and set the sitemap indexing status (`includeInSitemap`) of static pages and CMS collection items, individually or in bulk. Folder, collection-template, and utility pages aren't supported by the page actions.

* Control which pages and CMS items appear in a site's sitemap
* Collection-item changes are staged; publish the site afterward to make them live

\


| Action                             | Description                                                                                      | Required parameters                            |
| ---------------------------------- | ------------------------------------------------------------------------------------------------ | ---------------------------------------------- |
| `bulk_update_items_sitemap_status` | Bulk update sitemap status for up to 100 collection items. Staged; publish afterward to go live. | `collection_id`, `items[]`                     |
| `bulk_update_pages_sitemap_status` | Bulk update sitemap status for up to 100 pages. Excludes folder, template, and utility pages.    | `site_id`, `pages[]`                           |
| `get_item_sitemap_status`          | Get the sitemap status of one collection item.                                                   | `collection_id`, `item_id`                     |
| `get_page_sitemap_status`          | Get the sitemap status of one static page.                                                       | `page_id`                                      |
| `list_items_sitemap_status`        | List sitemap status for all items in a collection.                                               | `collection_id`                                |
| `list_pages_sitemap_status`        | List sitemap status for all supported pages on a site.                                           | `site_id`                                      |
| `update_item_sitemap_status`       | Update the sitemap status of one collection item. Staged; publish afterward to go live.          | `collection_id`, `item_id`, `includeInSitemap` |
| `update_page_sitemap_status`       | Update the sitemap status of one static page.                                                    | `page_id`, `includeInSitemap`                  |

---

## data\_sites\_tool

read

write

List the sites accessible to the authenticated user, get a site's details, and publish a site to its domains.

* Find the site you want to work with and its ID
* Check a site's settings and publishing status
* Publish the latest changes live

\


| Action         | Description                                                              | Required parameters |
| -------------- | ------------------------------------------------------------------------ | ------------------- |
| `get_site`     | Get details about a site: settings, domains, and publishing status.      | `site_id`           |
| `list_sites`   | List all sites accessible to the authenticated user.                     | None                |
| `publish_site` | Publish a site to its specified domains, making the latest changes live. | `site_id`           |

---

## data\_style\_tool

read

write

Create, query, update, rename, and remove styles (classes and combo classes), and manage the variable modes applied to a style.

* Inspect a site's classes
* Create or update styles programmatically
* Rename or remove classes
* Apply and clear variable-mode overrides on a style

\


| Action                            | Description                                                                    | Required parameters                               |
| --------------------------------- | ------------------------------------------------------------------------------ | ------------------------------------------------- |
| `create_style`                    | Create a new style (class), optionally as a combo class.                       | `name`, `properties[]`                            |
| `get_style_variable_modes`        | Get the variable modes applied to a style (collection-to-mode map).            | `style_name`                                      |
| `get_styles`                      | Get all styles, or a filtered set (optional breakpoints, pseudos, properties). | `query`                                           |
| `query_styles`                    | Query styles by name path, ID, or CSS properties.                              | `queries[]`                                       |
| `remove_all_style_variable_modes` | Remove all variable mode overrides from a style.                               | `style_name`                                      |
| `remove_style`                    | Remove a style (and optional combo parents).                                   | `style_name`                                      |
| `remove_style_variable_mode`      | Remove the mode override for one collection from a style.                      | `style_name`, `variable_collection_id`            |
| `rename_style`                    | Rename an existing style (class).                                              | `style_name`, `new_name`                          |
| `set_style_variable_mode`         | Apply a variable mode to a style (per breakpoint or pseudo).                   | `style_name`, `variable_collection_id`, `mode_id` |
| `update_style`                    | Update a style's properties (breakpoint- and pseudo-aware).                    | `style_name`                                      |

---

## data\_variable\_tool

read

write

Create, update, rename, and delete variables (color, font family, number, percentage, size), create collections and modes, and query and reorder collections.

* Build or edit a site's design tokens programmatically: define color, size, or font variables
* Organize them into collections and modes
* Keep them in sync with an external source

\


| Action                        | Description                                                           | Required parameters                                 |
| ----------------------------- | --------------------------------------------------------------------- | --------------------------------------------------- |
| `create_color_variable`       | Create a color variable.                                              | `variable_collection_id`, `variable_name`, `value`  |
| `create_font_family_variable` | Create a font family variable.                                        | `variable_collection_id`, `variable_name`, `value`  |
| `create_number_variable`      | Create a number variable.                                             | `variable_collection_id`, `variable_name`, `value`  |
| `create_percentage_variable`  | Create a percentage variable.                                         | `variable_collection_id`, `variable_name`, `value`  |
| `create_size_variable`        | Create a size variable (value and unit).                              | `variable_collection_id`, `variable_name`, `value`  |
| `create_variable_collection`  | Create a new variable collection.                                     | `name`                                              |
| `create_variable_mode`        | Create a new mode within a variable collection (optional breakpoint). | `variable_collection_id`, `name`                    |
| `delete_variable`             | Delete a variable.                                                    | `variable_collection_id`, `variable_id`             |
| `get_variable_collections`    | Get all variable collections and their modes.                         | `query`                                             |
| `get_variables`               | Get all variables in a collection (and its modes).                    | `variable_collection_id`                            |
| `query_variables`             | Query variables by name, ID, CSS name, or type.                       | `queries[]`                                         |
| `rename_variable`             | Rename a variable.                                                    | `variable_collection_id`, `variable_id`, `new_name` |
| `reorder_variable_collection` | Reorder a collection before or after another collection.              | `collection_id`, `anchor_collection_id`, `position` |
| `update_color_variable`       | Update a color variable.                                              | `variable_collection_id`, `variable_id`, `value`    |
| `update_font_family_variable` | Update a font family variable.                                        | `variable_collection_id`, `variable_id`, `value`    |
| `update_number_variable`      | Update a number variable.                                             | `variable_collection_id`, `variable_id`, `value`    |
| `update_percentage_variable`  | Update a percentage variable.                                         | `variable_collection_id`, `variable_id`, `value`    |
| `update_size_variable`        | Update a size variable (value and unit).                              | `variable_collection_id`, `variable_id`, `value`    |

---

## data\_webhook\_tool

read

write

List, create, retrieve, and delete a site's webhooks.

* Wire up integrations that react to Webflow events by creating a webhook for a trigger
* Review what's registered
* Remove webhooks that are no longer needed

\


| Action           | Description                                                       | Required parameters              |
| ---------------- | ----------------------------------------------------------------- | -------------------------------- |
| `create_webhook` | Create a webhook for a site (up to 75 per trigger type per site). | `site_id`, `trigger_type`, `url` |
| `delete_webhook` | Remove a webhook registration.                                    | `webhook_id`                     |
| `get_webhook`    | Get details of a specific webhook.                                | `webhook_id`                     |
| `list_webhooks`  | List all app-created webhooks for a site.                         | `site_id`                        |

---

## data\_whtml\_builder

write

Insert elements onto a page from HTML and CSS strings.

* Bring in markup from an external source or generate structure as HTML and drop it onto a page, rather than building it element by element

\


| Action         | Description                                                                                        | Required parameters                                             |
| -------------- | -------------------------------------------------------------------------------------------------- | --------------------------------------------------------------- |
| `insert_whtml` | Insert one HTML/CSS fragment at a position relative to a parent or target element. Max 5 per call. | `build_label`, `parent_element_id`, `creation_position`, `html` |