Skip to main content
POST
Create a page

Authorizations

Authorization
string
header
required

Bearer authentication: a shop API key (WEAVERSE_API_KEY), a scoped API key, a delegated MCP OAuth token, or (translation-unit routes only) a project-bound translation agent token. Scopes: content:read — Read projects, pages, theme settings, versions, drafts and translation units. content:write — Save drafts and make non-destructive edits (page items, metadata, SEO, assignments, languages, glossary). Never publishes or deletes. content:publish — Publish drafts, schedule/reschedule/cancel publications, restore versions, publish global sections. content:delete — Delete pages, global sections, languages, static keys, override reverts; required with project:manage for project deletion. project:manage — Create/copy/delete projects, settings, variants, hierarchy, backups, restore-as-new, previews, hostname policy. translations:read — Read translation units only (no general content access). translations:write — Apply translation units only; never mutates page content. A legacy unscoped API key keeps read/write/translation baseline access and every pre-scope endpoint, but never gains publish/delete/project-manage implicitly.

Path Parameters

projectId
string
required

Body

application/json
type
enum<string>
required

Page type to create. CUSTOM is a bespoke merchant page (blank root). The resource-backed template types (PRODUCT, COLLECTION, PAGE, BLOG, ARTICLE) create a per-resource override / custom template that clones the project's shared default template for that type (or basedOn). This creates one new page per call (a per-resource copy). To share one template page across many resources without copying, use POST /template-assignments/{pageId} instead.

Available options:
CUSTOM,
PRODUCT,
COLLECTION,
PAGE,
BLOG,
ARTICLE
handle
string
required

Page handle. For CUSTOM, leading slashes are stripped, repeated slashes are collapsed, and trailing slashes are removed before persistence. For resource-backed types this is the Shopify resource handle (trimmed, kept verbatim) — pass the exact handle used by the list/get/delete endpoints.

name
string

Optional display name. Defaults to the normalized handle.

locale
string
default:""

Optional assignment locale. Defaults to the global/default assignment ("").

basedOn
string

Optional source page id to clone layout items from. The source page must be assigned to the same project. When omitted for a resource-backed type, the project's shared default template for that type is cloned when one exists; otherwise the page starts with a blank root item.

shopifyResourceId
string

Optional non-empty Shopify resource id (gid). Validated when present; persisted only for resource-backed types (PRODUCT/COLLECTION/PAGE/BLOG/ARTICLE); not stored for CUSTOM.

Response

Created page, or delete result when a legacy delete selector body is posted.

object
enum<string>
Available options:
page_create
page
object