Skip to Content
SeyloDocs
API referenceTemplates

Add or change a custom template

POST
/api/v1/templates.saveCustom

Saves a template on this panel from its meta.yaml and index.ts (Easypanel's format). The files are checked first: the form must parse and generate() must run in the sandbox with the form's defaults. Built-in slugs cannot be used.

Needs templates.manage, which owners and admins hold. Not available to MCP clients or the assistant.

Authorization

cookieseylo_session<token>

Request Body

application/json
  1. body
slug*string
Match^[a-z0-9][a-z0-9-]*$
Length1 <= length <= 60
metaYaml*string
Length1 <= length <= 50000
source*string
Length1 <= length <= 200000

Response Body

Success.

application/json
  1. response
slug*string
Match^[a-z0-9][a-z0-9-]*$
Length1 <= length <= 60
name*string
description*string
category*string
tags*array<string>
logoUrl*string|null
creates*string
builtIn*boolean
body*string
links*array<>
fields*array<>
Example Request
curl -X POST 'https://example.com/api/v1/templates.saveCustom' \  -H 'Content-Type: application/json' \  -d '{  "slug": "string",  "metaYaml": "string",  "source": "string"}'
Example Response
{  "slug": "string",  "name": "string",  "description": "string",  "category": "string",  "tags": [    "string"  ],  "logoUrl": "string",  "creates": "string",  "builtIn": true,  "body": "string",  "links": [    {      "label": "string",      "url": "string"    }  ],  "fields": [    {      "key": "string",      "label": "string",      "description": "string",      "type": "string",      "required": true,      "default": "string",      "options": [        {          "value": "string",          "label": "string"        }      ]    }  ]}