Skip to main content
POST
/
canvases
/
{canvas_id}
/
share
Make a canvas public
curl --request POST \
  --url https://api.moda.app/v1/canvases/{canvas_id}/share \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "permission": "view_remix",
  "wait_for_thumbnail": true,
  "thumbnail_timeout_seconds": 30
}
'
{
  "share_url": "<string>",
  "share_token": "<string>",
  "public_enabled": true,
  "permission": "<string>",
  "thumbnail_ready": true
}

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.

Authorizations

Authorization
string
header
required

API key from Settings > Developer > REST API

Headers

Moda-Version
enum<string>
default: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.

Available options:
2026-04-12,
2026-05-01
Example:

"2026-05-01"

Path Parameters

canvas_id
string
required

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.

Pattern: ^cvs_[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$
Example:

"cvs_01HT9WK8N3M2J4A5Z6P7Q8R9TV"

Body

application/json
permission
enum<string>
default:view_remix

Permission level for the share link. 'view' allows anyone with the link to view the canvas. 'view_remix' (default) allows anyone to view and create a remix copy of the canvas.

Available options:
view,
view_remix
wait_for_thumbnail
boolean
default:true

If true (default), the request blocks until the canvas thumbnail has been generated. This ensures the share URL will unfurl properly with a preview image when shared on social media or messaging platforms. If false, returns immediately after making the canvas public (thumbnail generation runs in the background).

thumbnail_timeout_seconds
integer
default:30

Maximum seconds to wait for thumbnail generation when wait_for_thumbnail=true. If the timeout is reached, the response is returned with thumbnail_ready=false. Min 1, max 120. Ignored when wait_for_thumbnail=false.

Required range: 1 <= x <= 120

Response

Successful Response

share_url
string
required

Public URL for viewing the canvas. Share this link to give anyone view access.

share_token
string
required

Unique token identifying this share link.

public_enabled
boolean
required

Whether public access is currently enabled.

permission
string
required

Permission level: 'view' (view only) or 'view_remix' (view and remix).

thumbnail_ready
boolean
required

Whether the canvas thumbnail is available. When true, the share URL will show a preview image when unfurled. When false, a generic preview may be shown instead.