Export a canvas as PNG, JPEG, PDF, or PPTX. Returns a signed URL or a polling handle.
Exports run the headless browser against the authenticated canvas URL,
so they require DB-level team access regardless of share-link status.
Share-link-only callers can read the canvas via GET /canvases/{id}
with a share_token query param but cannot export.
Large multi-page exports may exceed the synchronous wait budget; in that
case the response carries status='in_progress' with a task_id —
call GET /canvases/{id}/export-status?task_id=... to retrieve the
signed URL once the background export finishes.
Documentation Index
Fetch the complete documentation index at: https://docs.moda.app/llms.txt
Use this file to discover all available pages before exploring further.
API key from Settings > Developer > REST API
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.
2026-04-12, 2026-05-01 "2026-05-01"
Prefixed cvs_ wire ID (Crockford base32 body). Path parameters additionally accept a bare UUID string for back-compat; JSON body fields require the prefixed form.
^cvs_[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$"cvs_01HT9WK8N3M2J4A5Z6P7Q8R9TV"
Export format: png, jpeg, pdf, or pptx
1-indexed page number to export. Omit to export all pages.
x >= 1Render scale multiplier (1-4). Higher values produce sharper exports at larger file sizes. Supported for PNG, JPEG, and PDF exports. PPTX ignores this parameter.
1 <= x <= 4PDF only: produce a raster-only PDF with no searchable text, vector elements, or hyperlinks.
When True (default), block up to ~20s for the export to finish before returning an in-progress handle. When False, return status='in_progress' with a task_id immediately — poll /canvases/{id}/export-status until terminal.
Successful Response
Response for POST /canvases/{id}/export.
Carries one of two shapes depending on status:
completed — url is the signed download URL.in_progress — task_id lets the caller poll
GET /canvases/{id}/export-status?task_id=... until terminal.Prefixed canvas identifier for the canvas that was exported.
^cvs_[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$"cvs_01HT9WK8N3M2J4A5Z6P7Q8R9TV"
Full URL to open the source canvas in the Moda editor.
The format of the exported file (e.g. 'png', 'pdf').
completed when url is set, or in_progress when polling is required.
Signed download URL for the exported file (set when status='completed'). Expires in 7 days.
Export task ID set when status='in_progress'; poll the export-status endpoint with it.
Suggested poll interval when status='in_progress'.
Total page count for the source canvas (echoed for client convenience).