Delete a database backup
delete_database_backup
Permanently deletes one database backup of a site, leaving the live database of the site untouched.
The archive is destroyed and cannot be recovered, and because a database backup is the only copy of those rows from that moment, that moment is lost entirely. Deleting it does not hand a manual backup slot back: that slot stays counted for a day.
A backup still being exported is refused until it finishes, with This backup is still being exported! It needs the Delete projects permission in the workspace, so a role without it is refused however many times the call is retried.
The tool tells the client to confirm the exact archive with you first, and never to delete backups to save space on its own initiative. See Delete a database backup.
Request
Call it with a POST to https://api.modulify.ai/v1/delete_database_backup, sending the inputs below as a JSON object. The token needs the sites:delete scope.
This method is marked destructive: it deletes or overwrites data. Check the inputs before you call it, and send an Idempotency-Key header whenever you might retry it.
curl -X POST https://api.modulify.ai/v1/delete_database_backup \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"projectId":"PROJECT_ID","backupId":"BACKUP_ID"}'Over MCP, the same method is the delete_database_backup tool.
Inputs
| Input | Type | Required | Description |
|---|---|---|---|
projectId |
string | Yes | The site the backup belongs to. |
backupId |
string | Yes | The backup to delete, from list_database_backups. |
Response
Every call answers with the JSON envelope of success, message, data, code and version. data holds the result described above, and on a method that returns a total, count carries it. The response headers carry the call's X-Request-Id and what is left of your per-minute budget in X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset. Errors explains every status code a call can answer with.