Skip to content
Lumean API

Descriptions are in English

The section interface is translated into your language, but descriptions of operations, schemas and errors exist only in Russian and English — the English version is shown here.
GET/templates/browse

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.

GEThttps://api.lumean.app/api/public/templates/browse
  • 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 caracteres

    Show only templates of services with this task type (the service default_task_type), e.g. tts for 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 by GET /usage in its service_code field.

Possible responses

200

Success. The payload is in data.

Body example
{
  "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"
      }
    ]
  }
}
Response fields
successrequired

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.

boolean
messagerequired

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.

string
datarequired

Folder contents with pagination and an ancestor trail — meant for a template tree in a UI.

BrowseTemplatesBrowseTemplates
itemsrequired

Contents 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
array item
typerequired
Valuestemplate
string
idrequired
string
namerequired
string
slugoptional
string
service_keyoptional
string
serviceoptional
nullable
Service | null
configoptional
object | string
is_publicoptional
string
folder_idoptional
string
created_atrequired
string
updated_atrequired
string
templates_countoptional
string | integer
current_pagerequired

Current page number, starting at 1.

integer
last_pagerequired

Number of the last page. When it equals current_page, there is nothing further.

integer
per_pagerequired

How many records fit on a page.

integer
totalrequired

How many records the folder holds in total, across all pages.

integer
current_folderrequired

The folder whose contents are shown. null means you are at the root.

nullable
object
idrequired

UUID of the current folder — pass it as folder_id to open the folder again.

string
namerequired

Name of the current folder.

string
breadcrumbsrequired

The path from the root to the current folder, ancestor first — ready to render as a breadcrumb trail.

array<object>
array item
idoptional

UUID of an ancestor folder — the folder_id value that jumps back to that level.

uuid
string
nameoptional

Name of the ancestor folder.

string
401

The key is missing, unknown, disabled or expired.

Analyse this response
Body example
{
  "success": false,
  "message": "API key is missing. Provide it in the X-API-KEY header.",
  "data": null
}
Response fields
successrequired

Always false in error responses.

boolean
messagerequired

Error text in the key's language (set through the X-Locale header).

string
datarequired

Always null when the request is rejected before processing.

nullable
null
403

The key lacks the required permission, or the object belongs to another user.

Analyse this response
Body example
{
  "success": false,
  "message": "This API key does not have permission to perform this action."
}
Response fields
successrequired

Always false in error responses.

boolean
messagerequired

Error text in the key's language (set through the X-Locale header).

string
422

Validation error. Offending fields are listed in errors.

Analyse this response
Body example
{
  "message": "string",
  "errors": {}
}
Response fields
messagerequired

Errors overview.

string
errorsrequired

A detailed description of each field that failed validation.

object
*optional
claves arbitrarias
array<string>

Feed this page to an AI

Open .mdllm.md

spec 0.0.1