VX Agents

OpenAPI Marketplace · Marketing & Analytics

Webflow CMS Items & Form Submissions

v1.0.0 · 13 endpoints · 0 connections · shared by vx.ai

Keep a Webflow site's content fresh without opening the Designer: look up CMS items by name or slug, edit their fields as staged changes, publish them once approved, compare with what is live, and pull the latest submissions from the site's contact and lead forms.

Connect this API to an AI agent Browse all specs

What you can do with Webflow CMS Items & Form Submissions via MCP

Every endpoint below becomes a governed tool your AI agent (Claude, ChatGPT, or a customer-facing VX agent) can call — with scoped permissions, sandbox testing, and audit logs.

MethodPathOperationDescription
GET /sites listSites List the sites this token can access
GET /sites/{site_id} getSite Get a site's details, domains and last publish time
GET /sites/{site_id}/collections listCollections List the CMS collections of a site (blog posts, products, team...)
GET /collections/{collection_id} getCollection Get a collection with its field slugs and types
GET /collections/{collection_id}/items listItems List or find staged items in a collection (by name, slug, date)
PATCH /collections/{collection_id}/items updateItems Update the fields of one or more staged items
GET /collections/{collection_id}/items/live listLiveItems List the items currently published on the live site
GET /collections/{collection_id}/items/{item_id} getItem Get one staged collection item with all its fields
POST /collections/{collection_id}/items/publish publishItems Publish staged items to the live site
GET /sites/{site_id}/pages listPages List a site's pages with titles, slugs and SEO settings
GET /sites/{site_id}/forms listForms List the forms on a site
GET /sites/{site_id}/form_submissions listFormSubmissions List form submissions for a site, optionally for one form
GET /sites/{site_id}/form_submissions/{form_submission_id} getFormSubmission Get one form submission

Authentication

siteToken

Bearer token — sent as Authorization: Bearer <token>

Webflow site API token (or an OAuth access token), sent as Authorization: Bearer <token>.

How to get a credential

  1. In Webflow, open the site's Site settings > Apps & integrations.
  2. Under API access, click Generate API token and name it.
  3. Grant the scopes below (read-only for Sites and Pages; read and write for CMS; read for Forms), then copy the token. It is shown once.
  4. Site tokens work for one site only and expire after 365 days of inactivity.

Permissions used

Scope Operations
sites:read listSites, getSite
cms:read listCollections, getCollection, listItems, listLiveItems, getItem
cms:write updateItems, publishItems
pages:read listPages
forms:read listForms, listFormSubmissions, getFormSubmission

Common errors

  • 401 Unauthorized: the token is invalid or was revoked. Generate a new one.
  • 403 Forbidden: the token lacks the scope (e.g. cms:write) or belongs to another site.
  • 400 Bad Request: a fieldData key is not a field slug of the collection, or an item id is missing. Check getCollection.
  • 409 Conflict: the slug is already used by another item.
  • 429 Too Many Requests: the plan's per-minute rate limit was hit. Wait for Retry-After.

Store the token as a bearer credential in VX Agents; never paste it into chat.

Usage guide

Setup

  • Credential: a Webflow site API token (Site settings > Apps & integrations > API access) with sites:read, cms:read, cms:write, pages:read, forms:read, stored as a bearer credential.
  • Pin site_id (from listSites) and the collection_id you edit most (e.g. Blog Posts) as preset parameters.

Update and publish CMS content

  1. listSites -> listCollections to find the collection; getCollection returns its fields. Use each field's slug as the key in fieldData.
  2. Find the item: listItems with name or slug, or sort with sortBy=lastUpdated&sortOrder=desc. getItem returns all of its staged fields.
  3. Show the user the proposed changes and confirm. Then updateItems with items: [{ "id": "...", "fieldData": { "<field-slug>": "new value" } }] (up to 100 items per call). Changes are staged, not live yet.
  4. When the user approves going live, publishItems with itemIds: ["..."].
  5. listLiveItems shows what visitors currently see, useful to compare before and after publishing.

Read form leads

  1. listForms for the site to get each form's id and displayName.
  2. listFormSubmissions with site_id (add elementId to narrow to one form) returns submissions with their formResponse fields and dateSubmitted; getFormSubmission fetches one.

Good to know

  • Only staged items can be edited here; creating new items moved to a newer endpoint in Webflow's docs that this spec does not include.
  • Rich text fields take HTML; image fields take a URL ({ "url": "https://..." }); reference fields take item ids.
  • Changing a slug breaks links to the old URL: warn the user first.
  • Publishing changes the public website: always confirm before publishItems.
  • Lists use offset and limit (max 100) and return pagination.total.
  • listPages gives page titles, slugs and SEO/Open Graph settings for an SEO review.
  • Source: Webflow Data API v2 reference (https://developers.webflow.com/data/reference/rest-introduction), checked 2026-10-16.

How to use this spec

  1. Create a free VX Agents account (sandbox tools included).
  2. Open the marketplace and connect “Webflow CMS Items & Form Submissions” to an agent.
  3. Expose it as an MCP server for Claude/ChatGPT, or chat with it directly.

Related APIs