Skip to content

Export registered variants

GET
/cms/pagebuilder/variants
curl --request GET \
--url https://api.example.com/cms/pagebuilder/variants \
--header 'API-Key: <API-Key>'

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

Media typeapplication/json
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
label

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

string
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
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

longtext: multi-line text. url: http(s) URL, site path or mailto. image / content: a media library image or a story, stored as its ID and resolved in the block’s optionData

string
Allowed values: text longtext number boolean list url image content
values
One of:
string
multiple

List and content only: allow several values

boolean
required

Editors must fill it in before publishing

boolean
default
One of:
string

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