Skip to main content
POST
Unpublish an App

Authorizations

Authorization
string
header
required

An API token for one organization. You create and revoke tokens in the dashboard. A token scoped to one App can reach only that App, so give that kind of token to an agent. An organization-wide token can create a short-lived one with POST /api/tokens.

Scopes

apps:write
OAuth

Change the organization's Apps: edit files, run commands, deploy, and manage Secrets.

apps:write
DPoP

Headers

Idempotency-Key
string

A key that identifies this request for retries, up to 200 printable characters. A retry with the same key and input returns the first request's result instead of repeating the work. If you omit the key, the API generates one and returns it in the Idempotency-Key response header.

Required string length: 1 - 200

Path Parameters

id
string
required

A unique ID that starts with app_.

Pattern: ^app_[0-9A-Za-z]{24}$
Example:

"app_Zj7XhMgplmTJcp5Dk4vcYuk0"

Response

The App.

id
string
required

The App's ID, which starts with app_.

name
string
required

The App's display name.

slug
string
required

The App's label under the App base domain. The App keeps serving at this address after you add a custom domain.

domain
string | null
required

The App's custom domain, or null if it doesn't have one.

url
string<uri>
required

The App's public URL: its custom domain if it has one, or else its slug address.

template
object
required

The template that the App was created from. Until the sandbox first starts, version is the template's version when the App was created. After that, it's the version that the sandbox was set up from.

sandbox_status
enum<string>
required

The sandbox's state. Any request that needs the sandbox starts it, and the sandbox stops on its own when it's idle.

  • stopped: the sandbox isn't running.
  • starting: the sandbox is starting.
  • running: the sandbox is running.
  • stopping: the sandbox is committing changes and stopping.
  • failed: the most recent start failed. The API retries while the sandbox is needed, and any request that needs the sandbox retries right away.
Available options:
stopped,
starting,
running,
stopping,
failed
sandbox_error
object | null
required

The most recent failed attempt to start or stop the sandbox, or null. It's cleared after an attempt succeeds.

production
object
required

The published App and who can reach it.

deleted_at
string<date-time> | null
required

When the App was deleted, or null if it isn't deleted. A deleted App stays readable for 30 days.

Example:

"2026-10-03T14:01:30.000Z"

created_at
string<date-time>
required

When the App was created.

Example:

"2026-10-03T14:01:30.000Z"

updated_at
string<date-time>
required

When the App was last changed.

Example:

"2026-10-03T14:01:30.000Z"