Webflow Site API
With one click and no code, create a Webflow Site API to manage collections, items, forms and more.
Overview
API Plugin simplifies Webflow site management by enabling API endpoint creation without coding or server setup. You can make unlimited API calls to your Webflow site without worrying about rate limits.
Key benefits include:
- Bypass Webflow API rate limits
- Manage collection items programmatically across any collection
- Submit Webflow forms via API
- Batch create, update, and delete items
- Publish changes instantly through the API
- Protect API key security
- Eliminate server configuration requirements
- Monitor API usage logs
This integration provides a clean, RESTful interface to your Webflow site data while keeping your Webflow API credentials secure.
How to Setup
We assume you have signed up on API Plugin and are logged into the dashboard.
To set up the Webflow Site API:
- Go to the marketplace
- Create a new API
- Select Webflow from the list
You'll need a Webflow API token to configure this API. You can generate the token in your Webflow account:
- Log in to your Webflow account
- Navigate to Account Settings → Integrations tab
- Find the "API Access" section
- Generate a new API token with read/write permissions
Once you have your API token, go to the API Plugin dashboard. Give your API a name, input your token, select your site, and create your API endpoint.
Now you'll have a simple and secure API for your entire Webflow site.
Endpoints
Get All Items
GET /webflow/{token}/items?collectionId={collectionId}
Query parameters:
collectionId
(required): ID of the collection to fetch items fromlimit
(default: 100): Number of items to returnoffset
(optional): For paginationsort
(optional): Field to sort by (prefix with "-" for descending)filter
(optional): JSON encoded filter object
Get Single Item
GET /webflow/{token}/items/{itemId}?collectionId={collectionId}
Query parameters:
collectionId
(required): ID of the collection the item belongs to
Create Item
POST /webflow/{token}/items?collectionId={collectionId}
Query parameters:
collectionId
(required): ID of the collection to create the item inlive
(optional, default: false): Whether to publish the item immediately
Request body: Object containing item fields
Update Item
PATCH /webflow/{token}/items/{itemId}?collectionId={collectionId}
Query parameters:
collectionId
(required): ID of the collection the item belongs tolive
(optional, default: false): Whether to publish the update immediately
Request body: Object containing updated fields
Delete Item
DELETE /webflow/{token}/items/{itemId}?collectionId={collectionId}
Query parameters:
collectionId
(required): ID of the collection the item belongs tolive
(optional, default: false): Whether to publish the deletion immediately
Get Collections
GET /webflow/{token}/collections
Returns all collections for your site.
Get Collection Schema
GET /webflow/{token}/collections/{collectionId}
Returns the schema/structure of a specific collection.
Get Forms
GET /webflow/{token}/forms
Returns all forms for your site.
Submit Form
POST /webflow/{token}/forms/submit?formId={formId}
Query parameters:
formId
(required): ID of the form to submit
Request body: Object containing form field data
Publish Site
POST /webflow/{token}/publish
Request body (optional):
{
"itemIds": ["item1", "item2"] // Optional array of specific items to publish
}
Publishes changes to your Webflow site. If itemIds
is provided, only those specific items will be published; otherwise, all changes will be published.
Usage Examples
Get All Items in a Collection
fetch('https://api.example.com/webflow/YOUR_TOKEN/items?collectionId=abc123')
.then((response) => response.json())
.then((data) => console.log(data));
Create a New Item
fetch('https://api.example.com/webflow/YOUR_TOKEN/items?collectionId=abc123&live=true', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
name: 'New Product',
slug: 'new-product',
price: 99.99,
description: 'This is a new product',
}),
})
.then((response) => response.json())
.then((data) => console.log(data));
Update an Item
fetch('https://api.example.com/webflow/YOUR_TOKEN/items/ITEM_ID?collectionId=abc123&live=true', {
method: 'PATCH',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
price: 89.99,
description: 'Updated product description',
}),
})
.then((response) => response.json())
.then((data) => console.log(data));
Submit a Form
fetch('https://api.example.com/webflow/YOUR_TOKEN/forms/submit?formId=form123', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
name: 'John Doe',
email: 'john@example.com',
message: 'Hello, I am interested in your services.',
}),
})
.then((response) => response.json())
.then((data) => console.log(data));
Publish Site Changes
fetch('https://api.example.com/webflow/YOUR_TOKEN/publish', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
itemIds: ['item1', 'item2'], // Optional - only publish specific items
}),
})
.then((response) => response.json())
.then((data) => console.log(data));
Security Considerations
Your Webflow API token is securely encrypted on our servers and is never exposed to clients. All requests to your Webflow site go through our API, adding an extra layer of security.
You can also set allowed domains to restrict API access to specific origins, enhancing security for your Webflow data.