Skip to Content
SeyloDocs
API referenceTemplates

Install a template

POST
/api/v1/templates.create

Runs the template and creates its services in the project on one node, with generated passwords stored as secrets, then deploys them unless deployNow is false. Fails without creating anything when a name conflicts.

Needs services.create on the project. Available to MCP clients and the assistant.

Authorization

cookieseylo_session<token>

Request Body

application/json
  1. body
projectId*string

Panel-issued id.

Match^[a-z0-9]{16}$
slug*string
Match^[a-z0-9][a-z0-9-]*$
Length1 <= length <= 60
name*string

DNS-safe; the service's host name on the project network. Unique in its project.

Match^[a-z0-9]([a-z0-9-]*[a-z0-9])?$
Length1 <= length <= 40
nodeId*string

Panel-issued id.

Match^[a-z0-9]{16}$
values*
deployNow?boolean
Defaulttrue

Response Body

Success.

application/json
  1. response
services*array<>
Example Request
curl -X POST 'https://example.com/api/v1/templates.create' \  -H 'Content-Type: application/json' \  -d '{  "projectId": "string",  "slug": "string",  "name": "string",  "nodeId": "string",  "values": {}}'
Example Response
{  "services": [    {      "id": "string",      "projectId": "string",      "name": "string",      "kind": "app",      "parentId": "string",      "status": "idle",      "source": {        "type": "github",        "label": "string",        "branch": "string",        "builder": "railpack"      },      "address": "string",      "placements": [        {          "nodeId": "string",          "nodeName": "string",          "replicas": 1        }      ],      "cpuPercent": 0,      "memoryBytes": 0,      "memoryLimitBytes": 0,      "liveDeployment": {        "id": "string",        "label": "string",        "createdAt": "2019-08-24T14:15:22Z"      },      "lastDeployedAt": "2019-08-24T14:15:22Z",      "protected": true,      "templateSlug": "string",      "createdAt": "2019-08-24T14:15:22Z",      "updatedAt": "2019-08-24T14:15:22Z"    }  ]}