website.* endpoints manage those websites:
- website.status — inspect publish state, live URL, visibility
- website.listCheckpoints — browse version history
- website.publish — deploy the latest checkpoint
- website.update — change metadata (title, visibility) without redeploying
To have an agent build a website, create a task with task.create. Once the session has a website attached, the endpoints on this page take over.
Quickstart: publish a site
After the agent has built something (the task’s session now has a website), deploy it with one call and poll for the live URL:website.publish returns immediately while the deploy runs in the background.
Other common flows
Ship an updated build. After the agent makes more changes (new checkpoints), callwebsite.publish again — it always deploys the latest checkpoint. There is no way to pin an older checkpoint via this API.
Browse version history.
data[].version_id against published_version_id in the same response to find which checkpoint is currently live.
Change metadata without redeploying.
title and visibility — omitted fields are left unchanged. This does not trigger a new deployment, only a metadata update and a CDN refresh; it works even before the site has ever been published.
Take a site offline. There is no public unpublish endpoint at this time. If you need to take a site down, contact api-support@manus.ai.
Reference
Anatomy of a website
Locating a website
All four endpoints accept eithertask_id or website_id — exactly one must be provided:
Site URLs
When a site is published,website.status returns site_urls — an array of every hostname the site can be reached on, ordered from default to most specific:
- Space URL —
https://{space_id}.manus.space. Always present for a published site. - Sub-domain URL —
https://{sub_domain}.manus.space. Only when the owner has configured a sub-domain. - Custom domains —
https://{custom_domain}for each active custom domain bound by the owner.
site_urls[0] is enough — it’s always the space URL. The array is empty whenever publish_status is not published.
Publish states
Checkpoint status vs. publish state
A checkpoint’s ownstatus (pending / success / failed / unspecified) only says whether the snapshot was generated successfully — a success checkpoint is not automatically live. To find the live version, compare website.status.version_id (or website.listCheckpoints.published_version_id) against data[].version_id.
Visibility
Sites may additionally cap the maximum visibility they accept — for example, a team-only site cannot be set to
public. Requests that exceed the allowed visibility return 403 permission_denied.