Register one variant
PUT/cms/pagebuilder/variants/{blockType}/{key}
Creates or updates a single variant. The body is one manifest entry; key is taken from the path. Same rules and report as PUT /cms/pagebuilder/variants.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Example
content_listExample
lead_gridQuery Parameters
Section titled “Query Parameters”Validate and report without writing
Request Bodyrequired
Section titled “Request Bodyrequired”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.
Example
lead_gridName editors see (required unless status is “disable” or “planned”)
Example
Lead story + gridWhen 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)
Example
implementedContent_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)
List only: allow several values
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" } ]}Responses
Section titled “Responses”Import report
What a variant import did (or would do, with dry_run). When ok is false nothing was written.
object
False when any entry is invalid; nothing is written then
True when called with dry_run=1 (nothing written)
Number of database operations applied
All validation errors, prefixed with blockType.key
One result per manifest entry
object
Updated: the fields that changed
This variant becomes the block type’s default
Skipped: why
Example
{ "ok": true, "dryRun": false, "applied": 2, "errors": [], "results": [ { "blockType": "content_list", "key": "lead_grid", "action": "created" }, { "blockType": "content_list", "key": "thumb_list", "action": "updated", "changed": [ "label", "optionsSchema" ] }, { "blockType": "content_list", "key": "image_only", "action": "disabled" }, { "blockType": "content_list", "key": "video_rail", "action": "skipped", "reason": "status is \"planned\"" } ]}API key not linked to a CMS user with the required permission
Invalid entry; nothing was written
What a variant import did (or would do, with dry_run). When ok is false nothing was written.
object
False when any entry is invalid; nothing is written then
True when called with dry_run=1 (nothing written)
Number of database operations applied
All validation errors, prefixed with blockType.key
One result per manifest entry
object
Updated: the fields that changed
This variant becomes the block type’s default
Skipped: why
Example
{ "ok": true, "dryRun": false, "applied": 2, "errors": [], "results": [ { "blockType": "content_list", "key": "lead_grid", "action": "created" }, { "blockType": "content_list", "key": "thumb_list", "action": "updated", "changed": [ "label", "optionsSchema" ] }, { "blockType": "content_list", "key": "image_only", "action": "disabled" }, { "blockType": "content_list", "key": "video_rail", "action": "skipped", "reason": "status is \"planned\"" } ]}