Create an empty site
Creates an empty site in the active workspace and seeds its brief. Nothing is published until you publish. By default a slug that another account holds is auto-suffixed ({slug}-{adjective}-{noun}); the response says so with slugAdjusted: true, so always use the returned slug afterwards.
Free-site capacity is base + perPaid × paidSites in the workspace (defaults 10 + 10 per paid site; fleet and per-workspace overrides exist). Only free-tier sites count toward usage; past the effective max the request answers 403 free_site_limit. A key limited to specific sites, and a guest token, can't create sites.
Request
- Base URL: https://api.dotsy.ai
- URL: https://api.dotsy.ai/api/v1/sites
- Auth: HTTP bearer
Headers
Org id or slug to act as for this request (session/MCP user actors only — ignored for pga_ keys). Validated against the caller's own memberships (id match first, then slug); 403 if not a member. Takes precedence over session.activeOrganizationId and the auto-provisioned home-workspace fallback.
Request body
Example request
{
"slug": "acme-studio",
"title": "Acme Studio",
"purpose": "Show Acme's work and bring in new client enquiries."
}Response
The site exists. It is empty and unpublished.
Example response
{
"slug": "acme-studio",
"requestedSlug": "acme-studio",
"publicUrl": "https://acme-studio.dotsy.site/",
"liveUrl": "https://acme-studio.dotsy.site/"
}Changes
No recorded changes to this operation across all 1 revision of this API.