Export registered variants
const url = 'https://api.example.com/cms/pagebuilder/variants';const options = {method: 'GET', headers: {'API-Key': '<API-Key>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}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.
Authorizations
Section titled “Authorizations”Responses
Section titled “Responses”Registered variants
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
Block type → variants
object
A display variant a frontend implements. Unknown fields (e.g. component, note, thumbnail in a manifest) are ignored when importing.
object
Variant key, ^[a-z0-9_]{1,64}$. Never changes once registered.
Name editors see (required unless status is “disable” or “planned”)
When editors should use it
Make this the block type’s default (fallback) variant. Only one per block type; must have breakpoints null.
implemented (create or update), disable (disable an existing variant), planned (skipped)
Content_list only: source kinds this variant supports; null = all
Screen sizes the variant can be used on; null = all (must be null for the default variant)
List blocks only: number of items the design shows well (whole numbers ≥ 1, min ≤ default ≤ max)
object
Fields editors fill in per block; read by the frontend from variantOptions[key]
object
Label editors see
Option key, ^[A-Za-z0-9_-]+$ (generated from the name when omitted)
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
List and content only: allow several values
Editors must fill it in before publishing
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