Coolify logoCoolify

Webhook Payloads

This page documents the JSON payload structure for every event Coolify sends to your webhook notification endpoint.

All events are delivered as HTTP POST requests with a Content-Type: application/json header. Every payload includes at minimum:

FieldTypeDescription
successbooleantrue for success events, false for failure/alert events
eventstringMachine-readable event identifier
messagestringHuman-readable description of the event

Application

deployment_success

Sent when an application deployment completes successfully.

{
  "success": true,
  "event": "deployment_success",
  "message": "New version successfully deployed",
  "application_name": "my-app",
  "application_uuid": "...",
  "deployment_uuid": "...",
  "deployment_url": "...",
  "project": "...",
  "environment": "...",
  "fqdn": "..."
}

Pull Request Previews

For PR preview deployments, fqdn is omitted and the following fields are included instead:

{
  "pull_request_id": 123,
  "preview_fqdn": "..."
}

deployment_failed

Sent when an application deployment fails.

{
  "success": false,
  "event": "deployment_failed",
  "message": "Deployment failed",
  "application_name": "my-app",
  "application_uuid": "...",
  "deployment_uuid": "...",
  "deployment_url": "...",
  "project": "...",
  "environment": "...",
  "fqdn": "..."
}

Same structure as deployment_success, with "success": false. PR preview fields apply in the same way.

status_changed

Sent when an application stops unexpectedly (not via a manual stop).

{
  "success": false,
  "event": "status_changed",
  "message": "Application stopped",
  "application_name": "my-app",
  "application_uuid": "...",
  "project": "...",
  "environment": "...",
  "fqdn": "...",
  "url": "..."
}

Database Backups

backup_success

Sent when a database backup completes successfully.

{
  "success": true,
  "event": "backup_success",
  "message": "Database backup successful",
  "database_name": "...",
  "database_uuid": "...",
  "database_type": "...",
  "frequency": "...",
  "url": "..."
}

backup_failed

Sent when a database backup fails.

{
  "success": false,
  "event": "backup_failed",
  "message": "Database backup failed",
  "database_name": "...",
  "database_uuid": "...",
  "database_type": "...",
  "frequency": "...",
  "error_output": "...",
  "url": "..."
}

backup_success_with_s3_warning

Sent when the local backup succeeds but uploading to S3 fails.

{
  "success": true,
  "event": "backup_success_with_s3_warning",
  "message": "Database backup succeeded locally, S3 upload failed",
  "database_name": "...",
  "database_uuid": "...",
  "database_type": "...",
  "frequency": "...",
  "s3_error": "...",
  "s3_storage_url": "...",
  "url": "..."
}

s3_storage_url is only present when the S3 storage URL is available.


Scheduled Tasks

task_success

Sent when a scheduled task completes successfully.

{
  "success": true,
  "event": "task_success",
  "message": "Scheduled task succeeded",
  "task_name": "...",
  "task_uuid": "...",
  "output": "...",
  "application_uuid": "...",
  "url": "..."
}

task_failed

Sent when a scheduled task fails.

{
  "success": false,
  "event": "task_failed",
  "message": "Scheduled task failed",
  "task_name": "...",
  "task_uuid": "...",
  "output": "...",
  "application_uuid": "...",
  "url": "..."
}

application_uuid is included for application-level tasks. For service-level tasks, service_uuid is included instead. url is only present when available.


Docker Cleanup

docker_cleanup_success

Sent when a Docker cleanup job completes successfully.

{
  "success": true,
  "event": "docker_cleanup_success",
  "message": "Docker cleanup job succeeded",
  "server_name": "...",
  "server_uuid": "...",
  "cleanup_message": "...",
  "url": "..."
}

docker_cleanup_failed

Sent when a Docker cleanup job fails.

{
  "success": false,
  "event": "docker_cleanup_failed",
  "message": "Docker cleanup job failed",
  "server_name": "...",
  "server_uuid": "...",
  "error_message": "...",
  "url": "..."
}

Server

server_reachable

Sent when a previously unreachable server becomes reachable again.

{
  "success": true,
  "event": "server_reachable",
  "message": "Server revived",
  "server_name": "...",
  "server_uuid": "...",
  "url": "..."
}

server_unreachable

Sent when Coolify cannot reach a server.

{
  "success": false,
  "event": "server_unreachable",
  "message": "Server unreachable",
  "server_name": "...",
  "server_uuid": "...",
  "url": "..."
}

high_disk_usage

Sent when disk usage on a server exceeds the configured threshold.

{
  "success": false,
  "event": "high_disk_usage",
  "message": "High disk usage detected",
  "server_name": "...",
  "server_uuid": "...",
  "disk_usage": 85,
  "threshold": 80,
  "url": "..."
}

disk_usage and threshold are integer percentages.

server_patch_check

Sent when available OS patches are detected on a server.

{
  "success": false,
  "event": "server_patch_check",
  "message": "Server patches available",
  "server_name": "...",
  "server_uuid": "...",
  "total_updates": 12,
  "os_id": "ubuntu",
  "package_manager": "apt",
  "updates": [...],
  "critical_packages_count": 2,
  "url": "..."
}

Error variant

If the patch check itself fails, the event is server_patch_check_error and an "error": "..." field is included instead of the update fields.

traefik_version_outdated

Sent when one or more servers are running an outdated version of the Traefik proxy.

{
  "success": false,
  "event": "traefik_version_outdated",
  "message": "Traefik proxy outdated",
  "affected_servers_count": 1,
  "servers": [
    {
      "name": "...",
      "uuid": "...",
      "current_version": "v3.1.0",
      "latest_version": "v3.1.4",
      "update_type": "patch_update",
      "upgrade_target": "v3.2",
      "newer_branch_target": "...",
      "newer_branch_latest": "..."
    }
  ]
}
FieldDescription
update_typepatch_update or minor_upgrade
upgrade_targetTarget minor version — only present for minor_upgrade
newer_branch_target / newer_branch_latestPresent when a newer major/minor branch is available

Container

container_stopped

Sent when a container stops unexpectedly (not via a manual stop action).

{
  "success": false,
  "event": "container_stopped",
  "message": "Resource stopped unexpectedly",
  "container_name": "...",
  "server_name": "...",
  "server_uuid": "...",
  "url": "..."
}

container_restarted

Sent when a container is automatically restarted by Coolify.

{
  "success": true,
  "event": "container_restarted",
  "message": "Resource restarted automatically",
  "container_name": "...",
  "server_name": "...",
  "server_uuid": "...",
  "url": "..."
}

url is only present when available.


Test

test

Sent when you click Send Test Notification in the Coolify dashboard.

{
  "success": true,
  "event": "test",
  "message": "This is a test webhook notification from Coolify.",
  "url": "..."
}

On this page