This is the full developer documentation for Templated
# Get Account Information
> Learn how to retrieve your account information using the Templated API.
This endpoint allows you to retrieve information about your account, including your email, name, API usage statistics, and quota details.
## Sample Request
[Section titled “Sample Request”](#sample-request)
Here’s a sample request to get your account information:
ENDPOINT
```js
GET /v1/account
```
```js
fetch('https://api.templated.io/v1/account', {
method: 'GET',
headers: {
'Authorization': `Bearer ${API_KEY}`
}
})
```
## Response
[Section titled “Response”](#response)
The endpoint returns a JSON object with your account details.
```json
{
"email": "user@example.com",
"name": "John Doe",
"apiUsage": 5400,
"apiQuota": 10000,
"usagePercentage": 54,
"plan": "Scale"
}
```
### Response Fields
[Section titled “Response Fields”](#response-fields)
email `string`\
The email address associated with your account.
name `string`\
Your account name.
apiUsage `integer`\
The current number of API credits you’ve used.
apiQuota `integer`\
Your total API credits quota (monthly if you have a paid plan).
usagePercentage `integer`\
The percentage of your API quota that has been used.
plan `string`\
Your current plan.
# Authentication
Templated uses API keys to allow access to the API.\
To get started, create a free account [here](https://app.templated.io/signup).\
Once logged in, you can find your API key in the [API Key](https://app.templated.io/api-key) tab of your dashboard.\
This API key will give you full access to all API endpoints.
## How to find your API key
[Section titled “How to find your API key”](#how-to-find-your-api-key)
Follow these simple steps to locate your API key in the Templated dashboard:
1. **Log in to your Templated account**
Go to [app.templated.io](https://app.templated.io) and sign in with your credentials.
2. **Click on “API Key” in the sidebar**
In the left sidebar navigation, look for the **API Key** menu item and click on it.

3. **Copy your API Key**
Your API key will be displayed on the page. Click the **copy button** to copy it to your clipboard.

Keep Your API Key Secure
Your API key provides full access to your account. Never share it publicly or commit it to version control. Store it securely in environment variables.
## Authorization Header
[Section titled “Authorization Header”](#authorization-header)
The API expects the API key to be included in **all** requests in the `Authorization` header as a `Bearer` token:
AUTHORIZATION HEADER
```php
Authorization: Bearer API_KEY
```
## Base URL
[Section titled “Base URL”](#base-url)
This is the base URL that all requests to the API should be made to:
BASE URL
```php
https://api.templated.io
```
In the next steps we will see sample code to create, retrieve and list renders and templates usign the API.
# Advanced Features
> Learn advanced techniques for customizing and enhancing your embedded editor integration.
Take your embedded editor integration to the next level with these advanced features and customization options.
## URL Parameters for Customization
[Section titled “URL Parameters for Customization”](#url-parameters-for-customization)
The embedded editor supports numerous URL parameters to customize behavior and appearance. These parameters can be added to your embed URL to control the editor’s functionality.
### Basic Configuration
[Section titled “Basic Configuration”](#basic-configuration)
embed `string` (required)\
Your embed configuration ID from the dashboard.
preview `boolean`\
Launch in preview mode (canvas-only). Default: false.
zoom `number`\
Initial zoom level (10-100). 50 equals 100% scale. Auto-calculated if not set.
clone `boolean`\
Create a clone instead of editing the original template. Default: false.
copy `boolean`\
Alternative to clone parameter. Default: false.
### Permission Controls
[Section titled “Permission Controls”](#permission-controls)
allow-rename `boolean`\
Allow users to rename templates. Default: true.
allow-save `boolean`\
Enable the save functionality. Default: true.
allow-download `boolean`\
Enable template download. Default: true.
allow-resize `boolean`\
Allow users to resize the template dimensions. Default: false.
allow-create-template `boolean`\
Enable creating new templates from the editor. Default: true.
### Layer Controls
[Section titled “Layer Controls”](#layer-controls)
allow-layer-move `boolean`\
Allow moving layers around the canvas. Default: false.
allow-layer-resize `boolean`\
Enable resizing of individual layers. Default: false.
allow-layer-select `boolean`\
Allow selecting layers. Default: false.
allow-layer-unlock `boolean`\
Allow users to unlock locked layers. Default: false.
allow-layer-rename `boolean`\
Enable renaming of layers. Default: false.
allow-text-edition `boolean`\
Allow double-click text editing. Default: false.
### UI Customization
[Section titled “UI Customization”](#ui-customization)
hide-sidebar `boolean`\
Hide the left sidebar panel. Default: false.
hide-header `boolean`\
Hide the top header bar. Default: false.
hide-layers-panel `boolean`\
Hide the layers panel. Default: false.
hide-language-toggle `boolean`\
Hide the language switcher. Default: false.
### Data and Content
[Section titled “Data and Content”](#data-and-content)
metadata `string`\
Base64-encoded JSON with custom metadata for webhooks.
layers `string`\
Base64-encoded JSON with initial layer data.
folder `string`\
Limit template selection to a specific folder ID.
image-url `string`\
URL of an image to load as background or layer.
w `number`\
Custom template width in pixels.
h `number`\
Custom template height in pixels.
### Integration Options
[Section titled “Integration Options”](#integration-options)
webhook-url `string`\
Override the default webhook URL for this session.
external-id `string`\
Session identifier that tags all created content (templates, uploads, fonts, renders) and enables persistent sessions.
move-to-folder `string`\
Automatically move saved templates to this folder ID.
load-uploads `boolean`\
Load user uploads in the assets panel. Default: false.
launch-mode `string`\
Control how the editor launches. Options: ‘account’, ‘gallery’, ‘blank’.
### Example URL with Multiple Parameters
[Section titled “Example URL with Multiple Parameters”](#example-url-with-multiple-parameters)
Fully Customized Embed
```html
```
## Custom Metadata
[Section titled “Custom Metadata”](#custom-metadata)
Pass custom data through the embed that will be sent to your webhooks, enabling you to track user context and trigger specific workflows.
### Encoding Metadata
[Section titled “Encoding Metadata”](#encoding-metadata)
Metadata must be base64-encoded JSON and passed as a URL parameter:
* JavaScript
Encoding Metadata
```js
// Your custom metadata
const metadata = {
userId: "user-123",
projectId: "project-456",
clientId: "client-789",
workflowType: "marketing_campaign",
campaignId: "campaign-001"
};
// Encode as base64
const encodedMetadata = btoa(JSON.stringify(metadata));
// Create embed URL with metadata
const embedUrl = `https://app.templated.io/editor?embed=${configId}&metadata=${encodedMetadata}`;
// Update embed element
document.getElementById('editor-embed').src = embedUrl;
```
* Python
Encoding Metadata in Python
```python
import json
import base64
# Your custom metadata
metadata = {
"userId": "user-123",
"projectId": "project-456",
"clientId": "client-789",
"workflowType": "marketing_campaign",
"campaignId": "campaign-001"
}
# Encode as base64
encoded_metadata = base64.b64encode(
json.dumps(metadata).encode('utf-8')
).decode('utf-8')
# Create embed URL
embed_url = f"https://app.templated.io/editor?embed={config_id}&metadata={encoded_metadata}"
```
* PHP
Encoding Metadata in PHP
```php
'user-123',
'projectId' => 'project-456',
'clientId' => 'client-789',
'workflowType' => 'marketing_campaign',
'campaignId' => 'campaign-001'
];
// Encode as base64
$encodedMetadata = base64_encode(json_encode($metadata));
// Create embed URL
$embedUrl = "https://app.templated.io/editor?embed={$configId}&metadata={$encodedMetadata}";
?>
```
* React
Encoding Metadata in React
```jsx
import React, { useState, useEffect } from 'react';
function TemplateEmbed({ configId, user, project }) {
const [embedUrl, setEmbedUrl] = useState('');
useEffect(() => {
// Your custom metadata
const metadata = {
userId: user.id,
projectId: project.id,
clientId: user.clientId,
workflowType: "marketing_campaign",
campaignId: project.campaignId,
timestamp: new Date().toISOString()
};
// Encode as base64
const encodedMetadata = btoa(JSON.stringify(metadata));
// Create embed URL with metadata
const url = `https://app.templated.io/editor?embed=${configId}&metadata=${encodedMetadata}`;
setEmbedUrl(url);
}, [configId, user, project]);
return (
);
}
export default TemplateEmbed;
```
### Dynamic Metadata Generation
[Section titled “Dynamic Metadata Generation”](#dynamic-metadata-generation)
Generate metadata dynamically based on user context:
Dynamic Metadata with External ID Example
```js
function generateEmbedWithMetadata(user, project) {
const metadata = {
userId: user.id,
userName: user.name,
userEmail: user.email,
projectId: project.id,
projectName: project.name,
timestamp: new Date().toISOString(),
source: 'project_dashboard',
permissions: user.permissions,
subscription: user.subscription.plan
};
const encodedMetadata = btoa(JSON.stringify(metadata));
// Use external ID to maintain session continuity
const externalId = `user-${user.id}-project-${project.id}`;
return `https://app.templated.io/editor?embed=${EMBED_CONFIG_ID}&metadata=${encodedMetadata}&external-id=${externalId}`;
}
// Usage
const embedUrl = generateEmbedWithMetadata(currentUser, currentProject);
document.getElementById('template-editor').src = embedUrl;
```
## Pre-populate Template Data
[Section titled “Pre-populate Template Data”](#pre-populate-template-data)
Launch the editor with custom layer data to pre-populate templates with user-specific content.
### Layer Data Structure
[Section titled “Layer Data Structure”](#layer-data-structure)
Layer Data Format
```js
const layerData = {
"text-layer-name": {
text: "Custom text content",
color: "#FF0000",
font_size: "24px"
},
"image-layer-name": {
image_url: "https://example.com/user-photo.jpg"
},
"shape-layer-name": {
fill: "#0066CC",
stroke: "#003366"
}
};
// Encode layer data
const encodedLayers = btoa(JSON.stringify(layerData));
```
### Template with Custom Data
[Section titled “Template with Custom Data”](#template-with-custom-data)
Pre-populated Template Launch
```html
```
### Dynamic Layer Population Examples
[Section titled “Dynamic Layer Population Examples”](#dynamic-layer-population-examples)
* User Profile Template
User Profile Template
```js
function createUserProfileTemplate(user) {
const layers = {
"user-name": {
text: user.fullName,
color: "#333333"
},
"user-title": {
text: user.jobTitle,
color: "#666666"
},
"profile-photo": {
image_url: user.profilePicture
},
"company-logo": {
image_url: user.company.logo
},
"background-color": {
fill: user.company.brandColor
}
};
const encodedLayers = btoa(JSON.stringify(layers));
return `https://app.templated.io/editor/${USER_PROFILE_TEMPLATE_ID}?embed=${EMBED_CONFIG_ID}&layers=${encodedLayers}`;
}
```
* Marketing Campaign
Campaign Template
```js
function createCampaignTemplate(campaign) {
const layers = {
"campaign-title": {
text: campaign.title,
color: campaign.theme.primaryColor
},
"campaign-description": {
text: campaign.description,
font_size: "16px"
},
"hero-image": {
image_url: campaign.heroImage
},
"cta-button": {
text: campaign.ctaText,
background: campaign.theme.buttonColor
},
"brand-logo": {
image_url: campaign.brand.logo
}
};
const encodedLayers = btoa(JSON.stringify(layers));
return `https://app.templated.io/editor/${CAMPAIGN_TEMPLATE_ID}?embed=${EMBED_CONFIG_ID}&layers=${encodedLayers}`;
}
```
* React Component
Dynamic Layer Population in React
```jsx
import React, { useState, useEffect, useMemo } from 'react';
function DynamicTemplateEditor({
templateId,
configId,
templateType,
userData,
campaignData
}) {
const [embedUrl, setEmbedUrl] = useState('');
// Generate layers based on template type
const layerData = useMemo(() => {
switch (templateType) {
case 'user-profile':
return {
"user-name": {
text: userData.fullName,
color: "#333333"
},
"user-title": {
text: userData.jobTitle,
color: "#666666"
},
"profile-photo": {
image_url: userData.profilePicture
},
"company-logo": {
image_url: userData.company?.logo
},
"background-color": {
fill: userData.company?.brandColor || "#f0f0f0"
}
};
case 'marketing-campaign':
return {
"campaign-title": {
text: campaignData.title,
color: campaignData.theme?.primaryColor || "#000000"
},
"campaign-description": {
text: campaignData.description,
font_size: "16px"
},
"hero-image": {
image_url: campaignData.heroImage
},
"cta-button": {
text: campaignData.ctaText,
background: campaignData.theme?.buttonColor || "#007bff"
},
"brand-logo": {
image_url: campaignData.brand?.logo
}
};
default:
return {};
}
}, [templateType, userData, campaignData]);
useEffect(() => {
if (Object.keys(layerData).length > 0) {
const encodedLayers = btoa(JSON.stringify(layerData));
const url = `https://app.templated.io/editor/${templateId}?embed=${configId}&layers=${encodedLayers}`;
setEmbedUrl(url);
}
}, [templateId, configId, layerData]);
return (
);
}
export { RenderEditModal, RenderListItem };
```
## Template Filtering by Folder
[Section titled “Template Filtering by Folder”](#template-filtering-by-folder)
Limit template selection to specific folders:
Folder-filtered Templates
```html
```
## Editor Event Monitoring
[Section titled “Editor Event Monitoring”](#editor-event-monitoring)
Monitor Editor Events
```js
class EditorMonitor {
constructor(embedElement) {
this.embed = embedElement;
this.setupEventListeners();
}
setupEventListeners() {
// Monitor load events
this.embed.addEventListener('load', () => {
console.log('Editor loaded successfully');
this.trackEvent('editor_loaded');
});
// Monitor errors
this.embed.addEventListener('error', (e) => {
console.error('Editor failed to load:', e);
this.trackEvent('editor_error', { error: e.message });
this.showFallback();
});
}
trackEvent(eventName, data = {}) {
// Send to your analytics
analytics.track(eventName, {
...data,
timestamp: new Date().toISOString(),
embedConfigId: this.getConfigId()
});
}
showFallback() {
// Show fallback UI when editor fails to load
const fallback = document.createElement('div');
fallback.className = 'editor-fallback';
fallback.innerHTML = `
Editor temporarily unavailable
Please try refreshing the page or contact support.
`;
this.embed.parentNode.replaceChild(fallback, this.embed);
}
getConfigId() {
const url = new URL(this.embed.src);
return url.searchParams.get('embed');
}
}
// Usage
const editorEmbed = document.getElementById('template-editor');
const monitor = new EditorMonitor(editorEmbed);
```
Best Practices for Advanced Features
**Security:**
* Always validate metadata on your server
* Sanitize user inputs before encoding
* Use HTTPS for all embed URLs
**Performance:**
* Implement lazy loading for multiple editors
* Preload resources when appropriate
* Monitor and optimize embed load times
**User Experience:**
* Provide loading states and error fallbacks
* Implement responsive design
* Test across different devices and browsers
# Embed Configuration
> Learn how to configure your embed settings for the Templated Editor.
Configure your embedded editor settings to match your brand and control user permissions. Access these settings in your Templated dashboard under [Embed Setup](https://app.templated.io/embed).
## Basic Configuration
[Section titled “Basic Configuration”](#basic-configuration)
### Domain Settings
[Section titled “Domain Settings”](#domain-settings)
Control which domains are allowed to embed the editor.

Domain\
The domain where your embed will be displayed. Must include protocol (https\:// or http\://).
Allow Development Environment `boolean`\
Enable this to test the embed on localhost or local development environments.
Example Domain Configuration
```html
https://yourdomain.com
```
Development Mode
Enable “Allow development environment” to test your embed on `localhost` during development. This setting doesn’t affect your production domain.
### Branding
[Section titled “Branding”](#branding)
Customize the look and feel of the editor with your branding.

Logo URL\
Your company logo displayed in the top-left corner. Ideal size: 100x100px. Supports PNG, JPG, and GIF.
Logo Link\
Optional URL where users are redirected when clicking your logo. Must start with https\:// or http\://.
Accent Color\
Hex color code for buttons, links, and interface elements. Default: #1677ff.
Custom Loader\
Custom loading animation while the editor loads. Ideal size: 128x128px. Supports GIF animations. Default: Templated’s default loader.
Example Branding Setup
```html
Logo URL: https://yourdomain.com/logo.png
Logo Link: https://yourdomain.com/dashboard
Accent Color: #FF6B35
```
## User Permissions
[Section titled “User Permissions”](#user-permissions)
Control what actions users can perform in the embedded editor.

### Basic Actions
[Section titled “Basic Actions”](#basic-actions)
Allow Rename\
Let users change template names. Default: true.
Allow Save\
Enable the save button for users. Default: true.
Allow Resize\
Allow users to resize templates. Default: false.
### Download Options
[Section titled “Download Options”](#download-options)
Allow Download\
Enable download functionality. Default: true.
Download Formats\
Available formats when download is enabled. Options: JPG, PNG, PDF, MP4.
### Layer Permissions
[Section titled “Layer Permissions”](#layer-permissions)
Allow Layer Move\
Let users move layers around the canvas. Default: false.
Allow Layer Resize\
Enable resizing of individual layers. Default: false.
Allow Layer Select\
Allow selecting layers. Default: false.
Allow Layer Unlock\
Allow users to unlock locked layers. Default: false.
Allow Layer Rename\
Enable renaming of layers. Default: false.
Allow Text Edition\
Allow double-click text editing. Default: false.
### Template Management
[Section titled “Template Management”](#template-management)
Allow Create Template\
Enable creating new templates from the editor. Default: true.
## Launch Modes
[Section titled “Launch Modes”](#launch-modes)
[Launch Modes ](/docs/embed/launch-modes/)Learn how to choose how the editor initializes for your users.
## Webhook Integration
[Section titled “Webhook Integration”](#webhook-integration)
[Webhook Integration ](/docs/embed/webhooks/)Learn how to receive POST requests when users take actions in the editor.
## Testing Your Configuration
[Section titled “Testing Your Configuration”](#testing-your-configuration)
1. **Enable development mode** to test on localhost
2. **Copy your embed code** from the dashboard
3. **Test all permissions** you’ve configured
4. **Verify webhook delivery** if configured
5. **Check branding appearance** matches your design
# Implementation Examples
> Practical examples for integrating the Templated Editor.
Here you can find some examples of the most common use cases for integrating the Templated Editor in your application.
## Basic Modal Integration
[Section titled “Basic Modal Integration”](#basic-modal-integration)
* JavaScript
Simple Editor Modal
```js
function openTemplateEditor(userId) {
const metadata = {
userId: userId,
timestamp: new Date().toISOString()
};
const encodedMetadata = btoa(JSON.stringify(metadata));
const embedUrl = `https://app.templated.io/editor?embed=YOUR_CONFIG_ID&metadata=${encodedMetadata}`;
const modal = document.createElement('div');
modal.innerHTML = `
);
}
// Custom hook for template cloning
function useTemplateClone(configId) {
const [isCloning, setIsCloning] = useState(false);
const [clonedTemplates, setClonedTemplates] = useState([]);
const cloneTemplate = (templateId, userId, customizations = {}) => {
setIsCloning(true);
return new Promise((resolve, reject) => {
const metadata = {
userId,
mode: 'clone',
templateId,
customizations,
timestamp: new Date().toISOString()
};
const encodedMetadata = btoa(JSON.stringify(metadata));
const embedUrl = `https://app.templated.io/editor/${templateId}?embed=${configId}&metadata=${encodedMetadata}`;
const popup = window.open(embedUrl, 'template-clone', 'width=1200,height=800');
const messageHandler = (event) => {
if (event.origin === 'https://app.templated.io' && event.data.type === 'template_saved') {
popup.close();
setIsCloning(false);
setClonedTemplates(prev => [...prev, event.data.template]);
resolve(event.data.template);
window.removeEventListener('message', messageHandler);
}
};
window.addEventListener('message', messageHandler);
const checkClosed = setInterval(() => {
if (popup.closed) {
clearInterval(checkClosed);
setIsCloning(false);
window.removeEventListener('message', messageHandler);
reject(new Error('Popup closed by user'));
}
}, 1000);
});
};
return {
isCloning,
clonedTemplates,
cloneTemplate
};
}
export {
TemplateCloneButton,
TemplateCloneModal,
TemplateGallery,
useTemplateClone
};
```
Implementation Tips
**Start Simple:** Begin with a basic modal implementation and gradually add features.
**Test Thoroughly:** Always test your webhook endpoints and metadata encoding.
**Security First:** Validate all metadata on your server before processing.
**User Experience:** Provide clear feedback and loading states for users.
# Form Mode
> Canvas + auto-generated form panel for end-users to customize template layers without the full editor.
Form Mode displays a canvas alongside an auto-generated form panel. End-users fill in text, images, and colors through the form; the canvas updates in real-time. Designed for embedding via iframe when you want users to customize templates without the full editor UI.
Check out how it looks like:

## Enable Form Mode
[Section titled “Enable Form Mode”](#enable-form-mode)
Use the form base path: `/editor/form/{TEMPLATE_ID}?embed={CONFIG_ID}`.
Basic Form Embed
```html
```
### URL parameters
[Section titled “URL parameters”](#url-parameters)
#### Form Configuration
[Section titled “Form Configuration”](#form-configuration)
* `form-panel-position` (left|right) — form panel position, default `right`
Shared parameters
All Preview Mode URL parameters also work in Form Mode — including `zoom`, `layers`, `metadata`, `clone`, `allow-*`, `hide-*`, and integration options. The download button visibility and allowed formats are controlled by the existing `allow-download` parameter and the **Download Formats** setting in your embed configuration dashboard. See [URL Parameters Reference](/docs/embed/url-parameters/).
Example with flags:
```html
```
## Layer visibility
[Section titled “Layer visibility”](#layer-visibility)
Lock layers in the editor to hide them from the form.\
Unlocked layers automatically appear as form fields.\
This lets you control exactly which layers end-users can customize.
## Layer types
[Section titled “Layer types”](#layer-types)
Each layer type renders a different set of form controls:
| Layer type | Form controls |
| ---------- | --------------------------------------- |
| Text | Text input + color picker |
| Image | URL input |
| Shape | Fill color picker + stroke color picker |
| QR Code | Text input for data |
| Barcode | Text input for data |
| Rating | Number input |
## Runtime control (postMessage)
[Section titled “Runtime control (postMessage)”](#runtime-control-postmessage)
After the iframe loads, you can control Form Mode at runtime using `postMessage`. The editor will also send events back.
### Messages you can send to the editor
[Section titled “Messages you can send to the editor”](#messages-you-can-send-to-the-editor)
Parent → Editor
```js
// Toggle form mode on or off
iframe.contentWindow.postMessage({
type: 'SET_FORM_MODE',
enabled: true
}, '*');
// Change the form panel position
iframe.contentWindow.postMessage({
type: 'SET_FORM_PANEL_POSITION',
position: 'left' // 'left' | 'right'
}, '*');
```
### Events the editor sends back
[Section titled “Events the editor sends back”](#events-the-editor-sends-back)
Editor → Parent
```js
window.addEventListener('message', (event) => {
// Optional: verify origin: if (event.origin !== 'https://app.templated.io') return;
const msg = event.data;
switch (msg?.type) {
// Form mode toggled
case 'FORM_MODE_UPDATED':
console.log('Form mode:', msg.enabled, 'Success:', msg.success);
break;
// Panel position changed
case 'FORM_PANEL_POSITION_UPDATED':
console.log('Panel position:', msg.position, 'Success:', msg.success);
break;
// A form field value changed
case 'FORM_VALUES_CHANGED':
// msg.data contains { layerName: { prop: value } }
console.log('Form values changed:', msg.data);
break;
// User clicked the render button in the form
case 'FORM_RENDER_REQUESTED':
console.log('Render requested:', msg.format, msg.templateId);
break;
}
});
```
## Mobile
[Section titled “Mobile”](#mobile)
On screens narrower than 1024px, the form panel automatically stacks below the canvas for a mobile-friendly layout.
## Complete example
[Section titled “Complete example”](#complete-example)
Comprehensive working example
```html
```
## See also
[Section titled “See also”](#see-also)
* [Preview Mode ](/docs/embed/preview-mode/)
* [Advanced ](/docs/embed/advanced/)
# The Embedded Editor
> Learn how to integrate Templated's editor directly into your website or application.
The Embedded Editor allows you to integrate Templated’s powerful template editing capabilities directly into your website or application.\
Your users can create, edit, and customize templates without leaving your platform.\
You can check a demo [here](https://templated.io/embed-image-editor-in-your-app/)
## Key Features
[Section titled “Key Features”](#key-features)
Simple Integration
Embed the editor with a simple HTML embed tag. No complex setup required.
Customizable
Customize colors, logos, permissions, and behavior to match your brand.
Launch Modes
Start with your templates, template gallery, or blank canvas.
Webhook
Receive real-time notifications when users save or download templates.
## How to Embed the Editor
[Section titled “How to Embed the Editor”](#how-to-embed-the-editor)
1. **Navigate to the Embedded Editor settings**
Log in to your Templated dashboard and click on **Embedded Editor** in the sidebar.

2. **Configure your embed settings**
Set up your domain, branding, permissions, and launch behavior using the configuration panels.

3. **Copy the embed code**
Click the **Copy code** button to copy the HTML `