object: "page". GET /pages/{id} extends the shape with a blocks[] array — the full ordered block tree, documented on Blocks.
Example
Identifiers
Always
"page".Stable UUID. Use this in
/pages/{id} and as the target of destination.page on QR codes and products.Operator-facing slug. Editable in the dashboard. Used for internal dashboard navigation and as the default surface name when no
public_slug is set.The slug exposed in public page URLs. Distinct from
slug because the operator may want a clean public address that’s independent of internal renames. Stable within the page’s life; changes only on explicit operator edit.Status
One of
draft, active, inactive, archived. See the overview for behaviour per status.Content
Page title. Rendered in the editor’s tab and used as the default
<title> when meta_title is unset.Free-form description. Operator-facing — distinct from
meta_description below.Background
The page background. Discriminated on
type: color, gradient, image, or video.Island
The “island” is the content card that sits on the background.Meta
URL for the browser tab favicon.
null falls back to the org default.Override for the
<title> tag. Falls back to title when unset.Override for the
<meta name="description"> tag. Falls back to description when unset.Override for the Open Graph image. Used by social previews. Falls back to a brand default when unset.
Stats
Lifetime view count. Increments on every public render. Read-only.
Timestamps
When the page was created.
Last mutation timestamp.
Blocks
GET /pages/{id} extends the response with a blocks[] array, ordered by sort_order. Each block has the envelope:
config shape.
Ordered list of block objects. Empty for blank pages.

