Skip to main content
POST
Get an embed token for one of your users

Authorizations

apiKey
string
query
required

apiKey MUST be supplied within the request body instead of query

Body

application/json

POST /v1/api/projects/embed-token Request body

projectId
string<uuid>
required

The Upsolve project the user is signed into. Shown on a workspace's Deploy page.

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})$
organization
object
required

Your customer, as a project organization.

user
object
required

The person signing in.

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
Example:

"up_embed_************"

organizationId
string<uuid>

Your Upsolve organization's UUID — the org that owns the API key and project. This is NOT a project organization: do not pass a value registered via /projects/register-organization, and do not pass an externalId (only projectOrganizationId accepts those). Omit it when using an org-bound API key — the org is read from the key and any value sent here is ignored. Required only for user-scoped API keys (created under Account → Developer settings) and for the Supabase JWT path, where the org is ambiguous and membership is verified against 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})$
Example:

"123e4567-e89b-12d3-a456-426614174000"

expiration
enum<string>

How long the token lives: one of 5m, 15m, 30m, 1h, 2h, 6h, 12h, 24h, 7d. Defaults to 1h.

Available options:
5m,
15m,
30m,
1h,
2h,
6h,
12h,
24h,
7d

Response

POST /v1/api/projects/embed-token Positive response

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