docs-mintlify/embedding/iframe/creator-mode.mdx
Creator Mode lets you embed the entire Cube application into your product so users can create and modify their own dashboards directly within the embedded experience.
<Note> Creator Mode requires [Signed embedding](/embedding/iframe/auth/signed). Private embedding is not supported. </Note>In Creator Mode, you embed the full Cube application instead of individual dashboards or chat interfaces. This provides users with the complete Cube experience, including the ability to:
To enable Creator Mode, pass creatorMode: true to the Generate Session API when generating an embed session. Optionally, pass embedTenantName to scope content to a specific embed tenant — by default, creator mode uses the current tenant's name.
embedTenantName is an optional parameter on the Generate Session API used to scope all content (dashboards, workbooks, etc.) that users create within the embedded application to a specific embed tenant. This ensures proper data isolation in multi-tenant scenarios.
When embedTenantName is omitted in creator mode, the session defaults to the current tenant, so most setups don't need to set it.
The value must be lowercase, start with a letter, end with a letter or number, and only contain letters, numbers, or hyphens (length 5–36).
To use Creator Mode and embed the app:
creatorMode: true for app embeddings/embed/d/{deploymentId}/app?session={sessionId} and displayed in the iframeCreator mode is enabled automatically when the embed type is "app"; no additional configuration is needed.
const API_KEY = "YOUR_API_KEY";
const DEPLOYMENT_ID = 32;
const session = await fetch(
"https://your-account.cubecloud.dev/api/v1/embed/generate-session",
{
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: `Api-Key ${API_KEY}`,
},
body: JSON.stringify({
deploymentId: DEPLOYMENT_ID,
externalId: "[email protected]",
creatorMode: true,
// Optional — defaults to the current tenant when omitted:
embedTenantName: "acme-corp",
}),
},
);
const data = await session.json();
const sessionId = data.sessionId;
Use the session ID to embed the full Cube application:
<iframe
title="Cube App"
src="https://your-tenant.cubecloud.dev/embed/d/{deploymentId}/app?session={sessionId}"
width="100%"
height="800"
></iframe>
Replace {deploymentId} with your deployment ID and {sessionId} with the session ID returned from the Generate Session API.
For a complete working example of embedding, including Creator Mode, check out the cube-embedding-demo repository. This demo application provides:
You can clone the repository, configure it with your Cube credentials, and run it locally to test embedding functionality or use it as a reference implementation for your own application.