---
ref: tool:webflow/publish-site
name: Publish a site
company: company:webflow
workflows: []
access: [mcp, cli, api]
tags: [capability:publish-content, category:cms, has:api, has:cli, has:mcp]
docs: https://developers.webflow.com/data/reference/sites/publish
updated: 2026-09-27
---

# Publish a site

Publishes a site's latest changes, or one page, to its Webflow subdomain or chosen custom domains.

On the MCP server, use the `publish_site` action of `data_sites_tool` with
`site_id`. The API needs `customDomains` (custom domain IDs) or
`publishToWebflowSubdomain: true`; the CLI publishes to the Webflow
subdomain unless you pass `--domains`, publishes one page with `--page`, and
previews with `--dry-run`. Publishing puts every pending change live, so
confirm with the user first.

## Set up

Use the first option your agent supports.

### MCP (official, remote)

Add this server to your agent's MCP settings, then sign in when asked.

```json
{ "mcpServers": { "webflow": { "url": "https://mcp.webflow.com/mcp" } } }
```

Call the MCP tool `data_sites_tool`.

Server URL: https://mcp.webflow.com/mcp

### CLI (official)

Install the command, then confirm it runs.

```sh
npm install -g @webflow/webflow-cli
webflow --version
```

Run `webflow sites publish`.

### API (official)

- Base URL: https://api.webflow.com/v2
- Endpoint: `POST /sites/{site_id}/publish`
- Auth: send the header `Authorization: Bearer $WEBFLOW_API_TOKEN`
- Docs: https://developers.webflow.com/data/reference/rest-introduction

Before doing anything else, make one read-only call to confirm access.

## Rules

- Ask the user before anything that sends messages, costs money, or changes data.
- Never print API keys.
