Templates

Browse built-in templates and inspect their customizable fields. Use a template’s id in POST /renders to render it with optional modifications.


GET /templates

List all available templates.

Request
curl https://devmotion.app/api/v1/templates \
  -H "Authorization: Bearer dm_live_YOUR_API_KEY"

Response

GET /templates — response
{
  "data": [
    {
      "id": "laptop-3d-intro",
      "name": "Laptop 3D Intro",
      "description": "A 3D spinning laptop reveal with customizable browser URL",
      "thumbnail": "https://storage.../thumb.jpg",
      "category": "product",
      "is_pro": false,
      "customizable_fields": [
        { "name": "url",   "type": "string", "label": "Browser URL",  "default_value": "https://example.com" },
        { "name": "title", "type": "string", "label": "Headline",     "default_value": "My Product" }
      ]
    }
  ]
}

GET /templates/:id

Get details and customizable fields for a single template.

Request
curl https://devmotion.app/api/v1/templates/laptop-3d-intro \
  -H "Authorization: Bearer dm_live_YOUR_API_KEY"

Response

Same fields as the list endpoint, plus seo_title, seo_description, and keywords.

GET /templates/:id — response
{
  "id": "laptop-3d-intro",
  "name": "Laptop 3D Intro",
  "description": "A 3D spinning laptop reveal with customizable browser URL",
  "thumbnail": "https://storage.../thumb.jpg",
  "category": "product",
  "is_pro": false,
  "seo_title": "Laptop 3D Product Intro Template",
  "seo_description": "...",
  "keywords": ["laptop", "product", "3d", "intro"],
  "customizable_fields": [
    { "name": "url",   "type": "string", "label": "Browser URL",  "default_value": "https://example.com" },
    { "name": "title", "type": "string", "label": "Headline",     "default_value": "My Product" }
  ]
}

If the template is not found, the API returns 404 TEMPLATE_NOT_FOUND along with a list of valid template IDs.