publ betaReference (MCP guide)
Open publ console

publ Reference

page_design_apply

Changes the draft of a general page design as the console editor does, one action at a time: start a draft, add, edit, move, duplicate or delete sections, edit preset section items, edit component blocks, edit the compositions of carousel, slide banner and list blocks (properties, blocks, a new template, which overwrites the composition), rearrange mobile, set the header option or import a page template. Exporting a page or section template is a console link, because the browser saves the file. Publishing cannot be undone and happens with the console editor Publish button; template files and images are handled on the console. Called without confirmToken it previews and returns a confirmToken; repeating the same input with it executes once.

Inputs

Field Required here Contract
pageId Yes integer; greater than 0; The general page (PAGE_PATH pageId from pages_get), or the landing page of a legacy promotion link (its targetPageId), which the console edits with the same editor.
action Yes one of: start_draft, add_section, update_section, update_custom_property, move_section, duplicate_section, delete_section, add_item, update_item, delete_item, move_item, blocks, arrange_mobile, header, page_template, composition_property, composition_blocks, composition_template, export_page, export_section, publish (by kind)
action.mode Yes When action.kind is start_draft: new, continue; new: New Edit from the published page; continue: the unpublished draft.
action.preset No When action.kind is add_section: BASE_INTRO, BASE_CONTENTS, BASE_CONTENTS_CAROUSEL, BASE_INFO_BOX, BASE_FOOTER, EXP_IFRAME
action.sectionCode No When action.kind is add_section: string; pattern ^[A-Za-z0-9_]{1,80}$
action.sectionTemplateCode No When action.kind is add_section: string; pattern ^[A-Za-z0-9_]{1,80}$
action.sectionId Yes When action.kind is update_section: integer; greater than 0
action.changes Yes When action.kind is update_section: object
action.changes.administrativeTitle No When action.kind is update_section: string; min length 1; max length 100
action.changes.display No When action.kind is update_section: boolean
action.changes.template No When action.kind is update_section: string; pattern ^[A-Za-z0-9_]{1,80}$
action.changes.properties No When action.kind is update_section: object
action.changes.styles No When action.kind is update_section: object
action.changes.iframeFile No When action.kind is update_section: one of: local-file, more-parts, complete, cancel (by kind)
action.changes.iframeFile.filename Yes When action.kind is update_section and action.changes.iframeFile.kind is local-file: string; min length 1; max length 240; pattern ^[^/\\:\x00-\x1f\x7f]+$; The name of the file on this computer, with its extension.
action.changes.iframeFile.byteLength Yes When action.kind is update_section and action.changes.iframeFile.kind is local-file: integer; greater than 0; The exact file size in bytes (for example from wc -c < FILE or stat).
action.changes.iframeFile.sha256 No When action.kind is update_section and action.changes.iframeFile.kind is local-file: string; pattern ^[0-9a-f]{64}$
action.changes.iframeFile.uploadId Yes When action.kind is update_section and action.changes.iframeFile.kind is more-parts: string; pattern ^upl_[A-Za-z0-9_-]{22}$
action.changes.iframeFile.fromPart Yes When action.kind is update_section and action.changes.iframeFile.kind is more-parts: integer; minimum 1; maximum 10000
action.changes.iframeFile.uploadId Yes When action.kind is update_section and action.changes.iframeFile.kind is complete: string; pattern ^upl_[A-Za-z0-9_-]{22}$
action.changes.iframeFile.parts Yes When action.kind is update_section and action.changes.iframeFile.kind is complete: array; min items 1; max items 10000
action.changes.iframeFile.parts[].partNumber Yes When action.kind is update_section and action.changes.iframeFile.kind is complete: integer; minimum 1; maximum 10000
action.changes.iframeFile.parts[].etag Yes When action.kind is update_section and action.changes.iframeFile.kind is complete: string; min length 1; max length 200
action.changes.iframeFile.measured No When action.kind is update_section and action.changes.iframeFile.kind is complete: object; What the video measures on this computer, read with measureCommand.
action.changes.iframeFile.measured.durationSeconds Yes When action.kind is update_section and action.changes.iframeFile.kind is complete: number; maximum 1000000; greater than 0; Video duration in seconds (ffprobe format.duration).
action.changes.iframeFile.measured.frameRate Yes When action.kind is update_section and action.changes.iframeFile.kind is complete: number; maximum 1000; greater than 0; Frames per second (ffprobe avg_frame_rate, for example 30000/1001 = 29.97).
action.changes.iframeFile.measured.width Yes When action.kind is update_section and action.changes.iframeFile.kind is complete: integer; maximum 100000; greater than 0
action.changes.iframeFile.measured.height Yes When action.kind is update_section and action.changes.iframeFile.kind is complete: integer; maximum 100000; greater than 0
action.changes.iframeFile.measured.frameRateMode No When action.kind is update_section and action.changes.iframeFile.kind is complete: CFR, VFR
action.changes.iframeFile.measured.minFrameRate No When action.kind is update_section and action.changes.iframeFile.kind is complete: number; maximum 1000; greater than 0
action.changes.iframeFile.measured.maxFrameRate No When action.kind is update_section and action.changes.iframeFile.kind is complete: number; maximum 1000; greater than 0
action.changes.iframeFile.uploadId Yes When action.kind is update_section and action.changes.iframeFile.kind is cancel: string; pattern ^upl_[A-Za-z0-9_-]{22}$
action.sectionId Yes When action.kind is update_custom_property: integer; greater than 0
action.device No When action.kind is update_custom_property: DESKTOP, MOBILE; default DESKTOP
action.state No When action.kind is update_custom_property: NORMAL, HOVER; default NORMAL
action.propertyCode Yes When action.kind is update_custom_property: string; pattern ^[A-Za-z0-9_]{1,80}$
action.specCode No When action.kind is update_custom_property: string; pattern ^[A-Za-z0-9_]{1,80}$
action.value No When action.kind is update_custom_property: string; max length 10000 or number or boolean or null or array; items: ; max items 200 or object
action.empty No When action.kind is update_custom_property: true
action.sectionId Yes When action.kind is move_section: integer; greater than 0
action.afterSectionId Yes When action.kind is move_section: integer; greater than 0 or null
action.sectionId Yes When action.kind is duplicate_section or delete_section: integer; greater than 0
action.sectionId Yes When action.kind is add_item: integer; greater than 0
action.sectionId Yes When action.kind is update_item: integer; greater than 0
action.itemId Yes When action.kind is update_item: integer; greater than 0
action.properties No When action.kind is update_item: object
action.display No When action.kind is update_item: boolean
action.sectionId Yes When action.kind is delete_item: integer; greater than 0
action.itemId Yes When action.kind is delete_item: integer; greater than 0
action.sectionId Yes When action.kind is move_item: integer; greater than 0
action.itemId Yes When action.kind is move_item: integer; greater than 0
action.afterItemId Yes When action.kind is move_item: integer; greater than 0 or null
action.sectionId Yes When action.kind is blocks: integer; greater than 0
action.device No When action.kind is blocks: DESKTOP, MOBILE; default DESKTOP
action.operation Yes When action.kind is blocks: one of: CREATE, UPDATE_PROPERTY_SPECS, DELETE, DUPLICATE, TIE, UNTIE, ENABLE_HEIGHT_VARIABLE, DISABLE_HEIGHT_VARIABLE, CHANGE_Z_ORDER, EMPTY_PROPERTY (by action)
action.operation.componentBlockCode Yes When action.kind is blocks and action.operation.action is CREATE: string; pattern ^[A-Za-z0-9_]{1,80}$
action.operation.componentBlockTemplateCode No When action.kind is blocks and action.operation.action is CREATE: string; pattern ^[A-Za-z0-9_]{1,80}$
action.operation.compositionTemplateCode No When action.kind is blocks and action.operation.action is CREATE: string; pattern ^[A-Za-z0-9_]{1,80}$
action.operation.preferredValuetype No When action.kind is blocks and action.operation.action is CREATE: VALUE, DATA; default VALUE
action.operation.workDir No When action.kind is blocks and action.operation.action is CREATE: string; pattern ^\/ROOT(\/[A-Za-z0-9_-]+)*$; default /ROOT
action.operation.propertyCode Yes When action.kind is blocks and action.operation.action is UPDATE_PROPERTY_SPECS: string; pattern ^[A-Za-z0-9_]{1,80}$; The block property, for example CB_PLACEMENT_PROP_PLACEMENT (from page_design_get includeBlocks).
action.operation.specCodes Yes When action.kind is blocks and action.operation.action is UPDATE_PROPERTY_SPECS: array; items: string; pattern ^[A-Za-z0-9_]{1,80}$; min items 1; max items 20; Every spec code this update writes; each valuePairs specValueMap uses exactly these keys.
action.operation.valuePairs Yes When action.kind is blocks and action.operation.action is UPDATE_PROPERTY_SPECS: array; min items 1; max items 50; One row per block: [{blockId, specValueMap:{specCode: value}}]. workDir is the folder holding the blocks (/ROOT for top-level blocks), not a block path.
action.operation.valuePairs[].blockId Yes When action.kind is blocks and action.operation.action is UPDATE_PROPERTY_SPECS: string; min length 1; max length 120; The block id from page_design_get includeBlocks, for example CB_611554.
action.operation.valuePairs[].specValueMap Yes When action.kind is blocks and action.operation.action is UPDATE_PROPERTY_SPECS: object; Spec code to new value, for example {"CB_PLACEMENT_PROP_PLACEMENT_SPEC_ZINDEX": 3}.
action.operation.state No When action.kind is blocks and action.operation.action is UPDATE_PROPERTY_SPECS: NORMAL, HOVER; default NORMAL
action.operation.workDir No When action.kind is blocks and action.operation.action is UPDATE_PROPERTY_SPECS: string; pattern ^\/ROOT(\/[A-Za-z0-9_-]+)*$; default /ROOT
action.operation.targetBlockIds Yes When action.kind is blocks and action.operation.action is DELETE or DUPLICATE or TIE or UNTIE or ENABLE_HEIGHT_VARIABLE or DISABLE_HEIGHT_VARIABLE: array; items: string; min length 1; max length 120; min items 1; max items 50
action.operation.workDir No When action.kind is blocks and action.operation.action is DELETE or DUPLICATE or TIE or UNTIE or ENABLE_HEIGHT_VARIABLE or DISABLE_HEIGHT_VARIABLE: string; pattern ^\/ROOT(\/[A-Za-z0-9_-]+)*$; default /ROOT
action.operation.targetBlockIds Yes When action.kind is blocks and action.operation.action is CHANGE_Z_ORDER: array; items: string; min length 1; max length 120; min items 1; max items 50
action.operation.zOrderAction Yes When action.kind is blocks and action.operation.action is CHANGE_Z_ORDER: INCREASE, DECREASE, INCREASE_TO_THE_TOP, DECREASE_TO_THE_BOTTOM
action.operation.workDir No When action.kind is blocks and action.operation.action is CHANGE_Z_ORDER: string; pattern ^\/ROOT(\/[A-Za-z0-9_-]+)*$; default /ROOT
action.operation.targetBlockIds Yes When action.kind is blocks and action.operation.action is EMPTY_PROPERTY: array; items: string; min length 1; max length 120; min items 1; max items 50
action.operation.propertyCode Yes When action.kind is blocks and action.operation.action is EMPTY_PROPERTY: string; pattern ^[A-Za-z0-9_]{1,80}$
action.operation.workDir No When action.kind is blocks and action.operation.action is EMPTY_PROPERTY: string; pattern ^\/ROOT(\/[A-Za-z0-9_-]+)*$; default /ROOT
action.sectionId Yes When action.kind is arrange_mobile: integer; greater than 0
action.alg No When action.kind is arrange_mobile: ALG_1, ALG_3; default ALG_3
action.remoteMenuControlOption Yes When action.kind is header: DEFAULT, TRANSPARENT, HIDDEN; Default menu, transparent background menu or hidden menu [str_6326, str_6327, str_6328].
action.sceneTemplateCode Yes When action.kind is page_template: string; pattern ^[A-Za-z0-9_]{1,80}$; A page template from page_design_get catalog pageTemplates.
action.sectionId Yes When action.kind is composition_property: integer; greater than 0
action.componentBlockId Yes When action.kind is composition_property: integer; greater than 0; The complex component block (its numeric id from page_design_get includeBlocks).
action.compositionId Yes When action.kind is composition_property: integer; greater than 0; The composition from page_design_get composition.
action.device No When action.kind is composition_property: DESKTOP, MOBILE; default DESKTOP
action.propertyCode Yes When action.kind is composition_property: string; pattern ^[A-Za-z0-9_]{1,80}$
action.specCode No When action.kind is composition_property: string; pattern ^[A-Za-z0-9_]{1,80}$
action.value No When action.kind is composition_property: string; max length 10000 or number or boolean or null or array; items: ; max items 200 or object
action.empty No When action.kind is composition_property: true
action.sectionId Yes When action.kind is composition_blocks: integer; greater than 0
action.componentBlockId Yes When action.kind is composition_blocks: integer; greater than 0; The complex component block (its numeric id from page_design_get includeBlocks).
action.compositionId Yes When action.kind is composition_blocks: integer; greater than 0; The composition from page_design_get composition.
action.device No When action.kind is composition_blocks: DESKTOP, MOBILE; default DESKTOP
action.operation Yes When action.kind is composition_blocks: one of: CREATE, UPDATE_PROPERTY_SPECS, DELETE, DUPLICATE, TIE, UNTIE, ENABLE_HEIGHT_VARIABLE, DISABLE_HEIGHT_VARIABLE, CHANGE_Z_ORDER, EMPTY_PROPERTY (by action)
action.operation.componentBlockCode Yes When action.kind is composition_blocks and action.operation.action is CREATE: string; pattern ^[A-Za-z0-9_]{1,80}$
action.operation.componentBlockTemplateCode No When action.kind is composition_blocks and action.operation.action is CREATE: string; pattern ^[A-Za-z0-9_]{1,80}$
action.operation.compositionTemplateCode No When action.kind is composition_blocks and action.operation.action is CREATE: string; pattern ^[A-Za-z0-9_]{1,80}$
action.operation.preferredValuetype No When action.kind is composition_blocks and action.operation.action is CREATE: VALUE, DATA; default VALUE
action.operation.workDir No When action.kind is composition_blocks and action.operation.action is CREATE: string; pattern ^\/ROOT(\/[A-Za-z0-9_-]+)*$; default /ROOT
action.operation.propertyCode Yes When action.kind is composition_blocks and action.operation.action is UPDATE_PROPERTY_SPECS: string; pattern ^[A-Za-z0-9_]{1,80}$; The block property, for example CB_PLACEMENT_PROP_PLACEMENT (from page_design_get includeBlocks).
action.operation.specCodes Yes When action.kind is composition_blocks and action.operation.action is UPDATE_PROPERTY_SPECS: array; items: string; pattern ^[A-Za-z0-9_]{1,80}$; min items 1; max items 20; Every spec code this update writes; each valuePairs specValueMap uses exactly these keys.
action.operation.valuePairs Yes When action.kind is composition_blocks and action.operation.action is UPDATE_PROPERTY_SPECS: array; min items 1; max items 50; One row per block: [{blockId, specValueMap:{specCode: value}}]. workDir is the folder holding the blocks (/ROOT for top-level blocks), not a block path.
action.operation.valuePairs[].blockId Yes When action.kind is composition_blocks and action.operation.action is UPDATE_PROPERTY_SPECS: string; min length 1; max length 120; The block id from page_design_get includeBlocks, for example CB_611554.
action.operation.valuePairs[].specValueMap Yes When action.kind is composition_blocks and action.operation.action is UPDATE_PROPERTY_SPECS: object; Spec code to new value, for example {"CB_PLACEMENT_PROP_PLACEMENT_SPEC_ZINDEX": 3}.
action.operation.state No When action.kind is composition_blocks and action.operation.action is UPDATE_PROPERTY_SPECS: NORMAL, HOVER; default NORMAL
action.operation.workDir No When action.kind is composition_blocks and action.operation.action is UPDATE_PROPERTY_SPECS: string; pattern ^\/ROOT(\/[A-Za-z0-9_-]+)*$; default /ROOT
action.operation.targetBlockIds Yes When action.kind is composition_blocks and action.operation.action is DELETE or DUPLICATE or TIE or UNTIE or ENABLE_HEIGHT_VARIABLE or DISABLE_HEIGHT_VARIABLE: array; items: string; min length 1; max length 120; min items 1; max items 50
action.operation.workDir No When action.kind is composition_blocks and action.operation.action is DELETE or DUPLICATE or TIE or UNTIE or ENABLE_HEIGHT_VARIABLE or DISABLE_HEIGHT_VARIABLE: string; pattern ^\/ROOT(\/[A-Za-z0-9_-]+)*$; default /ROOT
action.operation.targetBlockIds Yes When action.kind is composition_blocks and action.operation.action is CHANGE_Z_ORDER: array; items: string; min length 1; max length 120; min items 1; max items 50
action.operation.zOrderAction Yes When action.kind is composition_blocks and action.operation.action is CHANGE_Z_ORDER: INCREASE, DECREASE, INCREASE_TO_THE_TOP, DECREASE_TO_THE_BOTTOM
action.operation.workDir No When action.kind is composition_blocks and action.operation.action is CHANGE_Z_ORDER: string; pattern ^\/ROOT(\/[A-Za-z0-9_-]+)*$; default /ROOT
action.operation.targetBlockIds Yes When action.kind is composition_blocks and action.operation.action is EMPTY_PROPERTY: array; items: string; min length 1; max length 120; min items 1; max items 50
action.operation.propertyCode Yes When action.kind is composition_blocks and action.operation.action is EMPTY_PROPERTY: string; pattern ^[A-Za-z0-9_]{1,80}$
action.operation.workDir No When action.kind is composition_blocks and action.operation.action is EMPTY_PROPERTY: string; pattern ^\/ROOT(\/[A-Za-z0-9_-]+)*$; default /ROOT
action.sectionId Yes When action.kind is composition_template: integer; greater than 0
action.componentBlockId Yes When action.kind is composition_template: integer; greater than 0; The complex component block (its numeric id from page_design_get includeBlocks).
action.compositionId Yes When action.kind is composition_template: integer; greater than 0; The composition from page_design_get composition.
action.compositionTemplateCode Yes When action.kind is composition_template: string; pattern ^[A-Za-z0-9_]{1,80}$; A template from page_design_get composition.templates.
action.sectionId Yes When action.kind is export_section: integer; greater than 0
confirmToken No string; pattern ^ct[a-f\d]{32}$; The confirmToken from this tool's preview result. Omit it to preview; repeat the same input with it to execute.