Backup API

Configure automated backup policies and manage backup jobs for your resources.

Backup Policies

List Policies

GET /api/v1/backup/policies
[
  {
    "id": "bp_a1b2c3d4",
    "name": "daily-database-backup",
    "resource_type": "database",
    "resource_id": "db_e5f6g7h8",
    "schedule": "0 2 * * *",
    "retention_days": 30,
    "enabled": true,
    "last_run_at": "2024-01-15T02:00:00Z",
    "created_at": "2024-01-01T10:00:00Z"
  }
]

Create a Policy

POST /api/v1/backup/policies
name
string
required
Policy name
resource_type
string
required
Resource type: droplet, database, or volume
resource_id
string
required
ID of the resource to back up
schedule
string
required
Cron expression for backup schedule
retention_days
integer
Days to retain backups (default: 7)
{
  "name": "daily-database-backup",
  "resource_type": "database",
  "resource_id": "db_e5f6g7h8",
  "schedule": "0 2 * * *",
  "retention_days": 30
}

Get a Policy

GET /api/v1/backup/policies/{id}

Update a Policy

PATCH /api/v1/backup/policies/{id}

Delete a Policy

DELETE /api/v1/backup/policies/{id}

Backup Jobs

List Jobs

GET /api/v1/backup/jobs
[
  {
    "id": "job_001",
    "policy_id": "bp_a1b2c3d4",
    "status": "completed",
    "size_bytes": 104857600,
    "started_at": "2024-01-15T02:00:00Z",
    "finished_at": "2024-01-15T02:05:00Z"
  }
]

Trigger a Backup

Manually trigger a backup job:
POST /api/v1/backup/jobs
policy_id
string
required
Backup policy to run

Job Status

StatusDescription
pendingQueued for execution
runningBackup in progress
completedSuccessfully completed
failedBackup failed

Schedule Examples

Cron ExpressionDescription
0 2 * * *Daily at 2:00 AM
0 */6 * * *Every 6 hours
0 2 * * 0Weekly on Sunday at 2:00 AM
0 2 1 * *Monthly on the 1st at 2:00 AM