Modulify

Publish a site

publish_site

Publishes a site so its current build goes live on its public address.

POST /v1/publish_siteScopepublish:writeMakes changes

It first waits for any save or code backup restore still running on the site, for up to two minutes. If one is still running after that, it fails with Your latest changes are still being saved, so nothing was published. Please try again in a moment!

Otherwise it returns once the publish has started, not when it finishes, so poll get_publish_status until running is false. If a publish is already in flight, the response carries pending:true and that run's deploymentId instead of starting a second one, which counts as success. See Publish a site.

Request

Call it with a POST to https://api.modulify.ai/v1/publish_site, sending the inputs below as a JSON object. The token needs the publish:write scope.

It makes changes, so send an Idempotency-Key header whenever you might retry it. A retry with the same key gets the first answer back instead of running again.

curl -X POST https://api.modulify.ai/v1/publish_site \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"projectId":"PROJECT_ID"}'

Over MCP, the same method is the publish_site tool.

Inputs

Input Type Required Description
projectId string Yes The site to publish.

Response

Every call answers with the JSON envelope of success, message, data, code and version. data holds the result described above, and on a method that returns a total, count carries it. The response headers carry the call's X-Request-Id and what is left of your per-minute budget in X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset. Errors explains every status code a call can answer with.