# Backups

| Method | Path | What it does | Permission | Sudo | Approval |
|---|---|---|---|---|---|
| GET | `/api/apps/{domain}/restore-drills` | List Drills | `backups.read` |  |  |
| POST | `/api/apps/{domain}/restore-drills` | Run Drill | `backups.run` |  |  |
| GET | `/api/backups` | List Backups | `backups.read` |  |  |
| POST | `/api/backups` | Create Backup | `backups.run` |  |  |
| GET | `/api/backups/encryption` | Status | `backups.read` |  |  |
| POST | `/api/backups/encryption/disable` | Disable | `backups.manage` | yes |  |
| POST | `/api/backups/encryption/enable` | Enable | `backups.manage` | yes |  |
| POST | `/api/backups/encryption/keys` | Import Key | `backups.manage` | yes |  |
| GET | `/api/backups/encryption/keys/{key_id}` | Show Key | `secrets.reveal` | yes |  |
| POST | `/api/backups/encryption/rotate` | Rotate | `backups.manage` | yes |  |
| GET | `/api/backups/encryption/seal-existing` | Seal Plan | `backups.read` |  |  |
| POST | `/api/backups/encryption/seal-existing` | Seal Existing | `backups.manage` | yes |  |
| GET | `/api/backups/failures` | List Failures | `backups.read` |  |  |
| GET | `/api/backups/failures/{failure_id}` | Failure Detail | `backups.read` |  |  |
| GET | `/api/backups/failures/{failure_id}/output` | Failure Output | `backups.read` |  |  |
| GET | `/api/backups/storage` | Get Storage Info | `backups.read` |  |  |
| GET | `/api/backups/{backup_id}` | Get Backup | `backups.read` |  |  |
| DELETE | `/api/backups/{backup_id}` | Delete Backup | `backups.manage` | yes |  |
| POST | `/api/backups/{backup_id}/push` | Push Backup | `backups.manage` | yes |  |
| POST | `/api/backups/{backup_id}/restore` | Restore Backup | `backups.manage` | yes |  |
| POST | `/api/backups/{backup_id}/verify` | Verify Backup | `backups.run` |  |  |

