Get Studio Template
Retrieve a specific studio template by ID
Retrieve a specific studio template by its ID, including all available modifications and template metadata.
Endpoint#
https://api.orshot.com/v1/studio/templates/:templateIdURL Parameters#
| Parameter | Type | Required | Description |
|---|---|---|---|
templateId | Integer | Yes | The unique ID of the template to fetch |
Request#
await fetch("https://api.orshot.com/v1/studio/templates/123", {
method: "GET",
headers: {
"Content-Type": "application/json",
Authorization: "Bearer <ORSHOT_API_KEY>",
},
});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 |
tags | Array | Array of tag strings assigned to 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) |
modifications | Array | Array of available modifications for parameters |
modifications_json | Object | Key-value map of parameter IDs to default values |
pages_data | Array | Array of pages (for multi-page templates) |
Modification Fields#
Each modification object contains:
| Field | Type | Description |
|---|---|---|
key | String | Unique key for the modification. For multi-page templates this is prefixed, e.g. page1@title |
id | String | Same as key |
type | String | Type of modification (text, imageUrl, videoUrl, backgroundColor, fill, color, stroke) |
description | String | Human-readable description, e.g. "Title — Text content" or "Image URL" when no element name is set |
help_text | String | Same as description |
element_name | String | Layer name of the element in the editor (only present when the element has a name) |
example | String | Default/example value for the field |
page_number | Integer | 1-based page number this modification belongs to |
page_id | String | Stable UUID of the page this modification belongs to — use this to reliably map modifications to pages after reorder |
Page Fields#
Each entry in pages_data contains:
| Field | Type | Description |
|---|---|---|
page_id | String | Stable UUID for the page |
name | String | Display name of the page |
thumbnail_url | String | URL to the thumbnail image of the page |
Rate Limits#
This endpoint is rate limited to 30 requests per minute per API key. Rate limit headers are included in every response:
| Header | Description |
|---|---|
RateLimit-Limit | Maximum requests per minute |
RateLimit-Remaining | Remaining requests in the current window |
RateLimit-Reset | Seconds until the rate limit window resets |
Retry-After | Seconds to wait (only on 429 responses) |
Error Responses#
| Code | Description |
|---|---|
| 400 | Missing templateId parameter |
| 403 | Missing or invalid API key |
| 403 | Studio template not found in workspace |
Ready to automate?
Start rendering images, PDFs and videos from your templates in under 2 minutes. Free plan, no credit card.
Get your API key- Image, PDF and video generation via API
- Visual editor with AI and smart layouts
- Zapier, Make, MCP and 50+ integrations
- White-label embed for your own app
- 60 free renders — no credit card required