Skip to content
Cloudtifact docs

Apps API

Apps built from rooms: previews, going live, rollbacks and export.

All paths are relative to the API origin. Send Authorization: Bearer <token> unless a route says otherwise; see the API overview for tokens and errors.

GET /v1/apps

Apps in rooms you can view

Query

FieldTypeRequiredNotes
workspacestringno
roomstringno

Response

FieldTypeRequiredNotes
appsobject[]yes

GET /v1/apps/:id

View on the room

Response

FieldTypeRequiredNotes
idstringyes
namestringyes
kindstringyes
slugstringyes
status"draft" | "preview" | "live" | "paused"yes
roomobjectyes
previewSpaceIdstringyes
previewVersionintegeryes
liveVersioninteger | nullyes
liveUrlstring | nullyes
access"public" | "code" | "private"yes
joinCodestring | nullyes
buildobjectyes
canManagebooleanyes
createdAtnumberyes

PATCH /v1/apps/:id

Manage (name, access, join code)

Body

FieldTypeRequiredNotes
namestringno
access"public" | "code" | "private"no
newJoinCodebooleanno
pausedbooleanno

Response

FieldTypeRequiredNotes
idstringyes
namestringyes
kindstringyes
slugstringyes
status"draft" | "preview" | "live" | "paused"yes
roomobjectyes
previewSpaceIdstringyes
previewVersionintegeryes
liveVersioninteger | nullyes
liveUrlstring | nullyes
access"public" | "code" | "private"yes
joinCodestring | nullyes
buildobjectyes
canManagebooleanyes
createdAtnumberyes

DELETE /v1/apps/:id

Manage

Response: 204, no body

POST /v1/apps/:id/live

Manage; first go-live, plan live-app limit

Body

FieldTypeRequiredNotes
access"public" | "code" | "private"no (default "code")
copyDatabooleanno (default false)

Response

FieldTypeRequiredNotes
idstringyes
namestringyes
kindstringyes
slugstringyes
status"draft" | "preview" | "live" | "paused"yes
roomobjectyes
previewSpaceIdstringyes
previewVersionintegeryes
liveVersioninteger | nullyes
liveUrlstring | nullyes
access"public" | "code" | "private"yes
joinCodestring | nullyes
buildobjectyes
canManagebooleanyes
createdAtnumberyes

POST /v1/apps/:id/promote

Manage; live = latest preview version

Response

FieldTypeRequiredNotes
idstringyes
namestringyes
kindstringyes
slugstringyes
status"draft" | "preview" | "live" | "paused"yes
roomobjectyes
previewSpaceIdstringyes
previewVersionintegeryes
liveVersioninteger | nullyes
liveUrlstring | nullyes
access"public" | "code" | "private"yes
joinCodestring | nullyes
buildobjectyes
canManagebooleanyes
createdAtnumberyes

POST /v1/apps/:id/rollback

Manage

Body

FieldTypeRequiredNotes
deployintegeryes

Response

FieldTypeRequiredNotes
idstringyes
namestringyes
kindstringyes
slugstringyes
status"draft" | "preview" | "live" | "paused"yes
roomobjectyes
previewSpaceIdstringyes
previewVersionintegeryes
liveVersioninteger | nullyes
liveUrlstring | nullyes
access"public" | "code" | "private"yes
joinCodestring | nullyes
buildobjectyes
canManagebooleanyes
createdAtnumberyes

GET /v1/apps/:id/deploys

View

Response

FieldTypeRequiredNotes
deploysobject[]yes

GET /v1/apps/:id/users

Manage; the app's end users

Response

FieldTypeRequiredNotes
usersobject[]yes

POST /v1/apps/:id/owner-link

Edit; signed 10-minute admin link into the live app

Response

FieldTypeRequiredNotes
urlstringyes
expiresAtnumberyes

GET /v1/apps/:id/export

Manage; Hono + D1 project, deploys with wrangler

Response: application/zip