---
title: "Make a canvas public"
method: POST
path: "/canvases/{canvas_id}/share"
tags: ["canvases"]
---

# Make a canvas public

`POST /canvases/{canvas_id}/share`

Create a public share link for a canvas. Anyone with the link can view the canvas. By default, the request blocks until a thumbnail has been generated so the share URL will unfurl properly when shared on social media or messaging platforms. Set `wait_for_thumbnail=false` to return immediately.

## Path parameters

- `canvas_id` string, 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). Both are permanent, supported inputs.

## Headers

- `Moda-Version` '2026-04-12' | '2026-05-01'

## Request body

- MakeCanvasPublicRequest
  - `permission` 'view' | '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.
  - `wait_for_thumbnail` boolean — 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 — 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.

## Response `200`

Successful Response

- MakeCanvasPublicResponse
  - `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.

## Other responses

- `401` — Authentication required.
- `403` — Permission denied for this scope.
- `404` — Resource not found.
- `409` — Conflict (idempotency / resource state).
- `422` — Request validation failed.
- `429` — Rate limit exceeded.
- `500` — Internal error.

---

[API](https://skmtc.net/moda/apis/moda-public-api.md) · [All operations](https://skmtc.net/moda/apis/moda-public-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/moda/moda-public-api/versions/b34cb4cca59e/schema)
