POST
Create a new application

Authorizations

Authorization
string
header
required

Bearer token for authentication. Format: 'Bearer {token}'

Headers

X-Workspace-Id
string

Workspace ID (uses default workspace if not provided)

Body

application/json

Create a new application

label
string
required

Human-readable display name for the application

name
string
required

Name seed (used in URLs and DNS). Must be lowercase, alphanumeric with hyphens. A random suffix is appended, so read name back from the response rather than reusing this value.

project_id
string
required

UUID of the project to create the application in

resource_id
string
required

UUID of the compute resource (Miget) to assign. The app's region is derived from this resource.

builder
enum<string>
required

Build strategy: 'auto' for automatic buildpack detection, 'dockerfile' for custom Dockerfile builds, 'custom' for language-specific builder

Available options:
auto,
dockerfile,
custom
ram_size
number<float>

RAM allocation in MiB (e.g., 256, 512, 1024)

cpu_size
number<float>

CPU allocation in cores (e.g., 0.5, 1.0, 2.0)

private_access
boolean

Restrict the app to private access only (no public ingress; default false)

deployment_method
enum<string>

Deployment method: 'git_push', 'public_git', 'github', 'container_registry', 'parent_image', or 'kamal'

Available options:
git_push,
parent_image,
container_registry,
github,
public_git,
kamal,
static_site
deployment_config
object

Deployment configuration (fields depend on deployment_method)

app_vars_attributes
object[]

Environment variables to set on the app

Response

Create a new application

Api_V1_Entities_App model

uuid
string
required

Unique application identifier

name
string
required

Server-assigned name: the name sent at creation plus a random suffix (my-api-x7k2p). Used in the public URL and the git_push repository path. Use this value verbatim, not the name you sent and not service_name

label
string
required

Display name

state
string
required

Current state. While provisioning: pending, assigned, start_scheduled, started, deploying, cloning, stop_scheduled, restart_scheduled, stopped, blocked. Once started, the live Kubernetes status: running, failed, or problem (pods failing while replicas are up)

project_id
string
required

Associated project UUID

deployment_method
string
required

Deployment method (git_push, public_git, github, container_registry, parent_image, kamal)

deployment_config
object
required

Deployment configuration (fields vary by deployment method)

builder
string
required

Build strategy (auto, dockerfile, custom)

manage_dns_records
boolean
required

Auto DNS management enabled

maintenance
boolean
required

Maintenance mode enabled

private_access
boolean
required

Private access only (no public ingress)

service_name
string
required

Unsuffixed name, used only in internal_url. Not valid in public URLs or git remotes — use name there

internal_url
string
required

Internal service URL (host:port) for app-to-app connections

public_url
string
required

Platform-assigned public URL, built from the app name and the region of its compute resource. Not reachable when private_access is true. Custom domains are listed separately under /apps/{uuid}/domains

allow_connections
boolean
required

Allow internal connections

basic_auth_enabled
boolean
required

Whether HTTP Basic Auth is enforced on the ingress (credentials are never returned)

quota
object
required

Resource quota configuration

created_at
string<date-time>
required

Creation timestamp

updated_at
string<date-time>
required

Last update timestamp

miget
object
required

Api_V1_Entities_Resource model

region
object
required

Api_V1_Entities_Region model

addons
object[]
required

Attached add-ons

cronjobs
object[]
required

Scheduled cron jobs