Skip to main content
POST
PublishWebsite
Questions or issues? Contact us at api-support@manus.ai.
Auth: API Key or OAuth token. No OAuth scope is required. The user must own the website or have write access to its source task; see Website access.

Headers

x-manus-api-key
string

API key for direct authentication. Provide either this or Authorization, not both. See Authentication.

Authorization
string

OAuth2 access token in Bearer {token} format. No OAuth scope is required. Provide either this or x-manus-api-key, not both. See the Open App guide.

Example:

"Bearer {access_token}"

Body

application/json
task_id
string

Session UID. Mutually exclusive with website_id — exactly one must be provided.

website_id
string

Unique website ID. Mutually exclusive with task_id — exactly one must be provided.

visibility
enum<string>

Who can access the published site. Replaces the site's current visibility.

  • public (default) — anyone. An empty string also means public.
  • team — current team members only. Requires a team account.
  • private — owner and invited collaborators only.

Sites may cap the maximum allowed visibility; requests above the cap return 403 permission_denied.

Available options:
public,
team,
private

Response

Publish triggered successfully. The response includes the website title current when the request was accepted. Deployment is still in progress — poll website.status for the final state and effective visibility. This response does not echo visibility.

ok
boolean

Whether the request was successful.

Example:

true

request_id
string

Unique identifier for this API request.

website_id
string

Unique website ID.

title
string

Display title of the website when the publish request was accepted. For historical websites without a stored title, this falls back to the internal project name. Always present.

version_id
string

version_id of the checkpoint being deployed — always the latest checkpoint of the site.