Skip to content

Export registered variants

GET
/cms/pagebuilder/variants

Returns every registered variant, including disabled ones, in the manifest format accepted by PUT /cms/pagebuilder/variants, so a frontend can compare it with its own manifest. Every block type is listed, even without variants. Requires an API key linked to a CMS user who can view Page Builder settings.

Registered variants

PageBuilderVariantManifest

A frontend’s pagebuilder-variants.json: variants grouped by block type. Other top-level fields (site, generatedAt, …) are ignored. In GET responses, entries also carry thumbnail (image URL or null) and usedBy (number of published layouts using the variant).

object
blocks
required

Block type → variants

object
key
additional properties
Array<object>
PageBuilderVariantEntry

A display variant a frontend implements. Unknown fields (e.g. component, note, thumbnail in a manifest) are ignored when importing.

object
key
required

Variant key, ^[a-z0-9_]{1,64}$. Never changes once registered.

string
Example
lead_grid
label

Name editors see (required unless status is “disable” or “planned”)

string
Example
Lead story + grid
description

When editors should use it

string
nullable
isDefault

Make this the block type’s default (fallback) variant. Only one per block type; must have breakpoints null.

boolean
status

implemented (create or update), disable (disable an existing variant), planned (skipped)

string
Allowed values: implemented disable planned
Example
implemented
allowedSources

Content_list only: source kinds this variant supports; null = all

Array<string>
nullable
Allowed values: section query mostread mostcommented external
breakpoints

Screen sizes the variant can be used on; null = all (must be null for the default variant)

Array<string>
nullable
Allowed values: lg md xs
limit

List blocks only: number of items the design shows well (whole numbers ≥ 1, min ≤ default ≤ max)

object
min
integer
default
integer
max
integer
options

Fields editors fill in per block; read by the frontend from variantOptions[key]

Array<object>
object
name
required

Label editors see

string
key

Option key, ^[A-Za-z0-9_-]+$ (generated from the name when omitted)

string
type
required
string
Allowed values: boolean text number list
values
One of:
string
multiple

List only: allow several values

boolean
default
One of:
string
Example
{
"key": "lead_grid",
"label": "Lead story + grid",
"description": "One large lead story followed by a grid of smaller stories.",
"isDefault": false,
"status": "implemented",
"allowedSources": [
"section",
"query"
],
"breakpoints": null,
"limit": {
"min": 3,
"default": 7,
"max": 13
},
"options": [
{
"name": "Lead badge",
"key": "leadBadge",
"type": "text",
"default": "TOP STORY"
},
{
"name": "Show byline",
"key": "showByline",
"type": "boolean",
"default": "true"
}
]
}
Example
{
"blocks": {
"content_list": [
{
"key": "lead_grid",
"label": "Lead story + grid",
"limit": {
"min": 3,
"default": 7,
"max": 13
}
}
],
"ad_slot": [
{
"key": "default",
"label": "Default",
"isDefault": true
}
]
}
}

API key not linked to a CMS user with the required permission