# Databases

| Method | Path | What it does | Permission | Sudo | Approval |
|---|---|---|---|---|---|
| GET | `/api/apps/{domain}/databases` | List App Databases | `databases.read` |  |  |
| POST | `/api/apps/{domain}/databases` | Provision App Database | `databases.write` |  |  |
| POST | `/api/apps/{domain}/databases/link` | Link App Database | `databases.write` |  |  |
| DELETE | `/api/apps/{domain}/databases/{engine}/{name}` | Unlink App Database | `databases.manage` |  |  |
| POST | `/api/apps/{domain}/databases/{engine}/{name}/url` | Reveal App Database Url | `secrets.reveal` | yes |  |
| GET | `/api/databases/backup-policies` | List Policies | `backups.read` |  |  |
| GET | `/api/databases/backup-policies/{engine}/{database}` | Get Policy | `backups.read` |  |  |
| PUT | `/api/databases/backup-policies/{engine}/{database}` | Set Policy | `backups.manage` | yes |  |
| DELETE | `/api/databases/backup-policies/{engine}/{database}` | Remove Policy | `backups.manage` | yes |  |
| POST | `/api/databases/backup-policies/{engine}/{database}/run` | Run Policy | `backups.run` |  |  |
| GET | `/api/databases/backups` | List Backups | `databases.read` |  |  |
| POST | `/api/databases/backups` | Create Backup | `backups.run` |  |  |
| GET | `/api/databases/backups/remote` | List Remote Backups | `backups.read` |  |  |
| GET | `/api/databases/backups/remote/databases` | List Remote Databases | `backups.read` |  |  |
| POST | `/api/databases/backups/restore` | Restore Backup | `databases.manage` | yes |  |
| POST | `/api/databases/backups/restore-remote` | Restore Remote Backup | `databases.manage` | yes |  |
| GET | `/api/databases/backups/suggest-name` | Suggest Restore Name | `databases.read` |  |  |
| DELETE | `/api/databases/backups/{name}` | Delete Backup | `backups.manage` | yes |  |
| GET | `/api/databases/backups/{name}/data` | Dump Data | `databases.manage` | yes |  |
| GET | `/api/databases/backups/{name}/download` | Download Backup | `databases.manage` | yes |  |
| POST | `/api/databases/backups/{name}/push` | Push Backup | `backups.manage` |  |  |
| POST | `/api/databases/backups/{name}/verify` | Verify Backup | `backups.run` |  |  |
| POST | `/api/databases/connection-string` | Get Connection String | `secrets.reveal` |  |  |
| GET | `/api/databases/console/history` | Console History | `databases.read` |  |  |
| DELETE | `/api/databases/console/history` | Clear Console History | `databases.read` |  |  |
| GET | `/api/databases/console/saved` | List Saved Queries | `databases.read` |  |  |
| POST | `/api/databases/console/saved` | Save Query | `databases.read` |  |  |
| PUT | `/api/databases/console/saved/{saved_id}` | Update Saved Query | `databases.read` |  |  |
| DELETE | `/api/databases/console/saved/{saved_id}` | Delete Saved Query | `databases.read` |  |  |
| GET | `/api/databases/databases` | List Databases | `databases.read` |  |  |
| POST | `/api/databases/databases` | Create Database | `databases.write` |  |  |
| POST | `/api/databases/databases/adopt` | Adopt Databases | `databases.write` |  |  |
| GET | `/api/databases/databases/{engine}/{name}` | Get Database Info | `databases.read` |  |  |
| DELETE | `/api/databases/databases/{engine}/{name}` | Drop Database | `databases.manage` | yes |  |
| GET | `/api/databases/databases/{engine}/{name}/access` | List Access | `databases.read` |  |  |
| PUT | `/api/databases/databases/{engine}/{name}/access/{username}` | Set Profile | `databases.write` |  |  |
| GET | `/api/databases/databases/{engine}/{name}/connect` | Get Connect | `databases.read` |  |  |
| GET | `/api/databases/databases/{engine}/{name}/extensions` | List Extensions | `databases.read` |  |  |
| POST | `/api/databases/databases/{engine}/{name}/extensions` | Add Extension | `databases.manage` | yes |  |
| DELETE | `/api/databases/databases/{engine}/{name}/extensions/{extension}` | Remove Extension | `databases.manage` | yes |  |
| GET | `/api/databases/databases/{engine}/{name}/fix-owner` | Preview Fix Owner | `databases.read` |  |  |
| POST | `/api/databases/databases/{engine}/{name}/fix-owner` | Apply Fix Owner | `databases.manage` | yes |  |
| POST | `/api/databases/databases/{engine}/{name}/forget` | Forget Database | `databases.manage` | yes |  |
| GET | `/api/databases/databases/{engine}/{name}/key` | Preview Key | `databases.read` |  |  |
| GET | `/api/databases/databases/{engine}/{name}/keys` | Scan Keys | `databases.read` |  |  |
| POST | `/api/databases/databases/{engine}/{name}/links/detected` | Record Detected Link | `databases.write` |  |  |
| GET | `/api/databases/databases/{engine}/{name}/metrics` | Database Metrics | `databases.read` |  |  |
| GET | `/api/databases/databases/{engine}/{name}/overview` | Get Database Overview | `databases.read` |  |  |
| GET | `/api/databases/databases/{engine}/{name}/relation` | Describe Relation | `databases.read` |  |  |
| GET | `/api/databases/databases/{engine}/{name}/relations` | List Relations | `databases.read` |  |  |
| GET | `/api/databases/databases/{engine}/{name}/rows` | Read Rows | `databases.read` |  |  |
| POST | `/api/databases/databases/{engine}/{name}/rows` | Insert Row | `databases.write` | yes | yes |
| PATCH | `/api/databases/databases/{engine}/{name}/rows` | Update Row | `databases.write` | yes | yes |
| POST | `/api/databases/databases/{engine}/{name}/rows/delete` | Delete Row | `databases.write` | yes | yes |
| GET | `/api/databases/databases/{engine}/{name}/schemas` | List Schemas | `databases.read` |  |  |
| GET | `/api/databases/databases/{engine}/{name}/slow-queries` | Slow Queries | `databases.read` |  |  |
| GET | `/api/databases/databases/{engine}/{name}/tags` | Get Database Tags | `databases.read` |  |  |
| PUT | `/api/databases/databases/{engine}/{name}/tags` | Put Database Tags | `databases.write` |  |  |
| GET | `/api/databases/engines` | List Engines | `databases.read` |  |  |
| GET | `/api/databases/engines/catalog` | Get Engine Catalog | `databases.read` |  |  |
| GET | `/api/databases/engines/tls` | List Status | `databases.read` |  |  |
| POST | `/api/databases/engines/tls/refresh` | Refresh | `databases.manage` | yes |  |
| PUT | `/api/databases/engines/{engine}/credentials` | Set Engine Credentials | `databases.manage` | yes |  |
| GET | `/api/databases/engines/{engine}/exposure` | Get Engine Exposure | `databases.read` |  |  |
| POST | `/api/databases/engines/{engine}/install` | Install Engine | `databases.manage` | yes |  |
| GET | `/api/databases/engines/{engine}/limits` | Get Engine Limits | `databases.read` |  |  |
| PUT | `/api/databases/engines/{engine}/limits` | Put Engine Limits | `databases.manage` | yes |  |
| GET | `/api/databases/engines/{engine}/logs` | Get Engine Logs | `databases.read` |  |  |
| GET | `/api/databases/engines/{engine}/metrics` | Engine Metrics | `databases.read` |  |  |
| GET | `/api/databases/engines/{engine}/privileges` | Get Engine Privileges | `databases.read` |  |  |
| POST | `/api/databases/engines/{engine}/restart` | Restart Engine | `apps.operate` |  |  |
| GET | `/api/databases/engines/{engine}/settings` | Get Engine Settings | `databases.read` |  |  |
| PUT | `/api/databases/engines/{engine}/settings` | Put Engine Settings | `databases.manage` | yes |  |
| POST | `/api/databases/engines/{engine}/start` | Start Engine | `apps.operate` |  |  |
| GET | `/api/databases/engines/{engine}/status` | Get Engine Status | `databases.read` |  |  |
| POST | `/api/databases/engines/{engine}/stop` | Stop Engine | `apps.operate` |  |  |
| GET | `/api/databases/engines/{engine}/tls` | Get Status | `databases.read` |  |  |
| PUT | `/api/databases/engines/{engine}/tls` | Enable Tls | `databases.manage` | yes |  |
| DELETE | `/api/databases/engines/{engine}/tls` | Disable Tls | `databases.manage` | yes |  |
| POST | `/api/databases/engines/{engine}/tls/plan` | Plan Tls | `databases.read` |  |  |
| POST | `/api/databases/engines/{engine}/uninstall` | Uninstall Engine | `databases.manage` | yes |  |
| GET | `/api/databases/exposure` | Get Exposure | `databases.read` |  |  |
| POST | `/api/databases/imports` | Import Dump | `databases.manage` | yes |  |
| POST | `/api/databases/imports/cluster` | Import Cluster | `databases.manage` | yes |  |
| POST | `/api/databases/imports/cluster/plan` | Plan Cluster Import | `databases.manage` |  |  |
| POST | `/api/databases/imports/inspect` | Inspect Dump | `databases.manage` |  |  |
| POST | `/api/databases/imports/uploads` | Start Upload | `databases.manage` |  |  |
| GET | `/api/databases/imports/uploads/{upload_id}` | Upload Status | `databases.manage` |  |  |
| PUT | `/api/databases/imports/uploads/{upload_id}` | Send Chunk | `databases.manage` |  |  |
| DELETE | `/api/databases/imports/uploads/{upload_id}` | Discard Upload | `databases.manage` |  |  |
| POST | `/api/databases/imports/uploads/{upload_id}/complete` | Complete Upload | `databases.manage` |  |  |
| GET | `/api/databases/instances` | List Instances | `databases.read` |  |  |
| POST | `/api/databases/instances` | Create Instance | `databases.manage` | yes |  |
| GET | `/api/databases/instances/catalog` | Instance Catalog | `databases.read` |  |  |
| POST | `/api/databases/instances/migrate` | Migrate Engine | `databases.manage` | yes |  |
| POST | `/api/databases/instances/migrate/plan` | Plan Migration | `databases.read` |  |  |
| GET | `/api/databases/instances/migrations` | List Migrations | `databases.read` |  |  |
| POST | `/api/databases/instances/migrations/{migration_id}/rollback` | Rollback Migration | `databases.manage` | yes |  |
| POST | `/api/databases/instances/plan` | Plan Instance | `databases.read` |  |  |
| GET | `/api/databases/instances/tls-authority` | Get Authority | `databases.read` |  |  |
| GET | `/api/databases/instances/{name}` | Get Instance | `databases.read` |  |  |
| DELETE | `/api/databases/instances/{name}` | Remove Instance | `databases.manage` | yes |  |
| GET | `/api/databases/instances/{name}/launch` | Get Launch | `databases.read` |  |  |
| PUT | `/api/databases/instances/{name}/launch` | Set Launch | `databases.manage` | yes |  |
| POST | `/api/databases/instances/{name}/launch/plan` | Plan Launch | `databases.read` |  |  |
| GET | `/api/databases/instances/{name}/remove-plan` | Plan Remove Instance | `databases.read` |  |  |
| POST | `/api/databases/instances/{name}/start` | Start Instance | `apps.operate` |  |  |
| POST | `/api/databases/instances/{name}/stop` | Stop Instance | `apps.operate` |  |  |
| GET | `/api/databases/instances/{name}/tls` | Get Tls | `databases.read` |  |  |
| PUT | `/api/databases/instances/{name}/tls` | Set Tls | `databases.manage` | yes |  |
| POST | `/api/databases/instances/{name}/tls/plan` | Plan Tls | `databases.read` |  |  |
| POST | `/api/databases/instances/{name}/tls/renew` | Renew Tls | `databases.manage` | yes |  |
| GET | `/api/databases/instances/{name}/tuning` | Get Tuning | `databases.read` |  |  |
| PUT | `/api/databases/instances/{name}/tuning` | Set Tuning | `databases.manage` | yes |  |
| POST | `/api/databases/instances/{name}/tuning/plan` | Plan Tuning | `databases.read` |  |  |
| POST | `/api/databases/instances/{name}/upgrade` | Upgrade Instance | `databases.manage` | yes |  |
| POST | `/api/databases/moves` | Move Database | `databases.manage` | yes |  |
| POST | `/api/databases/moves/plan` | Plan Move | `databases.read` |  |  |
| GET | `/api/databases/pitr` | Get Status | `databases.read` |  |  |
| POST | `/api/databases/pitr/base` | Take Base | `databases.manage` | yes |  |
| POST | `/api/databases/pitr/disable` | Disable | `databases.manage` | yes |  |
| POST | `/api/databases/pitr/enable` | Enable | `databases.manage` | yes |  |
| POST | `/api/databases/pitr/enable/plan` | Plan Enable | `databases.read` |  |  |
| POST | `/api/databases/pitr/fetch` | Fetch | `databases.manage` | yes |  |
| POST | `/api/databases/pitr/restore` | Restore | `databases.manage` | yes |  |
| POST | `/api/databases/pitr/restore/plan` | Plan Restore | `databases.read` |  |  |
| POST | `/api/databases/pitr/sync` | Sync | `databases.manage` | yes |  |
| GET | `/api/databases/provisioning/choices` | Provisioning Choices | `databases.read` |  |  |
| GET | `/api/databases/provisioning/plan` | Provisioning Plan | `databases.read` |  |  |
| GET | `/api/databases/public` | List Public | `databases.read` |  |  |
| POST | `/api/databases/public` | Open Public | `databases.manage` | yes |  |
| POST | `/api/databases/public/plan` | Plan Public | `databases.read` |  |  |
| GET | `/api/databases/public/{engine}/{database}` | Get Public | `databases.read` |  |  |
| DELETE | `/api/databases/public/{engine}/{database}` | Close Public | `databases.manage` | yes |  |
| POST | `/api/databases/public/{engine}/{database}/reveal` | Reveal Public | `secrets.reveal` | yes |  |
| POST | `/api/databases/query` | Execute Query | `databases.read` |  | yes |
| POST | `/api/databases/query/explain` | Explain Query | `databases.read` |  | yes |
| POST | `/api/databases/query/export` | Export Query | `databases.read` |  |  |
| GET | `/api/databases/replicas` | List Status | `databases.read` |  |  |
| POST | `/api/databases/replicas/join` | Join | `databases.manage` | yes |  |
| POST | `/api/databases/replicas/join/plan` | Plan Join | `databases.manage` |  |  |
| GET | `/api/databases/replicas/{engine}` | Get Status | `databases.read` |  |  |
| POST | `/api/databases/replicas/{engine}` | Prepare | `databases.manage` | yes |  |
| POST | `/api/databases/replicas/{engine}/plan` | Plan Prepare | `databases.read` |  |  |
| POST | `/api/databases/replicas/{engine}/promote` | Promote | `databases.manage` | yes |  |
| DELETE | `/api/databases/replicas/{engine}/{name}` | Remove | `databases.manage` | yes |  |
| POST | `/api/databases/replicas/{engine}/{name}/token` | Show Token | `databases.manage` | yes |  |
| POST | `/api/databases/users` | Create User | `databases.write` |  |  |
| POST | `/api/databases/users/grant` | Grant Privileges | `databases.write` |  |  |
| POST | `/api/databases/users/revoke` | Revoke Privileges | `databases.write` |  |  |
| GET | `/api/databases/users/{engine}` | List Users | `databases.read` |  |  |
| DELETE | `/api/databases/users/{engine}/{username}` | Delete User | `databases.manage` | yes |  |
| POST | `/api/databases/users/{engine}/{username}/password` | Rotate Password | `databases.manage` | yes |  |
| POST | `/api/databases/users/{engine}/{username}/password/reveal` | Reveal Password | `secrets.reveal` | yes |  |

