Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.dbhost.app/llms.txt

Use this file to discover all available pages before exploring further.

DBHost provides two APIs:
  1. Control plane API (https://dbhost.app/api/v1/) — User-facing REST API authenticated with API keys. Use this from your applications, scripts, and CI/CD pipelines. Paid users can issue either selected-database keys or full-account keys.
  2. VPS agent API (https://agent.dbhost.app/) — Internal API for direct VPS operations. Authenticated with a shared secret. Used by the control plane; not intended for end users.
This reference documents the control plane API.

API key scope model

Paid users can create two API key scope types:
  • Selected databases — Recommended least-privilege option. The key only sees and operates on its assigned databases.
  • Full account access — Can create and manage every database in the owning account.
Selected-database keys only list their assigned databases. For database-specific routes, out-of-scope access behaves like a missing resource and returns DATABASE_NOT_FOUND. Full-account-only routes, such as database creation, return KEY_SCOPE_DENIED when used with a selected-database key.

Base URL

https://dbhost.app/api/v1

Common cURL examples

List databases visible to the authenticated key:
curl -H "Authorization: Bearer dbh_your_api_key_here" \
  https://dbhost.app/api/v1/databases
Create a database with a full-account key:
curl -X POST https://dbhost.app/api/v1/databases \
  -H "Authorization: Bearer dbh_your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{"name":"analytics-v2","displayName":"Analytics V2"}'
Trigger a backup:
curl -X POST \
  -H "Authorization: Bearer dbh_your_api_key_here" \
  https://dbhost.app/api/v1/databases/<database-id>/backups

Response format

Most successful responses return JSON. File downloads such as backup exports return the raw attachment body, and some delete routes return 204 No Content. Errors use a standard envelope:
{
  "error": {
    "code": "DATABASE_NOT_FOUND",
    "message": "Database 'foo' does not exist",
    "details": []
  }
}

Rate limits

No rate limits are currently enforced. This may change as the platform scales.