Webflow is a visual web development platform combining a no-code website builder with a powerful headless CMS and e-commerce engine. The Webflow Data API v2 provides programmatic access to your sites — pages and DOM content, CMS collections and items, components, products, SKUs, and orders. Teams use it to sync CMS content, automate e-commerce, and build custom publishing pipelines.
Power end-to-end data operations for your Webflow Data API API with Nexla. Our bi-directional Webflow Data API connector is purpose-built for Webflow Data API, making it simple to ingest data, sync it across systems, and deliver it anywhere — all with no coding required. Nexla turns API-sourced data into ready-to-use, reusable data products and makes it easy to send data to Webflow Data API or any other destination. With comprehensive monitoring, lineage tracking, and access controls, Nexla keeps your Webflow Data API workflows fast, secure, and fully governed.
Features
Type: API
SourceDestination
Seamless API Integration: Connect to any endpoint as source or destination without coding, with automatic data product creation
Visual Composition & Chaining: Build complex integrations using visual templates, chain API calls, and compose workflows with data validation and filtering
API Proxy: Expose curated slices of your data securely with a secure and customizable API proxy that validates and transforms data on the fly
Request optimization with intelligent batching, retry, and caching to minimize API calls and costs
To connect Nexla to the Webflow Data API, you need a registered Webflow application with OAuth 2.0 credentials. Webflow uses a 3-legged OAuth 2.0 flow, which requires a Client ID and Client Secret obtained from a Webflow app you create in your workspace.
Webflow app registration is done through the Webflow Workspace settings. Only workspace administrators can create apps and view client secrets.
Sign in to your Webflow account and open the workspace where you want to grant Nexla access.
Click your workspace name in the top-left corner of the Webflow dashboard, then select Workspace Settings.
In the left navigation panel, select Apps & Integrations, then click App Development.
Click Create new app (or New App if apps already exist) to open the app creation form.
Enter a descriptive name for the app (for example, Nexla Integration) and an optional description. These details are only visible to your workspace members.
Under App capabilities, enable the Data Client capability. This is required to use the OAuth 2.0 Data API scopes.
In the OAuth Redirect URIs field, enter the Nexla OAuth callback URL provided in the credential creation overlay. This must be an https:// URL. Webflow will send the authorization code to this URI after a user approves the connection.
Under Scopes, select all permissions that Nexla requires. The default scope set for this connector is:
sites:read — Read site metadata and settings
sites:write — Update site settings
cms:read — Read CMS collections and items
cms:write — Create, update, and publish CMS items
pages:read — Read page metadata and DOM content
pages:write — Update page metadata and DOM content
forms:read — Read form submissions
ecommerce:read — Read products, SKUs, and orders
ecommerce:write — Create and update products, fulfill and refund orders
Only request the scopes that your Nexla flows actually need. The default scope list above covers all endpoints supported by this connector. If you only use a subset of endpoints, you can reduce the requested scopes accordingly.
Click Create app. Webflow will display your Client ID and Client Secret. Copy both values and store them securely—the Client Secret is shown only once. If you lose it, you must regenerate it from the app settings.
Important
Only workspace administrators can view the Client Secret. Store it in a secure secrets manager or password vault immediately after creation, as it cannot be retrieved again.
After selecting the data source/destination type, click the Add Credential tile to open the Add New Credential overlay.
Enter a name for the credential in the Credential Name field and a short, meaningful description in the Credential Description field.
Nexla connects to the Webflow Data API using the 3-legged OAuth 2.0 authorization code flow. In this flow, you provide the Client ID and Client Secret from your registered Webflow app, and then Nexla redirects you to Webflow to authorize access on behalf of a specific Webflow user account. No access tokens are entered manually—Nexla handles the token exchange and refresh automatically.
Enter the Client ID from your registered Webflow app in the Client ID field. The Client ID uniquely identifies your app in Webflow's OAuth system.
In the Access Scope field, enter the space-separated list of OAuth scopes that this credential should request. The default value is:
Adjust this list to match the scopes configured in your Webflow app. The scopes requested here must be equal to or a subset of the scopes configured on your app in Webflow—requesting additional scopes will result in an authorization error.
Enter the Client Secret from your registered Webflow app in the Client Secret field. This secret is used by Nexla to exchange the authorization code for an access token and to refresh tokens when they expire.
The Client Secret is a sensitive credential. Nexla stores it in encrypted form. Do not share it in plain text or commit it to source control.
After entering the Client ID, Access Scope, and Client Secret, click the Authorize button (or equivalent OAuth initiation button) in the overlay. Nexla will redirect your browser to the Webflow authorization page, where you can sign in and approve the requested scopes for your workspace.
After approving access in Webflow, you will be redirected back to Nexla. The credential will be updated with the access token and refresh token automatically.
Click the Save button at the bottom of the overlay. The newly added credential will now appear in a tile on the Authenticate screen during data source/destination creation and can be selected for use with a new data source or destination.
To create a new data flow, navigate to the Integrate section, and click the New Data Flow button. Select the Webflow Data API connector tile, then select the credential that will be used to connect to the Webflow Data API instance, and click Next; or, create a new Webflow Data API credential for use in this flow.
Nexla provides pre-built templates that can be used to rapidly configure data sources to ingest data from common Webflow Data API endpoints. Select the endpoint from which this source will fetch data from the Endpoint pulldown menu. Available endpoint templates are listed in the expandable boxes below.
Get Authorization User Info
Retrieves information about the Webflow user who authorized the current OAuth token, including user ID, email address, and display name. Use this endpoint to verify which user account the credential is connected to or to log the identity of the authorizing user for auditing purposes.
No additional parameters are required for this endpoint. Selecting it and clicking Test will immediately return the user profile associated with the OAuth token used in the credential.
This endpoint calls GET /token/authorized_by on the Webflow Data API. For full details, see the Authorized User reference.
Get Authorization Info
Retrieves metadata about the current OAuth token, including its granted scopes, expiration time, and the application it was issued to. Use this endpoint to inspect the permissions and validity of the credential without making data-level API calls.
No additional parameters are required. The endpoint introspects the token used by the current Nexla credential and returns its metadata.
This endpoint calls GET /token/introspect. Refer to the Token Introspect reference for the full response schema.
List Sites
Retrieves all Webflow sites accessible to the authorized user. Use this endpoint to enumerate available sites and obtain site IDs needed for other endpoints such as List Pages, List Collections, and List Products & SKUs.
No additional parameters are required. The response returns an array of site objects, each containing the site ID, display name, short name, preview URL, and last-published timestamp.
Site IDs returned by this endpoint are required as input for all site-scoped endpoints. Run this endpoint first if you do not already know your site ID.
Get Site
Retrieves detailed metadata for a single Webflow site by its ID. Use this endpoint when you need configuration details for a specific site, such as its default domain, locale settings, or enabled features.
Enter the unique identifier of the site in the Site ID field. Site IDs can be obtained from the List Sites endpoint or from the Webflow dashboard under Site Settings > General.
The Site ID is a 24-character alphanumeric string (for example, 6114281f4f7804f97fce8e2b). It is distinct from the site's short name or custom domain.
List Pages
Retrieves a paginated list of all pages for a specific Webflow site, optionally filtered by locale. Use this endpoint to enumerate the pages published on a site, obtain page IDs for downstream operations, or audit page structure across locales.
Enter the unique identifier of the site in the Site ID field. This is required. Use the List Sites endpoint if you need to look up the Site ID.
Optionally, enter a locale identifier in the Locale ID field to filter results to pages associated with a specific locale. Leave this field blank to return pages for the site's default locale. Locale IDs can be found in the site's locale settings in the Webflow dashboard.
This endpoint supports pagination and will automatically fetch all pages using offset-based pagination (up to 100 records per page). For sites with many pages, all results will be retrieved across multiple requests.
Get Page Metadata
Retrieves metadata for a single Webflow page, such as its title, slug, SEO settings, open graph settings, and locale configuration. Use this endpoint when you need structured page-level metadata for content auditing, SEO analysis, or synchronization with external CMS systems.
Enter the unique identifier of the page in the Page ID field. This is required. Page IDs can be obtained from the List Pages endpoint.
Optionally, enter a locale identifier in the Locale ID field to retrieve metadata for a specific locale variant of the page. Leave this field blank for the default locale.
Get Page Content
Retrieves the DOM (Document Object Model) node tree for a specific Webflow page, returned as a paginated list of node objects. Use this endpoint to extract the full content structure of a page for content migration, localization workflows, or programmatic content management.
Enter the unique identifier of the page in the Page ID field. This is required. Page IDs can be obtained from the List Pages endpoint.
Optionally, enter a locale identifier in the Locale ID field to retrieve DOM content for a specific locale version of the page. Leave blank for the default locale.
Each node in the response represents an element in the page's DOM tree and includes the node ID, type, text content (if applicable), and child nodes. This endpoint supports pagination, returning up to 100 nodes per page.
List Components
Retrieves a paginated list of reusable components defined in a Webflow site, optionally filtered by branch. Components in Webflow are design elements that can be reused across multiple pages. Use this endpoint to audit components, synchronize component definitions with external design systems, or manage component content programmatically.
Enter the unique identifier of the site in the Site ID field. This is required.
Optionally, enter a branch identifier in the Branch ID field to filter components to a specific Webflow branch. Leave blank to retrieve components from the default (main) branch.
Webflow branches allow teams to work on site changes in isolation before publishing. If your workspace uses branching, use the Branch ID field to target the correct branch.
List Collections
Retrieves all CMS collections defined for a Webflow site. Collections are the structured content schemas in the Webflow CMS (for example, Blog Posts, Team Members, or Products). Use this endpoint to discover available collections and obtain collection IDs needed for item-level operations.
Enter the unique identifier of the site in the Site ID field. This is required. Use the List Sites endpoint to look up Site IDs.
Each collection returned includes the collection ID, display name, slug, and field schema. Collection IDs are required for all collection-item endpoints such as List Collection Items and Get Collection Item.
List Collection Items
Retrieves a paginated list of staged (draft and published) items from a specific CMS collection. Use this endpoint to sync CMS content to an external system, audit collection data, or feed content into a downstream transformation pipeline.
Enter the unique identifier of the CMS collection in the Collection ID field. This is required. Collection IDs can be obtained from the List Collections endpoint.
Optionally, enter a CMS locale identifier in the CMS Locale ID field to filter items to a specific language or locale. Leave blank to retrieve items in the site's primary locale.
This endpoint returns staged items, which include both published items and items that have been saved but not yet published. To retrieve only currently published items, use the List Live Collection Items endpoint instead.
Get Collection Item
Retrieves a single staged item from a CMS collection by its item ID. Use this endpoint when you need the complete field data for a specific CMS record, such as fetching a particular blog post or product entry for inspection or downstream processing.
Enter the unique identifier of the collection in the Collection ID field. This is required.
Enter the unique identifier of the item in the Item ID field. This is required. Item IDs can be obtained from the List Collection Items endpoint.
Optionally, enter a CMS locale identifier in the CMS Locale ID field to retrieve the item's content in a specific locale.
List Live Collection Items
Retrieves a paginated list of currently published (live) items from a CMS collection. Use this endpoint when you need to work specifically with content that is live on the site—for example, to sync live product listings or published blog posts to an external analytics or search platform.
Enter the unique identifier of the CMS collection in the Collection ID field. This is required.
Optionally, enter a CMS locale identifier in the CMS Locale ID field to filter live items by locale.
Unlike List Collection Items, this endpoint returns only items that have been published and are currently live on the Webflow site. Draft or staged items are excluded.
Get Live Collection Item
Retrieves a single published (live) item from a CMS collection by its item ID. Use this endpoint when you need the live field values for a specific CMS record—for example, to verify published content or ingest a specific live item into a downstream system.
Enter the unique identifier of the collection in the Collection ID field. This is required.
Enter the unique identifier of the item in the Item ID field. This is required.
Optionally, enter a CMS locale identifier in the CMS Locale ID field to retrieve the live item in a specific locale.
List Products & SKUs
Retrieves a paginated list of all products and their associated SKUs for a Webflow e-commerce site. Use this endpoint to sync your Webflow product catalog with an external inventory management system, ERP, or analytics platform.
Enter the unique identifier of the site in the Site ID field. This is required. The site must have e-commerce enabled. Use the List Sites endpoint to obtain the Site ID.
In Webflow's e-commerce model, a Product represents the top-level item (for example, a T-shirt), while SKUs represent individual purchasable variants of that product (for example, size Small, color Blue). Each product in the response includes a nested array of its SKUs.
Get Product and SKUs
Retrieves the full details and all SKU variants for a single product. Use this endpoint when you need complete product and variant information for a specific item—for example, to sync a single product's data to an external fulfillment or pricing system.
Enter the unique identifier of the site in the Site ID field. This is required.
Enter the unique identifier of the product in the Product ID field. This is required. Product IDs can be obtained from the List Products & SKUs endpoint.
List Orders
Retrieves a paginated list of e-commerce orders for a Webflow site, optionally filtered by order status. Use this endpoint to sync order data to an external fulfillment system, financial reporting tool, or customer support platform.
Enter the unique identifier of the site in the Site ID field. This is required.
Optionally, select an order status in the Status field to filter results. Available status values are:
All Orders (blank) — Returns orders in all statuses
Pending — Orders that have been placed but not yet fulfilled
Fulfilled — Orders that have been fulfilled and shipped
Refunded — Orders that have been refunded
Leave the Status field blank to retrieve all orders regardless of status. This is the recommended approach when syncing order data to an external system for the first time.
Once the selected endpoint template has been configured, click the Test button to the right of the endpoint selection menu to retrieve a sample of the data that will be fetched. Sample data will be displayed in the Endpoint Test Result panel on the right, allowing you to verify that the source is configured correctly before saving.
Webflow Data API data sources can also be manually configured to ingest data from any valid Webflow Data API endpoint, including endpoints not covered by the pre-built templates, chained API calls, or custom request parameters. Select the Advanced tab at the top of the configuration screen, and follow the instructions in Connect to Any API to configure the API method, endpoint URL, date/time and lookup macros, path to data, metadata, and request headers.
All Webflow Data API v2 endpoints begin with https://api.webflow.com/v2 (for example, https://api.webflow.com/v2/sites, .../sites/{site_id}/pages, .../collections/{collection_id}/items, .../sites/{site_id}/products, or .../sites/{site_id}/orders). Webflow list responses wrap their result array under a named key, so set the Path to Data accordingly—for example, $.sites[*], $.pages[*], $.collections[*], $.items[*], $.products[*], or $.orders[*]. For endpoints that also return context outside that array, such as the pagination object returned alongside items by GET /v2/collections/{collection_id}/items, set the Metadata path (e.g. $.pagination) to attach it to each record. You do not need to add an Authorization header—Nexla automatically injects the OAuth Bearer token from your credential; the Webflow Data API v2 may require an accept-version header for specific version targeting in some scenarios.
Once all of the relevant settings have been configured, click the Create button in the upper right corner of the screen to save and create the new Webflow Data API data source. Nexla will now begin ingesting data from the configured endpoint and will organize any data that it finds into one or more Nexsets.
Click the + icon on the Nexset that will be sent to the Webflow Data API destination, and select the Send to Destination option from the menu. Select the Webflow Data API connector from the list of available destination connectors, then select the credential that will be used to connect to the Webflow Data API organization, and click Next; or, create a new Webflow Data API credential for use in this flow.
Nexla provides pre-built templates that can be used to rapidly configure destinations to send data to common Webflow Data API endpoints. Select the endpoint to which data will be sent from the Endpoint pulldown menu. Then, click on the template in the list below to expand it, and follow the instructions to configure additional endpoint settings.
Update Page Metadata
Updates the metadata of an existing Webflow page, such as its title, slug, SEO description, or open graph settings, optionally for a specific locale. Use this endpoint to push page metadata updates from an external content management system or translation workflow into Webflow.
Enter the unique identifier of the page to update in the Page ID field. This is required. Page IDs can be obtained from the List Pages data source endpoint.
Optionally, enter a locale identifier in the Locale ID field to update metadata for a specific locale variant of the page. Leave blank to update the default locale.
Ensure the Nexset being sent contains the page metadata fields you want to update. The Webflow Data API accepts the following fields as a JSON body (include only the fields you wish to change):
title — The page's display title
slug — The URL slug for the page
description — The SEO meta description
openGraphTitle — The Open Graph title for social sharing
openGraphDescription — The Open Graph description
This endpoint uses an HTTP PATCH method, so only the fields included in the request body will be updated. Fields not included will retain their current values in Webflow.
Update Page Content
Updates the DOM (Document Object Model) node content of a Webflow page for a specific locale. Use this endpoint to programmatically push localized content updates—such as translated text—into Webflow pages from an external localization or content workflow.
Enter the unique identifier of the page in the Page ID field. This is required.
Optionally, enter a locale identifier in the Locale ID field to update content for a specific locale. Leave blank to update the default locale.
Ensure the Nexset contains a valid DOM node update payload. The request body should include a nodes array, where each node object specifies the node ID and the updated text or property values to apply.
Page content updates require knowledge of the page's DOM node IDs. Use the Get Page Content data source endpoint to retrieve the current node tree and extract the node IDs before writing updates.
Update Component Content
Updates the DOM content of a reusable component within a Webflow site, optionally targeting a specific locale and branch. Use this endpoint to push component content updates—such as translated text or updated rich-text nodes—from an external system into Webflow.
Enter the unique identifier of the site in the Site ID field. This is required.
Enter the unique identifier of the component to update in the Component ID field. This is required. Component IDs can be obtained from the List Components data source endpoint.
Optionally, enter a locale identifier in the Locale ID field to update the component's content for a specific locale.
Optionally, enter a branch identifier in the Branch ID field to apply the update to a specific Webflow branch rather than the default branch.
Like page content updates, component content updates require node IDs from the component's DOM tree. Retrieve the current component DOM structure before constructing update payloads.
Update Component Properties
Updates the design properties of a reusable component within a Webflow site, optionally targeting a specific locale and branch. Use this endpoint to push property changes—such as updated styling tokens or default property values—from an external design system into Webflow components.
Enter the unique identifier of the site in the Site ID field. This is required.
Enter the unique identifier of the component in the Component ID field. This is required.
Optionally, enter a locale identifier in the Locale ID field to scope the property update to a specific locale.
Optionally, enter a branch identifier in the Branch ID field to apply changes to a specific Webflow branch.
Create Collection
Creates a new CMS collection in a Webflow site. Use this endpoint to programmatically provision new content schemas—for example, when bootstrapping a new Webflow site from an external content model or automating the creation of multi-tenant content structures.
Enter the unique identifier of the site in the Site ID field. This is required.
Ensure the Nexset contains the required fields for creating a collection. At minimum, the request body must include:
displayName — The human-readable name for the collection (for example, Blog Posts)
singularName — The singular form of the collection name (for example, Blog Post)
slug — A URL-safe identifier for the collection (for example, blog-posts)
Collection creation requires the cms:write OAuth scope. Verify that this scope is included in the Webflow credential used for this flow.
Create Collection Item(s)
Creates one or more new items in a CMS collection. Use this endpoint to publish content to Webflow from an external source—for example, syncing blog posts from a headless CMS, importing product data from a PIM system, or pushing records from a database into a Webflow CMS collection.
Enter the unique identifier of the collection in the Collection ID field. This is required. Collection IDs can be obtained from the List Collections data source endpoint.
Ensure the Nexset contains the CMS item fields that match the collection's schema. Required fields vary by collection but always include at minimum the collection's required fields as defined in the Webflow CMS editor. Each item should include a fieldData object containing the field values.
Newly created items are saved in draft (staged) status by default. They will not appear on the live Webflow site until the site is published. To publish items after creation, use the Webflow Data API's publish endpoint separately.
Update Collection Item
Updates a single existing item in a CMS collection. Use this endpoint to push changes to Webflow CMS records from an external system—for example, updating a product description, changing a blog post's status, or syncing field values from an external database.
Enter the unique identifier of the collection in the Collection ID field. This is required.
Enter the unique identifier of the item to update in the Item ID field. This is required. Item IDs can be obtained from the List Collection Items data source endpoint.
Ensure the Nexset contains a fieldData object with the fields to update. Only include the fields that should be changed—fields not included in the request will retain their current values.
This endpoint uses HTTP PATCH semantics. Updated items are saved in staged status and must be published to appear on the live site.
Create Product & SKU
Creates a new product along with its initial SKU in the Webflow site's e-commerce catalog. Use this endpoint to import product data from an external product information management (PIM) system, ERP, or database into Webflow's e-commerce store.
Enter the unique identifier of the site in the Site ID field. This is required. The site must have Webflow e-commerce enabled.
Ensure the Nexset contains the required product and SKU fields. A minimal product creation payload includes:
product object with fieldData containing at least the product name and slug
sku object with fieldData containing at least the SKU name and price
Creating products requires the ecommerce:write OAuth scope. Newly created products are staged and must be published to appear in your Webflow store.
Update Product
Updates the details of an existing product in the Webflow e-commerce catalog. Use this endpoint to sync product data changes—such as updated descriptions, pricing adjustments, or availability changes—from an external system into Webflow.
Enter the unique identifier of the site in the Site ID field. This is required.
Enter the unique identifier of the product to update in the Product ID field. This is required. Product IDs can be obtained from the List Products & SKUs data source endpoint.
Ensure the Nexset contains a fieldData object with the product fields to update. Only include fields that should change.
Fulfill Order
Marks an existing Webflow e-commerce order as fulfilled and triggers Webflow's fulfillment workflow, including sending a fulfillment confirmation email to the customer if configured. Use this endpoint to automate order fulfillment from an external fulfillment or warehouse management system.
Enter the unique identifier of the site in the Site ID field. This is required.
Enter the unique identifier of the order to fulfill in the Order ID field. This is required. Order IDs can be obtained from the List Orders data source endpoint.
Optionally, include a sendOrderFulfilledEmail boolean in the request body to control whether Webflow sends a fulfillment email to the customer. Set to true to trigger the email; omit or set to false to suppress it.
Once an order is marked as fulfilled, this action cannot be undone through the API. Ensure that the order is ready for fulfillment before executing this endpoint.
Refund Order
Processes a refund for an existing Webflow e-commerce order. Use this endpoint to automate refund processing from an external customer service or returns management platform, ensuring Webflow order records stay in sync with your broader operations.
Enter the unique identifier of the site in the Site ID field. This is required.
Enter the unique identifier of the order to refund in the Order ID field. This is required.
Refunding an order in Webflow updates the order's status to Refunded and triggers any configured Webflow refund notifications. Actual payment reversal is handled by the connected payment processor (for example, Stripe) and is not initiated solely by this API call.
Webflow Data API destinations can also be manually configured to send data to any valid Webflow Data API endpoint. Select the Advanced tab at the top of the configuration screen, and follow the instructions in Connect to Any API to configure the API method, data format, endpoint URL, request headers, attribute exclusions, record batching, and response webhooks.
All Webflow Data API v2 write endpoints begin with https://api.webflow.com/v2, using POST to create resources (collections, items, products, fulfillments, refunds) or PATCH to partially update existing ones—for update operations, include the resource ID at the end of the URL (for example, https://api.webflow.com/v2/collections/{collection_id}/items/{item_id}). The Webflow Data API accepts JSON for all write operations. You do not need to add an Authorization header—Nexla automatically injects the OAuth Bearer token from your credential, and Content-Type: application/json is added automatically. If batching records, note that the Webflow CMS bulk create/update endpoints support up to 100 items per request, so set the batch size to 100 or fewer to stay within Webflow API limits.
Once all endpoint settings have been configured, click the Done button in the upper right corner of the screen to save and create the destination. To begin sending data to the configured Webflow Data API endpoint, open the destination resource menu, and select Activate.
The Nexset data will not be sent to the Webflow Data API until the destination is activated. Destinations can be activated immediately or at a later time, providing full control over data movement.