Skip to main content
PUT
Make your own passkey-protected link to a canvas …

Authorizations

authorization
string
header
required

Path Parameters

projectId
string<uuid>
required

The project in the URL. The caller's project user is read from it.

Pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$
workspaceId
string<uuid>
required

PUT /v2/api/projects/:projectId/workspaces/:workspaceId/canvases/:canvasId/link Parameter

Pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$
canvasId
string<uuid>
required

PUT /v2/api/projects/:projectId/workspaces/:workspaceId/canvases/:canvasId/link Parameter

Pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$

Body

application/json

PUT /v2/api/projects/:projectId/workspaces/:workspaceId/canvases/:canvasId/link Request body

apiKey
string

Upsolve API key, generated under Account → Developer settings in the Upsolve Hub. Keys are user-scoped: pass organizationId alongside the key to select which org to act on.

Minimum string length: 1
organizationId
string

The ID of the organization. Required when using Supabase JWT authentication.

connectionId
string

The ID of the connection a guest has access to

forProjectUserId
string<uuid>

With an organization credential: the owner of the canvas whose link this is (the Playground's previewed user). Omitted, it is the builders' link on a canvas no project user owns, which can only show saved rows. A project-user token always acts on its own link.

Pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$
mode
enum<string>

What a visitor sees: snapshot (the charts' saved rows), live (every chart run as you) or both. Defaults to snapshot when making a link. Live and both need a passkey.

Available options:
live,
snapshot,
both
passkey
string

The passkey a visitor must type, 6 to 72 bytes. Required for a live or both link; optional on a snapshot one. On an existing link, sets a new one. Never returned.

Minimum string length: 6
removePasskey
boolean

Remove the passkey, so anyone with the address can open the link. A snapshot link's alone.

version
integer

The saved version of the canvas the link shows. Defaults to the latest saved version when making a link; a canvas with none must save one first.

Required range: x <= 9007199254740991
aiChat
boolean

Whether the link offers its visitors a read-only AI chat about the canvas, run as the link's owner. Only on a live or both link, which has an owner and a passkey. Off when making a link unless set; absent leaves it as it is.

Response

PUT /v2/api/projects/:projectId/workspaces/:workspaceId/canvases/:canvasId/link Positive response

status
string
required
Allowed value: "success"
data
object
required