Browse Templates
Paginated walk through the template tree: folders and templates in one
data.items[] list, folders first.
With no folder_id you get the root. To descend, take a folder's id from items[]
and repeat with ?folder_id=<id>; the path to the current folder arrives in
data.breadcrumbs, the folder itself in data.current_folder.
Pagination lives in data.current_page / last_page / per_page / total.
Required key permission: templates.read.
On this page(3)
Parameters
The inputs live inside the request line: fill in a value and you get a ready URL. Below are the type, whether it is required and the allowed values of every parameter.
- integerin queryoptional≥ 1
Page number, starting at
1. - integerin queryoptional1..100
Items per page,
1..100. Defaults to 15. - stringin queryoptional
Sort field. Defaults to
name.Allowed values - stringin queryoptional
Sort direction. Defaults to
asc.Allowed values - stringin queryoptionaluuid
Folder UUID. Omitted — the root is returned. The path to the current folder arrives in
data.breadcrumbs. - stringin queryoptional≤ 64 chars
Show only templates of services with this task type (the service
default_task_type), e.g.ttsfor every voiceover engine at once. Empty folders are hidden while filtering. - stringin queryoptional
Show only templates of this service. The code is a short latin string:
elevenlabs,heygen,lumimg,sfx,music; the ones available to you are listed byGET /usagein itsservice_codefield.
Possible responses
200Success. The payload is in data.
Success. The payload is in data.
{
"success": true,
"message": "Templates browsed",
"data": {
"items": [
{
"type": "template",
"id": "7e2a4c1d-8b3f-4a5e-9c6d-1f2e3a4b5c6d",
"name": "Narrator Voice (EN)",
"slug": null,
"service_key": "elevenlabs",
"service": {
"id": 3,
"code": "elevenlabs",
"name": "ElevenLabs",
"display_name": "ElevenLabs TTS",
"payg_access": "everyone",
"billing_mode": "pay_as_you_go",
"unit_asset_id": 5,
"unit_asset": {
"id": 5,
"code": "tts_units",
"kind": "unit",
"precision": 0,
"name": "TTS Units",
"deleted_at": null,
"created_at": "2026-01-10T09:00:00+00:00",
"updated_at": "2026-01-10T09:00:00+00:00"
},
"required_entitlement_id": null,
"units_per_call": null,
"units_per_char": 1,
"units_per_image": null,
"units_per_second": null,
"min_billable_chars": 1,
"lumcoin_per_token": 10,
"lumc_precision": 2,
"price_lumc_minor": null,
"unit_size": 1,
"uses_money_first_pricing": false,
"rate_unit": "char",
"display_category": "voice",
"is_premium": false,
"display_order": 1,
"metadata": null,
"is_active": true,
"created_at": "2026-01-10T09:00:00+00:00",
"updated_at": "2026-01-10T09:00:00+00:00"
},
"config": {
"tts_settings": {
"model_id": "eleven_multilingual_v2",
"voice_id": "21m00Tcm4TlvDq8ikWAM",
"mode": "mode_v1",
"language_code": null,
"advanced_voice_settings": true,
"voice_settings": {
"stability": 0.5,
"similarity_boost": 0.75,
"use_speaker_boost": true
}
}
},
"is_public": false,
"folder_id": null,
"created_at": "2026-06-01T10:00:00+00:00",
"updated_at": "2026-06-01T10:00:00+00:00"
},
{
"type": "folder",
"id": "c1d2e3f4-5a6b-4c7d-8e9f-0a1b2c3d4e5f",
"name": "Podcast Intros",
"templates_count": 3,
"created_at": "2026-05-01T09:00:00+00:00",
"updated_at": "2026-05-01T09:00:00+00:00"
}
],
"current_page": 1,
"last_page": 1,
"per_page": 15,
"total": 2,
"current_folder": null,
"breadcrumbs": [
{
"id": null,
"name": "Root"
}
]
}
}Success flag. Branch on the HTTP status code instead: any 2xx response carries true here, while an error comes back in a different shape that need not contain this field at all.
A human-readable note in the account language. Fine to show to a user; do not parse it — the wording changes without notice and is not an error code.
datarequiredFolder contents with pagination and an ancestor trail — meant for a template tree in a UI.
BrowseTemplatesBrowseTemplates
Folder contents with pagination and an ancestor trail — meant for a template tree in a UI.
itemsrequiredContents of the current folder — folders and templates interleaved, in sort order. Tell them apart by service_key: only a template has it.
array<TemplateItem>TemplateItem
Contents of the current folder — folders and templates interleaved, in sort order. Tell them apart by service_key: only a template has it.
Current page number, starting at 1.
Number of the last page. When it equals current_page, there is nothing further.
How many records fit on a page.
How many records the folder holds in total, across all pages.
current_folderrequiredThe folder whose contents are shown. null means you are at the root.
nullableobject
The folder whose contents are shown. null means you are at the root.
UUID of the current folder — pass it as folder_id to open the folder again.
Name of the current folder.
401The key is missing, unknown, disabled or expired.
The key is missing, unknown, disabled or expired.
{
"success": false,
"message": "API key is missing. Provide it in the X-API-KEY header.",
"data": null
}Always false in error responses.
Error text in the key's language (set through the X-Locale header).
Always null when the request is rejected before processing.
403The key lacks the required permission, or the object belongs to another user.
The key lacks the required permission, or the object belongs to another user.
{
"success": false,
"message": "This API key does not have permission to perform this action."
}Always false in error responses.
Error text in the key's language (set through the X-Locale header).
422Validation error. Offending fields are listed in errors.
Validation error. Offending fields are listed in errors.
{
"message": "string",
"errors": {}
}Errors overview.
errorsrequiredA detailed description of each field that failed validation.
object
A detailed description of each field that failed validation.
Nearby
The same in words
Objects
Neighbouring operations
Feed this page to an AI
spec 0.0.1