Update
API server
https://app.coolify.io/api/v1Update Server. Changing proxy_type needs a token with the write and deploy permissions.
Authorization
bearerAuth Go to Keys & Tokens / API tokens and create a new token. Use the token as the bearer token.
In: header
Path Parameters
Server UUID
Request Body
application/json
Server updated.
TypeScript Definitions
Use the request body type in TypeScript.
The name of the server. Must not contain control characters such as new lines.
The description of the server.
The IP of the server.
The port of the server.
The user of the server.
The UUID of the private key.
Server role.
"deployment" | "build" | "both"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.
The proxy type. Changing it starts the new proxy on the server and needs the deploy permission.
"traefik" | "caddy" | "none"Number of concurrent builds.
Deployment timeout in seconds.
Maximum number of queued deployments.
Server disk usage notification threshold (%).
Cron expression for disk usage check frequency.
Minimum hours between high disk usage notifications (1-720). Default: 24.
SSH connection timeout in seconds (1-300). Default: 10.
Wildcard domain (URL) used to generate domains for new resources on this server. Null removes it.
Timezone of the server, for example Europe/Berlin. Scheduled tasks and backups use it.
Maximum CPU percentage that backup compression can use. Default: 25.
25 | 50 | 75 | 100Response 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."}{ "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." ] }}Save server proxy configuration PUT
Save the raw proxy Docker Compose configuration for a team-owned server. Needs a token with the `write` and `deploy` permissions. Multi-line configuration must be base64 encoded (same pattern as other compose payloads).
Update Cloudflare Tunnel settings PATCH
Update stored Cloudflare Tunnel settings for a server. Does not run remote cloudflared configuration; use enable/disable for the manual UI actions.
