Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/Nettalco/dokploy/llms.txt

Use this file to discover all available pages before exploring further.

The Backups API lets you create scheduled or on-demand backup jobs for all supported database types (PostgreSQL, MySQL, MariaDB, MongoDB) and Compose services. Backups are stored in a configured destination (S3-compatible bucket). Volume backups extend this to Docker named volumes, enabling point-in-time recovery of persistent data. You can also list stored backup files to audit retention.

Endpoints

MethodEndpointDescription
POST/backup.createCreate a new backup schedule
GET/backup.oneFetch a backup schedule by ID
POST/backup.updateUpdate a backup schedule
POST/backup.removeDelete a backup schedule
POST/backup.manualBackupPostgresTrigger an immediate PostgreSQL backup
POST/backup.manualBackupMySqlTrigger an immediate MySQL backup
POST/backup.manualBackupMariadbTrigger an immediate MariaDB backup
POST/backup.manualBackupComposeTrigger an immediate Compose backup
POST/backup.manualBackupMongoTrigger an immediate MongoDB backup
POST/backup.manualBackupWebServerTrigger a web-server backup
GET/backup.listBackupFilesList stored backup files in a destination
GET/volumeBackups.listList volume backup schedules
POST/volumeBackups.createCreate a volume backup schedule
GET/volumeBackups.oneFetch a volume backup by ID
POST/volumeBackups.deleteDelete a volume backup schedule
POST/volumeBackups.updateUpdate a volume backup schedule
POST/volumeBackups.runManuallyTrigger an immediate volume backup

Key Endpoints

POST /backup.create

Create a scheduled backup for a database. Schedules use cron expressions.
serviceType
string
required
Type of database: postgres, mysql, mariadb, mongo.
postgresId / mysqlId / mariadbId / mongoId
string
required
ID of the database to back up (field name must match serviceType).
destinationId
string
required
ID of the backup destination (S3-compatible storage configured under Settings).
schedule
string
required
Cron expression for the backup schedule (e.g., 0 2 * * * for daily at 2 AM).
prefix
string
Object key prefix (folder path) inside the destination bucket.
enabled
boolean
Whether the schedule is active (default: true).
backupId
string
Unique ID of the created backup schedule.
curl -X POST 'https://your-instance.com/api/backup.create' \
  -H 'x-api-key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
    "serviceType": "postgres",
    "postgresId": "pg_abc123",
    "destinationId": "dest_s3_001",
    "schedule": "0 3 * * *",
    "prefix": "backups/production/postgres",
    "enabled": true
  }'

POST /backup.manualBackupPostgres

Run an immediate PostgreSQL backup outside of the schedule.
backupId
string
required
ID of the backup schedule to execute immediately.
curl -X POST 'https://your-instance.com/api/backup.manualBackupPostgres' \
  -H 'x-api-key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
    "backupId": "bkp_abc123"
  }'

GET /backup.listBackupFiles

List all backup files stored in a destination bucket, optionally filtered by prefix.
backupId
string
required
ID of the backup schedule whose files to list.
files
array
Array of stored backup file objects.
files[].name
string
Object key / filename in the destination bucket.
files[].size
number
File size in bytes.
files[].lastModified
string
ISO timestamp of last modification.
curl -G 'https://your-instance.com/api/backup.listBackupFiles' \
  -H 'x-api-key: YOUR_API_KEY' \
  --data-urlencode 'backupId=bkp_abc123'

POST /volumeBackups.create

Create a scheduled backup for a Docker named volume.
serviceId
string
required
ID of the service that owns the volume.
serviceType
string
required
Service type: application, postgres, mysql, mariadb, mongo, redis, or compose.
volumeName
string
required
Name of the Docker named volume to back up.
destinationId
string
required
ID of the backup destination.
schedule
string
required
Cron expression for the backup schedule.
prefix
string
Object key prefix inside the destination bucket.
enabled
boolean
Whether the schedule is active (default: true).
curl -X POST 'https://your-instance.com/api/volumeBackups.create' \
  -H 'x-api-key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
    "serviceId": "app_xyz789",
    "serviceType": "application",
    "volumeName": "app_uploads",
    "destinationId": "dest_s3_001",
    "schedule": "0 4 * * 0",
    "prefix": "volumes/production/uploads"
  }'

POST /volumeBackups.runManually

Immediately execute a volume backup outside the schedule.
volumeBackupId
string
required
ID of the volume backup schedule to run.
curl -X POST 'https://your-instance.com/api/volumeBackups.runManually' \
  -H 'x-api-key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
    "volumeBackupId": "vbkp_001"
  }'

Notes

Backup destinations must be configured under Settings → Destinations before creating backup schedules. Destinations support S3-compatible storage (AWS S3, Cloudflare R2, MinIO, etc.).
Use backup.manualBackupPostgres (and its equivalents for other database types) before running migrations or schema changes to create a safe restore point.

Build docs developers (and LLMs) love