Publishing with the CMS API
The CMS API uses a staging system that separates draft from published content. This workflow gives you control over what goes live and when, ensuring content quality before publication.
All CMS content exists in one of two states:
Draft content that can be previewed but isn’t visible on the live site. Use this state to prepare and review changes.
Content that’s published and visible on your site. A live item can have a staged version for updates that don’t affect the original.
Each CMS Item has isDraft
and lastPublished
properties that indicate its current state. The combination of these properties determines an item’s status, which is reflected in the Webflow UI.
This mapping helps you understand how API operations affect the content status displayed in the Webflow interface.
Publishing workflows
The CMS API provides flexible publishing options to fit your workflow. Use the accordions below to learn more about each publishing method and see which endpoints to use.
Individual item publishing
Publish, unpublish, or stage a single item without affecting other content. This gives you granular control for targeted updates, such as publishing a single blog post or making a small correction to an existing page.
Associated endpoints:
$ curl https://api.webflow.com/collections/:collection_id/items/publish \ > -H "Authorization: Bearer <token>"
$ curl https://api.webflow.com/collections/:collection_id/items/live \ > -H "Authorization: Bearer <token>"
Site-wide publishing
Publish all staged content across your entire site in a single operation. This is ideal for coordinated releases, such as a new marketing campaign, a product launch, or a site redesign where multiple content changes need to go live simultaneously.
$ curl https://api.webflow.com/sites/:site_id/publish \ > -H "Authorization: Bearer <token>"
Draft changes on a live item
When a live item’s isDraft
property is set to true
, it remains published on your site. This allows you to safely update the item in a draft state without changing what’s visible to your site visitors. The changes will only go live when the item’s isDraft
property is set to false
and the item is published again.
$ curl https://api.webflow.com/collections/:collection_id/items \ > -H "Authorization: Bearer <token>"
Update a live item directly
To update an item and publish the changes to your live site in a single action, use the updateItemLive
endpoint. This is useful for making quick corrections or immediate updates without a review stage.
$ curl https://api.webflow.com/collections/:collection_id/items/live \ > -H "Authorization: Bearer <token>"
Unpublish an item
To remove an item from the live site, you must explicitly call the unpublishItem
endpoint. This action doesn’t delete the item from the CMS; it unpublishes it and sets its isDraft
property to true
, allowing you to continue editing it.
$ curl https://api.webflow.com/collections/:collection_id/items/live \ > -H "Authorization: Bearer <token>"
Archiving content
Archiving unpublishes items from your live site at the next full-site publish, but keeps the items accessible in the CMS. To archive an item, set the isArchived
property on the item to true
.
$ curl https://api.webflow.com/collections/:collection_id/items \ > -H "Authorization: Bearer <token>"
$ curl https://api.webflow.com/collections/:collection_id/items/live \ > -H "Authorization: Bearer <token>"
Next steps
Now that you understand the publishing workflows, here are a few topics you might want to explore next: