Skip to main content

Applications

Manage applications through the API — deploy from Git repositories, Docker images, Dockerfiles, or Docker Compose files.

List Applications​

Returns all applications accessible to the current team.

GET /api/v1/applications

Response:

{
"data": [
{
"uuid": "abc123",
"name": "my-web-app",
"fqdn": "https://myapp.example.com",
"status": "running:healthy",
"build_pack": "nixpacks",
"git_repository": "https://github.com/user/repo",
"git_branch": "main",
"created_at": "2024-01-15T10:30:00Z"
}
]
}

Get Application​

GET /api/v1/applications/{uuid}

Response includes full application configuration: build settings, environment variables, domains, health checks, resource limits, and deployment history.

Create Application​

Create an application from one of several sources:

From a Public Git Repository​

POST /api/v1/applications/public
{
"project_uuid": "proj-abc123",
"environment_name": "production",
"server_uuid": "srv-abc123",
"destination_uuid": "dest-abc123",
"git_repository": "https://github.com/user/repo",
"git_branch": "main",
"build_pack": "nixpacks",
"name": "my-web-app",
"ports_exposes": "3000"
}
ParameterTypeRequiredDescription
project_uuidstringYesTarget project UUID
environment_namestringYesTarget environment name
server_uuidstringYesServer to deploy on
destination_uuidstringYesDocker network/destination UUID
git_repositorystringYesPublic Git repository URL
git_branchstringYesBranch to deploy
build_packstringYesnixpacks, dockerfile, dockercompose, dockerimage, railpack, heroku, paketo
namestringNoApplication name
ports_exposesstringNoExposed port(s), comma-separated

From a Private GitHub Repository​

POST /api/v1/applications/private-github-app

Requires a GitHub App installation. Additional parameters:

ParameterTypeRequiredDescription
github_app_uuidstringYesGitHub App UUID
git_repositorystringYesRepository (e.g., user/repo)

From a Deploy Key​

POST /api/v1/applications/private-deploy-key
ParameterTypeRequiredDescription
private_key_uuidstringYesSSH key UUID
git_repositorystringYesSSH Git URL

From a Dockerfile​

POST /api/v1/applications/dockerfile
ParameterTypeRequiredDescription
dockerfilestringYesDockerfile contents (base64 or raw)

From a Docker Image​

POST /api/v1/applications/dockerimage
ParameterTypeRequiredDescription
docker_registry_image_namestringYesImage name (e.g., nginx:latest)

From Docker Compose​

POST /api/v1/applications/dockercompose
ParameterTypeRequiredDescription
docker_compose_rawstringYesDocker Compose YAML content

Response (all create endpoints): 201 Created

{
"uuid": "abc123",
"name": "my-web-app",
"fqdn": "https://abc123.example.com"
}

Update Application​

PATCH /api/v1/applications/{uuid}
{
"name": "updated-name",
"fqdn": "https://newdomain.example.com",
"git_branch": "develop",
"ports_exposes": "8080"
}

All fields are optional. Only provided fields are updated.

Delete Application​

DELETE /api/v1/applications/{uuid}
ParameterTypeDefaultDescription
delete_configurationsbooleantrueDelete configuration files
delete_volumesbooleanfalseDelete persistent volumes
docker_cleanupbooleantrueRemove Docker resources

Response:

{
"message": "Application deleted."
}

Application Actions​

Start Application​

POST /api/v1/applications/{uuid}/start

Stop Application​

POST /api/v1/applications/{uuid}/stop

Restart Application​

POST /api/v1/applications/{uuid}/restart

Deploy Application​

Trigger a new deployment:

POST /api/v1/applications/{uuid}/deploy
ParameterTypeDefaultDescription
forcebooleanfalseForce rebuild without cache
commit_shastring—Deploy a specific commit

Response:

{
"message": "Deployment queued.",
"deployment_uuid": "deploy-abc123"
}

Application Logs​

Retrieve recent container logs:

GET /api/v1/applications/{uuid}/logs
ParameterTypeDefaultDescription
sinceinteger600Seconds of log history
tailinteger100Number of lines to return

Environment Variables​

List Variables​

GET /api/v1/applications/{uuid}/envs

Create Variable​

POST /api/v1/applications/{uuid}/envs
{
"key": "DATABASE_URL",
"value": "postgres://user:pass@host/db",
"is_build_time": false,
"is_preview": false
}

Update Variable​

PATCH /api/v1/applications/{uuid}/envs
{
"key": "DATABASE_URL",
"value": "postgres://user:newpass@host/db"
}

Bulk Update Variables​

PATCH /api/v1/applications/{uuid}/envs/bulk
{
"variables": [
{ "key": "DB_HOST", "value": "db.example.com" },
{ "key": "DB_PORT", "value": "5432" }
]
}

Delete Variable​

DELETE /api/v1/applications/{uuid}/envs/{env_uuid}

Persistent Storage​

List Volumes​

GET /api/v1/applications/{uuid}/storages

Add Volume​

POST /api/v1/applications/{uuid}/storages
{
"name": "app-data",
"mount_path": "/data",
"host_path": "/opt/app/data"
}

Delete Volume​

DELETE /api/v1/applications/{uuid}/storages/{storage_uuid}