Cosmoner Docs
API Reference

Apps

Manage app deployments, networking, domains, and monitoring on DigitalOcean App Platform.

Manage app deployments on DigitalOcean App Platform.

List Apps

GET /v1/projects/:projectId/apps

Returns all apps in the project, ordered by creation date (newest first).

Auth: Required (member)


Get App

GET /v1/projects/:projectId/apps/:appId

Returns app details. Performs lazy status sync from DigitalOcean if the app is still deploying.

Auth: Required (member, scope: apps:read)


Preview Cost

GET /v1/projects/:projectId/apps/preview?size=<slug>

Returns a prorated cost preview for creating an app with the given size, including the subtotal, estimated tax, any applied credit, and the total due today.

Auth: Required (member, scope: apps:read)


Save Draft

POST /v1/projects/:projectId/apps/draft

Saves app wizard configuration as a draft. Drafts expire after 24 hours.

Auth: Required (member, write access, scope: apps:write)


Create App

POST /v1/projects/:projectId/apps

Deploys an app from a saved draft. The prorated amount is charged to the project's payment method off-session and the response is { deployed: true, appId }. If the project has no card, the request returns 402 — see Billing → Deploy Payment Errors.

Auth: Required (member, write access, scope: apps:write)

Request Body:

{
  "draftId": "draft_..."
}

Update App

PATCH /v1/projects/:projectId/apps/:appId

Updates app settings (name, env vars, build settings, scaling). Triggers a redeploy on DigitalOcean.

Auth: Required (member, write access, scope: apps:write)


Delete App

DELETE /v1/projects/:projectId/apps/:appId

Removes the app from DigitalOcean, deprovisions routing, and deletes from the database.

Auth: Required (member, write access, scope: apps:write)


Check Subdomain Availability

GET /v1/apps/check-subdomain?slug=<slug>

Checks if a Cosmoner subdomain is globally available.

Auth: Required


Logs

GET /v1/projects/:projectId/apps/:appId/logs?type=BUILD|RUN

Returns build or runtime logs from DigitalOcean.

Auth: Required (member, scope: apps:read)


Metrics

GET /v1/projects/:projectId/apps/:appId/metrics?range=1h|6h|24h

Returns CPU%, memory%, and restart count time series.

Auth: Required (member, scope: apps:read)


Console (Exec)

GET /v1/projects/:projectId/apps/:appId/exec

Returns a WebSocket URL for an interactive console session. The connection is proxied through the backend.

Auth: Required (member, scope: apps:read)


Activity

GET /v1/projects/:projectId/apps/:appId/activity

Returns the last 10 deployments.

Auth: Required (member, scope: apps:read)


Networking

Get Network Config

GET /v1/projects/:projectId/apps/:appId/network

Returns region, VPC, egress IPs, advanced settings, and routing rules.

Auth: Required (member, scope: apps:read)

Update VPC

PATCH /v1/projects/:projectId/apps/:appId/network/vpc

Connects or disconnects VPC. Mutually exclusive with dedicated egress IPs.

Auth: Required (member, scope: apps:write)

Toggle Dedicated Egress IPs

PATCH /v1/projects/:projectId/apps/:appId/network/egress

Enables/disables dedicated egress IPs ($25/mo added to subscription).

Auth: Required (member, scope: apps:write)

Update Redirect Rules

PUT /v1/projects/:projectId/apps/:appId/network/redirect-rules

Replaces ingress redirect rules.

Auth: Required (member, scope: apps:write)

Update Routing Rules

PUT /v1/projects/:projectId/apps/:appId/network/routing-rules

Replaces component routing rules.

Auth: Required (member, scope: apps:write)

Update Advanced Settings

PATCH /v1/projects/:projectId/apps/:appId/network/advanced

Updates edge caching, email obfuscation, and threat protection settings.

Auth: Required (member, scope: apps:write)


Domain / Routing

Change App Domain

PATCH /v1/projects/:projectId/apps/:appId/domain

Changes the app's public URL (Cosmoner subdomain or custom domain). Tears down old routing and provisions new.

Auth: Required (member, write access, scope: apps:write)

Setup Routing

POST /v1/projects/:projectId/apps/:appId/setup-routing

Manually triggers routing provisioning for a PENDING app. Returns CNAME + DCV instructions for external domains.

Auth: Required (member, write access, scope: apps:write)

Verify Hostname

POST /v1/projects/:projectId/apps/:appId/verify-hostname

Re-checks DCV/SSL for an external custom hostname.

Auth: Required (member, write access, scope: apps:write)

On this page