canvas-actions

Create From Markup

Changed on

Create nodes from XML markup. replace_page_nodes is the atomic full-page rewrite.

The response revision is advisory-until-read (the CRDT write-back settles asynchronously); pin only tokens obtained from reads.

post/canvases/{canvas_ref}/markup

Request

  • Base URL
    https://api.moda.app/v1
  • URL
    https://api.moda.app/v1/canvases/{canvas_ref}/markup
  • Auth
    HTTP bearer

Path parameters

canvas_refstring required

Headers

Moda-Version'2026-04-12' | '2026-05-01'
Example:2026-05-01

Calendar-dated API version pin. New integrations should pin 2026-05-01 to opt into the newest response shapes. For back-compat the server also accepts requests with no header and resolves them to the current default (today: 2026-04-12); that default advances on each sunset date. Any unsupported value returns 400 unsupported_version.

Request body

page_idstring required

Target page id (short p-ref or real). 'canvas' = floating nodes (Design only).

markupstring required

Moda XML markup.

mode'append' | 'replace_page_nodes'
expected_revisionstring nullable

Required for mode='replace_page_nodes'; optional (advisory) for appends.

idempotency_keystring nullable

Response

Successful Response

object required

Changes