Update

API server

https://app.coolify.io/api/v1

Choose where to send API requests

This changes the request URL and code examples on every endpoint page.

API server type

Requests will use

https://app.coolify.io/api/v1

Use only a Coolify URL you trust. Sending a test request also sends the API token you enter.

PATCH
/servers/{uuid}

Update Server. Changing proxy_type needs a token with the write and deploy permissions.

Authorization

bearerAuth
AuthorizationBearer <token>

Go to Keys & Tokens / API tokens and create a new token. Use the token as the bearer token.

In: header

Path Parameters

uuid*string

Server UUID

Request Body

application/json

Server updated.

TypeScript Definitions

Use the request body type in TypeScript.

name?string

The name of the server. Must not contain control characters such as new lines.

description?string

The description of the server.

ip?string

The IP of the server.

port?integer

The port of the server.

user?string

The user of the server.

private_key_uuid?string

The UUID of the private key.

server_role?string

Server role.

Value in"deployment" | "build" | "both"
is_build_server?booleanDeprecated

Deprecated: use server_role instead. true sets server_role to build, false changes a build server to both and leaves other roles unchanged. Must not conflict with server_role.

instant_validate?boolean

Instant validate.

proxy_type?string

The proxy type. Changing it starts the new proxy on the server and needs the deploy permission.

Value in"traefik" | "caddy" | "none"
concurrent_builds?integer

Number of concurrent builds.

dynamic_timeout?integer

Deployment timeout in seconds.

deployment_queue_limit?integer

Maximum number of queued deployments.

server_disk_usage_notification_threshold?integer

Server disk usage notification threshold (%).

server_disk_usage_check_frequency?string

Cron expression for disk usage check frequency.

server_disk_usage_notification_interval_hours?integer

Minimum hours between high disk usage notifications (1-720). Default: 24.

connection_timeout?integer

SSH connection timeout in seconds (1-300). Default: 10.

wildcard_domain?string

Wildcard domain (URL) used to generate domains for new resources on this server. Null removes it.

server_timezone?string

Timezone of the server, for example Europe/Berlin. Scheduled tasks and backups use it.

backup_compression_cpu_percentage?integer

Maximum CPU percentage that backup compression can use. Default: 25.

Value in25 | 50 | 75 | 100

Response Body

application/json

application/json

application/json

application/json

application/json

curl -X PATCH "https://app.coolify.io/api/v1/servers/string" \  -H "Content-Type: application/json" \  -d '{}'
{  "id": 0,  "uuid": "string",  "name": "string",  "description": "string",  "ip": "string",  "user": "string",  "port": 0,  "proxy": {},  "proxy_type": "traefik",  "high_disk_usage_notification_sent": true,  "unreachable_notification_sent": true,  "unreachable_count": 0,  "validation_logs": "string",  "log_drain_notification_sent": true,  "swarm_cluster": "string",  "settings": {    "id": 0,    "concurrent_builds": 0,    "deployment_queue_limit": 0,    "backup_compression_cpu_percentage": 0,    "dynamic_timeout": 0,    "force_disabled": true,    "force_server_cleanup": true,    "server_role": "deployment",    "is_build_server": true,    "is_cloudflare_tunnel": true,    "is_jump_server": true,    "is_logdrain_axiom_enabled": true,    "is_logdrain_cloudwatch_enabled": true,    "is_logdrain_custom_enabled": true,    "is_logdrain_highlight_enabled": true,    "is_logdrain_newrelic_enabled": true,    "is_metrics_enabled": true,    "is_traffic_analytics_enabled": true,    "traffic_topn": 0,    "traffic_sample_threshold": 0,    "traffic_retention_1h_days": 0,    "traffic_retention_1d_days": 0,    "is_geoip_enabled": true,    "geoip_refresh_days": 0,    "traffic_ip_mode": "full",    "traefik_certificate_resolver": "string",    "is_reachable": true,    "is_sentinel_enabled": true,    "is_swarm_manager": true,    "is_swarm_worker": true,    "is_terminal_enabled": true,    "is_usable": true,    "logdrain_axiom_api_key": "string",    "logdrain_axiom_dataset_name": "string",    "logdrain_cloudwatch_region": "string",    "logdrain_cloudwatch_group": "string",    "logdrain_cloudwatch_stream_prefix": "string",    "logdrain_custom_config": "string",    "logdrain_custom_config_parser": "string",    "logdrain_highlight_project_id": "string",    "logdrain_newrelic_base_uri": "string",    "logdrain_newrelic_license_key": "string",    "sentinel_metrics_history_days": 0,    "sentinel_metrics_refresh_rate_seconds": 0,    "sentinel_token": "string",    "docker_cleanup_frequency": "string",    "docker_cleanup_threshold": 0,    "server_id": 0,    "wildcard_domain": "string",    "created_at": "string",    "updated_at": "string",    "delete_unused_volumes": true,    "delete_unused_networks": true,    "connection_timeout": 0,    "docker_version": "string",    "docker_version_checked_at": "string",    "compose_version": "string",    "compose_version_checked_at": "string"  }}
{  "message": "Invalid token."}
{  "message": "Unauthenticated."}
Empty
{  "message": "Resource not found."}
{  "message": "Validation error.",  "errors": {    "name": [      "The name field is required."    ],    "api_url": [      "The api url field is required.",      "The api url format is invalid."    ]  }}