Python
Connect Python with Webflow through the Webflow Data API to automate CMS publishing and route form submissions or external data.
The platform runs client-side with no server-side code execution. You cannot run scripts inside a Webflow site to transform data or process records in bulk against external services. When content lives in a spreadsheet, a database, or another CMS, someone has to move it into the Webflow CMS by hand. That handoff becomes the bottleneck as sites scale past a few dozen records.
Python closes that gap by running on external infrastructure and talking to Webflow over its Data API. A single Python script can batch-create up to 100 CMS items per request. It can also capture form submissions through webhooks and reconcile records against outside data sources on a schedule. The official webflow SDK provides typed synchronous and asynchronous clients built on httpx. You write less boilerplate and get predictable JSON back.
This integration is for backend developers, automation engineers, technical marketers, and agency teams. Marketing agencies use it to bulk-publish articles. E-commerce teams sync product catalogs. SaaS companies route form data into a CRM. Media and publishing teams move large content archives between platforms without manual entry.
How to integrate Python with Webflow
What is Python? Python is an interpreted, object-oriented, high-level programming language that resolves many operations at runtime. It supports procedural and functional programming and runs cross-platform without a compilation step. Because it resolves types at runtime and has a large third-party ecosystem, it is a common glue language for connecting existing components and services.

Teams reach for Python and Webflow together when the work exceeds what the Webflow interface handles comfortably. Publishing 300 articles by hand is slow and error-prone. Syncing a product feed every night is not something a person should do manually. Python runs on your own server and communicates with Webflow through documented REST endpoints, so you script these jobs once and let them run.
Match the connection method to the job and to where the Python code runs:
- Code Embed and iframe embeds let you display output from an externally hosted Python app inside a Webflow page.
- The official Python SDK gives you typed clients for the Webflow Data API without writing raw HTTP requests, which helps when your script needs to create, update, or list CMS data repeatedly.
- The Webflow Data API and webhooks give you full control over CMS content and event-driven form workflows, but require server-side Python running on external infrastructure.
Most implementations combine two or more of these methods depending on the complexity of the setup.
Display Python output with Code Embed elements
Built-in code sections accept only HTML, CSS, and JavaScript, not server-side languages like Perl, PHP, Python, or Ruby. Python always runs on an external host, and you surface its output in Webflow through an embed. Use this method when you want to show a rendered widget or a full Python web app inside a Webflow page without a full API build.
You can surface externally hosted Python output two ways: embed the running app in an iframe, or call its API from client-side JavaScript and render the response.
Embed a hosted Python app in an iframe
Host your Python web application on a service like AWS Lambda, Heroku, Replit, or PythonAnywhere, then embed its URL. This works well for full applications or dashboards, including interactive tools you want to render inside a page section.
Embed the hosted app this way:
- Deploy your Python app to an external host and confirm it serves over HTTPS.
- Add a Code Embed element to your page.
- Paste an
<iframe>tag pointing to your app's URL.
Custom code in a Code Embed element cannot exceed 50,000 characters, which is ample for an iframe or widget snippet.
Call a Python API from client-side JavaScript
Place a JavaScript fetch snippet in a Code Embed element to call your Python backend and render the response in the page. This suits smaller widgets where you want the page to request live data on load.
Wire up the page request this way:
- Add your
fetchscript to a Code Embed element, or add it to the site's head and body tags in site settings for site-wide behavior. - Point the request at your Python API endpoint.
- Configure CORS on the Python server when the API lives on a different domain.
You can also bind Collection List fields into Code Embed elements through the Collection fields in custom code embeds feature. CMS data then flows into your embedded output.
Build with the Webflow Data API and Python
The Webflow Data API v2 gives you full CRUD control over CMS content, form submission retrieval, asset uploads, and site publishing. This path requires server-side Python running on external infrastructure such as Vercel Functions, AWS Lambda, or any host you control. It suits developers building content pipelines and webhook-driven sync jobs.
Server-side builds rely on different Webflow API tools for client code, CMS access, and event delivery:
- The official Python SDK (
pip install webflow) provides typed synchronous and asynchronous clients built onhttpx, with OAuth support and configurable timeouts. - Webflow's Data API handles CMS collections and items and form submissions, so Python jobs can write structured content and read submitted form data through documented endpoints.
- Webflow webhooks trigger real-time events between systems.
All Data API v2 endpoints require an Authorization: Bearer <token> header. Generate a site token under Apps and Integrations > API Access in site settings, or use OAuth 2.0 for public multi-site apps.
Create and list CMS items
Push Python-generated data into a collection to automate content at scale. The Create Items endpoint accepts up to 100 items per request, and the fieldData object must match your collection schema.
With the requests library, create items against the collection endpoint and read a page back to confirm the batch:
- Set your headers with
headers = {"Authorization": f"Bearer {TOKEN}", "Content-Type": "application/json"}. POSTtohttps://api.webflow.com/v2/collections/{collection_id}/itemswith a JSON body containingfieldData, matching each key to the target collection schema.- List items back with
GETon the same path, passingparams={"limit": 100, "offset": 0}.
The official SDK equivalent reads client.collections.items.create(collection_id=COLLECTION_ID, field_data={"name": "My New Post", "slug": "my-new-post"}). It returns typed objects instead of raw JSON.
Receive form submissions through webhooks
Register a webhook to push form data to a Python endpoint in real time. The Forms API is read-only, so webhooks are how you capture submissions as they happen. Register with POST /v2/sites/{site_id}/webhooks using the form_submission trigger type, which supports a filter to target a specific form by name.
In a Flask endpoint, verify the webhook signature before returning a response:
- Read
x-webflow-timestampandx-webflow-signaturefrom the request headers. - Concatenate
timestamp + ":" + body, then generate an HMAC SHA-256 digest using the webhook's signing key before the handler processes the payload. - Compare against the signature header with
hmac.compare_digestand return200.
Your endpoint must return 200. Without it, delivery retries up to three more times at 10-minute intervals. Webhooks created through the dashboard omit the headers needed to validate signatures. Create webhooks through the API or OAuth when you need verification.
What can you build with the Python Webflow integration?
Integrating Python with Webflow lets you automate content and data operations at scale without manual entry through the Webflow interface.
- Bulk CMS publishing: Push hundreds of articles or products into a collection from a single script.
- Content migration: Move a Strapi or WordPress blog archive into Webflow.
- Form-to-CRM routing: Catch
form_submissionwebhooks in a Flask endpoint, verify the HMAC signature, and forward the data to HubSpot or another CRM. - Scheduled catalog sync: Run a nightly Python job that reads a product feed and updates CMS items. The catalog stays current without hand edits.
If you need more control over webhook processing and error handling, including multi-locale syncing, the API path covers those cases. To go deeper on authentication and endpoints, see the Webflow CMS API guide.
Frequently asked questions
No. The platform runs client-side, and you cannot integrate server-side languages in any code section. Webflow's custom code documentation confirms that Perl, PHP, Python, and Ruby cannot run in Webflow. Python must run on an external host such as AWS Lambda or PythonAnywhere and communicate with Webflow over the API or through an embedded URL.
Add an
Authorization: Bearer <token>header to every request againsthttps://api.webflow.com/v2/. For single-site internal tools, generate a site token under Apps and Integrations > API Access in site settings. For public or multi-site apps, use the OAuth 2.0 flow.Yes. Install it with
pip install webflowfrom PyPI. The SDK reference documents synchronous and asynchronous clients powered byhttpx, type definitions, and built-in OAuth support. You can manage sites and collections or create and update CMS items with typed methods instead of raw HTTP calls.No. The Forms API is read-only, so you can retrieve and update existing submissions but cannot create new ones programmatically. All submissions must originate from Webflow's client-side form. To process submissions in Python, register a
form_submissionwebhook and receive the data as a POST to your endpoint.The May 2026 pricing update says CMS and Premium plans support 20,000 CMS items, while staged sites on Workspace Starter support 50 CMS items. When creating items, the Create Items endpoint accepts a maximum of 100 items per request, so large uploads run in batches. Bulk authoring, editing, and deleting of up to 100 items per request has been supported since October 2024.
Description
Run Python on external infrastructure to push Webflow CMS content and sync webhook-driven data at scale using the official Python SDK or REST API.
This integration page is provided for informational and convenience purposes only.

