GET: List Studio Templates
Retrieve studio templates from your workspace with pagination
List all studio templates in your workspace with pagination support.
Endpoint
GET /templates/all
Returns templates with pagination support.
https://api.orshot.com/v1/studio/templates/all?page=1&limit=10Query Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
page | Integer | No | 1 | Page number (must be > 0) |
limit | Integer | No | 10 | Templates per page (max: 20, must be > 0) |
embedId | String | No* | - | Embed instance ID (for user-specific filtering) |
embedUserId | String | No* | - | User ID to filter templates for a specific user |
*Both embedId and embedUserId are required together for user-specific filtering.
Request Example
await fetch("https://api.orshot.com/v1/studio/templates/all?page=1&limit=10", {
method: "GET",
headers: {
"Content-Type": "application/json",
Authorization: "Bearer <ORSHOT_API_KEY>",
},
});Filtering by Embed User
To retrieve templates for a specific embed user, pass both embedId and embedUserId:
await fetch(
"https://api.orshot.com/v1/studio/templates/all?embedId=YOUR_EMBED_ID&embedUserId=user_123&page=1&limit=10",
{
method: "GET",
headers: {
"Content-Type": "application/json",
Authorization: "Bearer <ORSHOT_API_KEY>",
},
}
);This returns only templates belonging to the specified user. Without these parameters, the endpoint returns all workspace templates (including user-specific ones).
Response Example
{
"data": [
{
"id": 123,
"created_at": "2025-09-10T15:30:45.123Z",
"workspace_id": "workspace-uuid-456",
"user_id": "user-uuid-789",
"canvas_width": 1200,
"canvas_height": 630,
"updated_at": "2025-10-15T10:20:30.456Z",
"name": "Social Media Post",
"description": "Template for social media posts",
"thumbnail_url": "https://storage.orshot.com/thumbnails/template-123.png",
"embed_user_id": null,
"pages_data": [
{
"name": "Page 1",
"thumbnail_url": "https://storage.orshot.com/thumbnails/page-1.png"
}
],
"modifications": [
{
"key": "title",
"id": "title",
"type": "text",
"helpText": "Main heading text",
"example": "Hello World"
}
]
}
],
"pagination": {
"page": 1,
"limit": 10,
"total": 45,
"totalPages": 5
}
}Pagination Response Fields
| Field | Type | Description |
|---|---|---|
page | Integer | Current page number |
limit | Integer | Number of templates per page |
total | Integer | Total number of templates |
totalPages | Integer | Total number of available pages |
Template Response Fields
| Field | Type | Description |
|---|---|---|
id | Integer | Unique identifier for the template |
created_at | String | Timestamp when the template was created |
workspace_id | String | ID of the workspace the template belongs to |
user_id | String | ID of the user who created the template |
canvas_width | Number | Width of the template canvas in pixels |
canvas_height | Number | Height of the template canvas in pixels |
updated_at | String | Timestamp when the template was last updated |
name | String | Name of the template |
description | String | Description of the template |
thumbnail_url | String | URL to the template's thumbnail image |
embed_user_id | String | Internal ID of the embed user (null for workspace templates) |
pages_data | Array | Array of pages (for multi-page templates) |
modifications | Array | Array of available modifications for parameters |
Modification Fields
Each modification object contains:
| Field | Type | Description |
|---|---|---|
key | String | Unique key for the modification |
id | String | ID of the modification |
type | String | Type of modification (text, image) |
helpText | String | Description of what the field is for |
example | String | Example value for the field |
Error Responses
| Code | Description |
|---|---|
| 400 | Invalid page/limit parameters |
| 403 | Missing or invalid API key |
| 403 | No studio templates found in workspace |