---
title: "Launch a ready-made app"
method: POST
path: "/client/apps/templates/{template}"
tags: ["Apps"]
---

# Launch a ready-made app

`POST /client/apps/templates/{template}`

## Request

- Base URL: `https://api.roar-ai.com`
- URL: `https://api.roar-ai.com/client/apps/templates/{template}`
- Auth: HTTP bearer

Launches a ready-made app with no repository of your own — `n8n` or `open-webui`. The template fixes what is deployed and turns on a Roar database (where each keeps its data; `open-webui` also gets file storage, and your Roar models connected); you choose only the name, region, project and protection. Returns 202 exactly like `POST /client/apps`; poll `/client/apps/{id}/progress`. Requires `apps:deploy`.

## Path parameters

- `template` 'n8n' | 'open-webui', required

## Request body

- LaunchTemplateRequest
  - `name` string: Absent means the template’s own name, e.g. `n8n`.
  - `cell` string: The region, as offered by the app wizard. Absent means your default region.
  - `cloudflareProtection` boolean: Serve the app’s address behind protection. Absent means on.
  - `projectId` string, uuid, nullable

## Response `202`

Deploy started

- AppDeployAccepted
  - `project` App, required
    - `id` string, uuid, required
    - `clientId` string, uuid, required
    - `groupId` string, uuid, nullable, required: The project this app is filed under, if any
    - `name` string, required
    - `status` string, required
    - `region` string, nullable: The app's home cell — the region chosen at create time, not its current placement
    - `createdAt` string, date-time, required
    - `updatedAt` string, date-time, required
  - `service` AppServiceView, required
    - `id` string, uuid, required
    - `projectId` string, uuid, required: The APP's id — a service belongs to an app
    - `kind` string, required
    - `name` string, required
    - `sourceRepo` string, nullable, required: "owner/name" of the repo it deploys from
    - `status` string, required
    - `runMigrations` boolean, required
    - `deployOnPush` boolean, required
    - `branch` string, nullable, required
    - `memoryLimitMb` integer, nullable, required: The most memory the app may use, in MB — a ceiling set automatically from the server it runs on, not a reservation and not a setting. Billing is on what the app actually uses. Null until the app has been placed on a server.
    - `cpuLimit` number, nullable, required: The most CPU the app may use, in vCPU — set automatically, like memoryLimitMb. Null until the app has been placed on a server.
    - `emailFrom` string, nullable, required
    - `aiUsesTools` boolean, required: “Let this app's AI use its tools”: Roar adds your company's tools to the app's own chat requests that bring none
    - `createdAt` string, date-time, required
    - `updatedAt` string, date-time, required
  - `deployment` AppDeploymentQueued, required
    - `id` string, uuid, required
    - `serviceId` string, uuid, required
    - `status` string, required
    - `commitSha` string, nullable, required
    - `errorSummary` string, nullable, required
    - `failureLabel` string, nullable
    - `createdAt` string, date-time, required
    - `finishedAt` string, date-time, nullable, required
    - `trigger` 'first_deploy' | 'push' | 'redeploy' | 'restore' | 'settings' | 'database' | 'autofix' | 'retry' | 'maintenance', nullable
    - `triggeredVia` 'console' | 'api_key' | 'mcp' | 'github' | 'platform', nullable
    - `triggeredBy` string, nullable
    - `branch` string, nullable
    - `commitMessage` string, nullable
    - `restoredFromId` string, uuid, nullable
    - `timings` object, nullable, required: Always null here — this deploy has not run, so there is nothing measured. GET /client/services/{id}/deployments carries the phase breakdown of a finished deploy.

## Other responses

- `400`: Unknown template, or a field the route does not take
- `403`: Key lacks apps:deploy

---

[API](https://skmtc.dev/roar-ai/apis/roar-ai-api.md) · [All operations](https://skmtc.dev/roar-ai/apis/roar-ai-api/llms.txt) · [OpenAPI document](https://skmtc.dev/roar-ai/apis/roar-ai-api/revisions/37e4d0d5a7fe?raw)
