Backups
Backup management for databases, volumes, and buckets. Supports S3-compatible storage destinations, scheduled backups, and point-in-time recovery (PITR) for PostgreSQL.
Backup Destinations
Configure where backups are stored.
| Method | Path | Description |
|---|---|---|
GET | /api/v1/settings/backup-destinations | List destinations |
POST | /api/v1/settings/backup-destinations | Create destination |
GET | /api/v1/settings/backup-destinations/:id | Get destination |
PUT | /api/v1/settings/backup-destinations/:id | Update destination |
DELETE | /api/v1/settings/backup-destinations/:id | Delete destination |
Create Destination
{
"name": "s3-backups",
"provider": "s3",
"access_key": "AKIAIOSFODNN7EXAMPLE",
"secret_key": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
"bucket": "my-backups",
"region": "us-east-1",
"endpoint": "https://s3.amazonaws.com"
}Providers: s3, r2 (Cloudflare), backblaze, minio, custom
For Cloudflare R2, also provide account_id and optionally jurisdiction.
Database Backups
| Method | Path | Description |
|---|---|---|
GET | /api/v1/databases/:id/backups | List backups |
POST | /api/v1/databases/:id/backups | Create manual backup |
GET | /api/v1/databases/:id/recovery-window | Get PITR recovery window |
POST | /api/v1/databases/:id/restore | Restore from backup |
POST | /api/v1/databases/:id/pitr | Point-in-time recovery |
POST | /api/v1/databases/:id/pitr-clone | Clone from PITR snapshot |
POST | /api/v1/databases/:id/switch | Switch to restored database |
POST | /api/v1/databases/:id/import | Import SQL dump |
POST | /api/v1/databases/:id/restore-from-path | Restore from file path |
PITR Restore
Restore a PostgreSQL database to a specific point in time:
POST /api/v1/databases/:id/pitr
{ "target_time": "2024-01-15T10:30:00Z" }PITR Clone
Create a new database from a point-in-time snapshot:
POST /api/v1/databases/:id/pitr-clone
{
"target_time": "2024-01-15T10:30:00Z",
"new_name": "my-db-clone"
}Volume & Bucket Backups
| Method | Path | Description |
|---|---|---|
POST | /api/v1/backups/database/:id/restore | Restore database backup by backup ID |
POST | /api/v1/backups/volume/:id/restore | Restore volume backup by backup ID |
POST | /api/v1/backups/volume/:id/clone | Clone volume to new workload |
GET | /api/v1/applications/:id/volume-backups | List volume backups for an app |
POST | /api/v1/applications/:id/volume-backups | Create volume backup for an app |
Backup Schedules
Automate backups with cron schedules.
| Method | Path | Description |
|---|---|---|
GET | /api/v1/backup-schedules | List schedules |
POST | /api/v1/backup-schedules | Create schedule |
GET | /api/v1/backup-schedules/:id | Get schedule |
PUT | /api/v1/backup-schedules/:id | Update schedule |
DELETE | /api/v1/backup-schedules/:id | Delete schedule |
POST | /api/v1/backup-schedules/:id/run | Run schedule immediately |
Create Schedule
{
"database_id": "uuid",
"destination_id": "uuid",
"cron_expression": "0 2 * * *",
"retention_count": 7
}Use database_id for database backups or application_id for volume backups (mutually exclusive).
Last updated on