Integrately
Connect Integrately with Webflow to automate form submissions, CMS updates, and e-commerce orders across 1,500+ apps without writing code.

ScheduleFlow
Connect ScheduleFlow to Webflow to schedule site and CMS publishes at specific dates and times.

Auth0
Connect Auth0, an identity and access management platform, with Webflow to add login, signup, and content gating to static sites through the SPA SDK, Lock widget, automation platforms, or direct API integration.

Neon
Connect Neon, a serverless Postgres database, with Webflow to store, query, and sync relational data that exceeds what the Webflow CMS supports natively.
Relay.app
Connect Relay.app with Webflow to automate form routing, CMS publishing, and order fulfillment with human-in-the-loop approval steps.

Sass
Write and compile Sass directly in Webflow with live preview, code autocompletion, and minified CSS output using the free Sass app.

Publish Pilot
Connect Publish Pilot with Webflow to automate [CMS item publishing](https://help.webflow.com/hc/en-us/articles/33961307099027-Intro-to-the-Webflow-CMS), draft or archive actions, timed element changes, and full-site publishes.

Pipedream
Connect Pipedream, a developer-facing workflow automation platform, with Webflow to automate CMS updates and route e-commerce orders through event-driven workflows, with Node.js or Python available in any step when the pre-built actions run out.
MeldAPI
Connect MeldAPI with Webflow to sync data from external apps into CMS collections automatically, without writing code.


