Modulify

Rename or describe a site

rename_site

Changes the name, description or server location of a site.

POST /v1/rename_siteScopesites:writeMakes changes

Send only the fields you want to change, and anything you leave out stays as it is. A locked site refuses every change.

The public web addresses of a site are its subdomain and its custom domains, and neither changes here. change_subdomain changes the subdomain, and add_custom_domain and the other custom domain tools manage the domains.

A new region moves the published site to that server location on its next publish, so a live site keeps serving from the old one until then. Changing it needs a paid plan. On a free workspace the value is accepted and ignored and the call still reports success, so compare the Region in the answer, which is the region the site is actually on, with the one you sent. See Project settings.

Request

Call it with a POST to https://api.modulify.ai/v1/rename_site, sending the inputs below as a JSON object. The token needs the sites: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/rename_site \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"projectId":"PROJECT_ID"}'

Over MCP, the same method is the rename_site tool.

Inputs

Input Type Required Description
projectId string Yes The site id.
name string No The new name, 3 to 64 characters.
description string No The new description. Anything over 640 characters is cut to 640 rather than refused, and only a description over 3000 characters fails the call.
region string No Where the published site is hosted, shown as Server location in its settings. One of ams, arn, bom, cdg, dfw, ewr, fra, gru, iad, jnb, lax, lhr, nrt, ord, sin, sjc, syd or yyz.

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.