canvases

Update a canvas's name, description, template_type, or brand kit.

patch/canvases/{canvas_id}

Request

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

Path parameters

canvas_idstring required

Prefixed cvs_ wire ID (Crockford base32 body) — the canonical, recommended form. For back-compat, a bare UUID string is also accepted in both path parameters and JSON request bodies (older integrations that stored raw UUIDs keep working), as is the prefix over a UUID body (cvs_00000000-0000-4000-8000-000000000000). All three are permanent, supported inputs; only the canonical form is ever emitted.

Example:cvs_01HT9WK8N3M2J4A5Z6P7Q8R9TV

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

namestring nullable

New display name.

descriptionstring nullable

New description. Send null to clear.

template_type'template' | 'theme' nullable

Mark as 'template' (any canvas) or 'theme' (slides canvases only). Send null to clear.

brand_kit_idstring nullable

Prefixed bk_ wire ID (Crockford base32 body) — the canonical, recommended form. For back-compat, a bare UUID string is also accepted in both path parameters and JSON request bodies (older integrations that stored raw UUIDs keep working), as is the prefix over a UUID body (bk_00000000-0000-4000-8000-000000000000). All three are permanent, supported inputs; only the canonical form is ever emitted.

Example request

{
  "brand_kit_id": "bk_01HT9WK8N3M2J4A5Z6P7Q8R9TV"
}

Response

Successful Response

idstring required

Unique canvas identifier (prefixed cvs_...).

namestring required

Display name of the canvas.

urlstring required

Full URL to open the canvas in the Moda editor.

categorystring nullable

Canvas format category — one of slides, social, carousel, pdf, diagram, ui, animation, prints, web-ads, other, or null when unset. Use this to distinguish slide decks from social posts etc. in list UIs.

visibilitystring nullable

Canvas visibility — team (visible to everyone on the team) or private (only the creator and explicit shares).

created_atstring nullable

ISO 8601 timestamp when the canvas was created.

updated_atstring nullable

ISO 8601 timestamp of the last modification.

template_typestring nullable

'template', 'theme', or null.

brand_kit_idstring nullable

The canvas's brand kit after the update (bk_...), or null if it is unbound. Always present: the kit just bound when the request set it, otherwise the canvas's current binding as projected into canvas_data — which can briefly lag a bind on a collaboration-active canvas, so a rename issued immediately after a bind may report the pre-bind kit until the collaboration worker projects it.

Example response

{
  "id": "cvs_01HT9WK8N3M2J4A5Z6P7Q8R9TV"
}

Changes

    • info

      added the new optional request property

    • info

      the / request property's maxLength was increased from 500 to 5000

    • info

      added the non-success response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status