Deploying an app
This page walks through the full deploy workflow for a Runtype App: create the app, upload a version, and activate it. If you are new to apps, start with What are Apps?.
Runtype Apps is in early access. You can deploy through the REST API, the Runtype CLI (runtype apps), the MCP tools, or the dashboard Apps page. The serving edge ships separately, so a freshly
deployed app may not serve traffic yet in every environment.
Before you start
You need:
- An API key with the
APPS:WRITEpermission (or*). See Managing API keys. - A built static app: a folder with
index.htmlat the top level. - A
runtype.app.jsonmanifest next to yourindex.html. A minimal manifest is just a name:
If your app calls flows or agents, list their ids under capabilities. The full manifest reference is in Deploying Runtype Apps.
Step 1: Create the app
Pick a slug (lowercase letters, digits, and hyphens; it must start with a letter):
The response includes the app’s id and its permanent URL:
Creating the app also auto-provisions a client token scoped to that URL. Nothing serves yet: activeVersionId is null until your first activation.
Step 2: Zip and upload a version
Zip your built output. Both of these layouts work, because a single wrapper directory (like dist/) is stripped automatically:
Upload the zip as the raw request body:
The response is a new version with "status": "uploaded" and a versionNumber. Uploading never changes what is served.
Common upload errors:
400if the zip is missingindex.htmlorruntype.app.jsonat the root, exceeds your plan’s size limit or the 500-file cap, or references flows or agents you do not own402if apps are not enabled on your plan422if the manifest setsauthto anything other than"none"
Step 3: Activate the version
Activation flips the active-version pointer, syncs the app’s client token to the manifest’s flows and agents, and updates edge routing. The response contains both the updated app and the now-active version.
Using the CLI
The Runtype CLI wraps the same workflow in two commands:
runtype apps deploy zips the directory (it must contain index.html and runtype.app.json at its root), uploads it as a new version, and activates it. Pass --no-activate to stage the version without changing what is served.
Rolling back from the CLI is two commands: list the history, then activate an older version.
runtype apps list and runtype apps delete APP_ID round out the management commands.
Rolling back
A rollback is just activating an older version. List the version history, then activate the one you want:
Versions are returned newest first. Pass any previous version’s id to the activate endpoint and the app instantly serves that version again.
Managing the app
- Rename, change visibility, or suspend:
PATCH /v1/apps/APP_IDwith any ofname,description,visibility, orstatus. Setting"status": "suspended"makes the app’s URL return410 Goneuntil you set it back to"active". - Delete:
DELETE /v1/apps/APP_IDremoves the app, its versions, and its routing, and deactivates the auto-provisioned client token. Stored files are cleaned up in the background.
Making an app public requires a paid plan; the request returns 402 otherwise.
Next steps
- Deploying Runtype Apps for the manifest reference, bundle rules, and TypeScript examples
- What are Apps? for concepts: versions, visibility, the client token
- Managing API keys to create a key with the
APPS:WRITEscope - Billing and plans for per-plan app limits