Appwrite PostgreSQL API

Managed PostgreSQL hosting with pgvector, Prisma support, backups, replicas and point-in-time recovery. 37 operations across 25 paths in the Appwrite 2.0.0 OpenAPI.

Operations 37

Each operation below carries the questions people ask an LLM about it and the instructions they give an agent to run it. Generated by API Evangelist overlay

GET /postgresql List dedicated databases · List databases #
Ask an LLM
“Which dedicated PostgreSQL databases do I have running in Appwrite?”
“Can I page through my dedicated databases with queries?”
Tell an agent
List all my dedicated databases.
List dedicated databases matching {queries}.
POST /postgresql Provision a dedicated database · Create database #
Ask an LLM
“How do I spin up a new dedicated Postgres database?”
“Can I turn on replicas and point-in-time recovery when provisioning a database?”
Tell an agent
Create a dedicated database {name} with ID {databaseId} on version {version}.
Provision database {databaseId} named {name} on the {specification} spec with {replicas} replicas.
GET /postgresql/specifications List database sizes and prices on my plan · List specifications #
Ask an LLM
“What CPU, memory and storage sizes can I pick for a dedicated database?”
“How much does each dedicated database specification cost, including overage?”
Tell an agent
List the dedicated database specifications on my plan.
Show prices and resource limits for every database size I can choose.
GET /postgresql/{databaseId} Get a dedicated database's configuration · Get database #
Ask an LLM
“Is my new database still provisioning or ready to use?”
“Where do I see the full configuration of one dedicated database?”
Tell an agent
Show dedicated database {databaseId}.
Get the configuration and connection string of database {databaseId}.
PATCH /postgresql/{databaseId} Change a dedicated database's configuration · Update database #
Ask an LLM
“Can I resize a database's CPU and memory without downtime?”
“How do I enable the SQL API or cap how many rows it returns?”
Tell an agent
Resize database {databaseId} to the {specification} specification.
Set database {databaseId} to autoscale storage up to {storageAutoscalingMaxGb} GB.
DELETE /postgresql/{databaseId} Delete a dedicated database · Delete database #
Ask an LLM
“How do I permanently tear down a dedicated database?”
“Can I retry deleting a database that got stuck in the deleting state?”
Tell an agent destructive · confirm first
Delete dedicated database {databaseId}.
Permanently destroy database {databaseId} and clean up all its resources.
GET /postgresql/{databaseId}/backups List a database's backups · List backups #
Ask an LLM
“What backups exist for my dedicated database?”
“Can I filter a database's backups by status or type?”
Tell an agent
List the backups of database {databaseId}.
List backups for database {databaseId} matching {queries}.
POST /postgresql/{databaseId}/backups Take a manual database backup · Create backup #
Ask an LLM
“Can I take an on-demand backup of a database before a risky change?”
“Does a manual backup finish right away or run in the background?”
Tell an agent
Back up database {databaseId} now.
Create a {type} backup of database {databaseId}.
GET /postgresql/{databaseId}/backups/policies List a database's scheduled backup policies · List backup policies #
Ask an LLM
“What automatic backup schedules are set on my database?”
“Which backup policies are configured for one dedicated database?”
Tell an agent
List the backup policies of database {databaseId}.
List scheduled backup policies on database {databaseId} matching {queries}.
POST /postgresql/{databaseId}/backups/policies Schedule recurring database backups · Create backup policy #
Ask an LLM
“How do I set up nightly backups for a dedicated database?”
“Can I choose how long scheduled backups are retained?”
Tell an agent
Create backup policy {policyId} named {name} on database {databaseId} running {schedule} and keeping backups {retention} days.
Schedule {type} backups for database {databaseId} on {schedule} with retention {retention}, policy {policyId} called {name}.
GET /postgresql/{databaseId}/backups/policies/{policyId} Get one backup policy · Get backup policy #
Ask an LLM
“What schedule and retention does a particular backup policy use?”
“Is a given backup policy currently enabled?”
Tell an agent
Show backup policy {policyId} on database {databaseId}.
Get the schedule of policy {policyId} for database {databaseId}.
PATCH /postgresql/{databaseId}/backups/policies/{policyId} Change a backup policy's schedule or retention · Update backup policy #
Ask an LLM
“Can I pause a backup policy without deleting it?”
“How do I change the schedule of an existing backup policy?”
Tell an agent
Change backup policy {policyId} on database {databaseId} to run on {schedule}.
Set enabled to {enabled} for backup policy {policyId} of database {databaseId}.
DELETE /postgresql/{databaseId}/backups/policies/{policyId} Delete a scheduled backup policy · Delete backup policy #
Ask an LLM
“If I delete a backup policy, what happens to the backups it already took?”
“How do I stop a database's scheduled backups by removing the policy?”
Tell an agent destructive · confirm first
Delete backup policy {policyId} from database {databaseId}.
Remove the scheduled backup policy {policyId} on database {databaseId}.
PUT /postgresql/{databaseId}/backups/storage Send database backups to external storage · Update backup storage #
Ask an LLM
“Can I copy my database backups to my own S3, GCS or Azure Blob bucket?”
“What credentials does off-cluster backup storage need?”
Tell an agent
Store backups of database {databaseId} in {provider} bucket {bucket} using access key {accessKey} and secret {secretKey}.
Configure off-cluster backups for {databaseId} to {provider} bucket {bucket} in {region} under prefix {prefix}, key {accessKey}, secret {secretKey}.
GET /postgresql/{databaseId}/backups/{backupId} Get one database backup · Get backup #
Ask an LLM
“Has my manual backup finished, and how big is it?”
“Where can I see the status and timestamps of one backup?”
Tell an agent
Show backup {backupId} of database {databaseId}.
Get the size and status of backup {backupId} on database {databaseId}.
DELETE /postgresql/{databaseId}/backups/{backupId} Delete a database backup · Delete backup #
Ask an LLM
“Can I permanently remove an old database backup from storage?”
“Is deleting a backup reversible?”
Tell an agent destructive · confirm first
Delete backup {backupId} of database {databaseId}.
Permanently remove backup {backupId} from database {databaseId}.
GET /postgresql/{databaseId}/branches List a database's ephemeral branches · List branches #
Ask an LLM
“Which temporary branches exist for my database and when do they expire?”
“Can I see the namespace each database branch lives in?”
Tell an agent
List the branches of database {databaseId}.
Show every ephemeral branch and its expiry for database {databaseId}.
POST /postgresql/{databaseId}/branches Branch a database for testing · Create branch #
Ask an LLM
“Can I make a throwaway copy of my production database to test a schema migration?”
“How long does a database branch last before it expires?”
Tell an agent
Create a branch of database {databaseId}.
Branch database {databaseId} as {branchId} and expire it after {ttl}.
DELETE /postgresql/{databaseId}/branches/{branchId} Delete a database branch · Delete branch #
Ask an LLM
“How do I throw away a test branch of my database early?”
“Does deleting a branch also remove its snapshot and volume?”
Tell an agent destructive · confirm first
Delete branch {branchId} of database {databaseId}.
Tear down the ephemeral branch {branchId} on database {databaseId}.
PATCH /postgresql/{databaseId}/credentials Rotate database connection credentials · Update credentials #
Ask an LLM
“How do I rotate the password on my dedicated database?”
“After a credential rotation, where do I get the new connection string?”
Tell an agent
Rotate the connection credentials for database {databaseId}.
Queue a primary credential rotation on database {databaseId}.
POST /postgresql/{databaseId}/executions Run a SQL statement against a database · Create execution #
Ask an LLM
“Can I run SQL against my dedicated database from the console API?”
“Does the SQL endpoint support bound parameters instead of string interpolation?”
Tell an agent
Run {sql} on database {databaseId}.
Execute {sql} against database {databaseId} with bindings {bindings}.
GET /postgresql/{databaseId}/extensions List PostgreSQL extensions · List extensions #
Ask an LLM
“Which Postgres extensions are installed on my database?”
“What extensions are available that I could still install?”
Tell an agent
List the extensions on database {databaseId}.
Show installed and available extensions for database {databaseId}.
POST /postgresql/{databaseId}/extensions Install a PostgreSQL extension · Create extension #
Ask an LLM
“How do I install a new Postgres extension on my database?”
“Does installing an extension happen immediately or asynchronously?”
Tell an agent
Install the {name} extension on database {databaseId}.
Enable extension {name} for database {databaseId}.
DELETE /postgresql/{databaseId}/extensions/{extensionName} Uninstall a PostgreSQL extension · Delete extension #
Ask an LLM
“Can I remove an extension I no longer need from Postgres?”
“How do I check that an extension uninstall has finished?”
Tell an agent destructive · confirm first
Uninstall extension {extensionName} from database {databaseId}.
Remove the {extensionName} extension on database {databaseId}.
POST /postgresql/{databaseId}/failovers Fail over a database to a replica · Create failover #
Ask an LLM
“How do I manually promote a replica to primary on a high-availability database?”
“Can I choose which replica gets promoted during a failover?”
Tell an agent
Trigger a failover on database {databaseId}.
Fail database {databaseId} over to replica {targetReplicaId}.
PATCH /postgresql/{databaseId}/maintenance Set a database's maintenance window · Update maintenance #
Ask an LLM
“When do minor version upgrades happen, and can I choose the time?”
“How do I move the maintenance window to a quiet hour?”
Tell an agent
Set the maintenance window for database {databaseId} to {day} at {hourUtc} UTC.
Schedule maintenance on database {databaseId} for {day}, hour {hourUtc} UTC.
POST /postgresql/{databaseId}/migrations Convert a database between shared and dedicated · Create migration #
Ask an LLM
“Can I move a shared serverless database onto a dedicated instance?”
“Will converting a dedicated database to shared cause downtime?”
Tell an agent
Migrate database {databaseId} to {targetType}.
Convert database {databaseId} to a {targetType} instance on the {specification} spec.
GET /postgresql/{databaseId}/operations List a database's lifecycle operations · List operations #
Ask an LLM
“What provisioning, update and restore actions have run on my database?”
“Can I see only the lifecycle operations that failed?”
Tell an agent
List the lifecycle operations of database {databaseId}.
List the last {limit} operations on database {databaseId} with status {status}.
GET /postgresql/{databaseId}/pitr Get point-in-time recovery windows · Get PITR #
Ask an LLM
“How far back can I restore my database to a point in time?”
“What are the earliest and latest recovery points available?”
Tell an agent
Show the PITR window for database {databaseId}.
Get the earliest and latest restore points of database {databaseId}.
GET /postgresql/{databaseId}/pooler Get connection pooler settings · Get pooler #
Ask an LLM
“What pool mode and max connections is my database pooler using?”
“Where can I see the pool size settings for a database?”
Tell an agent
Show the pooler configuration of database {databaseId}.
Get the pool mode and pool size for database {databaseId}.
PATCH /postgresql/{databaseId}/pooler Configure the connection pooler · Update pooler #
Ask an LLM
“Can I raise the maximum connections on my database's pooler?”
“Is it possible to turn on read/write splitting in the pooler?”
Tell an agent
Set the pooler on database {databaseId} to {mode} mode.
Raise max connections on database {databaseId} pooler to {maxConnections} with default pool size {defaultPoolSize}.
GET /postgresql/{databaseId}/replicas Check replica and replication lag status · Get replicas #
Ask an LLM
“How far behind are my database replicas?”
“Is my high-availability database running in sync or async mode?”
Tell an agent
Show the replicas of database {databaseId}.
Get replication lag for each replica of database {databaseId}.
GET /postgresql/{databaseId}/restorations List a database's restorations · List restorations #
Ask an LLM
“What restores have been run on my database?”
“Can I list only point-in-time restorations that are still in progress?”
Tell an agent
List restorations for database {databaseId}.
List {type} restorations of database {databaseId} with status {status}.
POST /postgresql/{databaseId}/restorations Restore a database from backup or a point in time · Create restoration #
Ask an LLM
“How do I restore my database from a specific backup?”
“Can I roll a database back to an exact timestamp?”
Tell an agent
Restore database {databaseId} from backup {backupId}.
Restore database {databaseId} to the point in time {targetTime}.
GET /postgresql/{databaseId}/restorations/{restorationId} Get one database restoration · Get restoration #
Ask an LLM
“Has my database restore completed yet?”
“Where can I see the type and timestamps of one restoration?”
Tell an agent
Show restoration {restorationId} of database {databaseId}.
Get the status of restore {restorationId} on database {databaseId}.
GET /postgresql/{databaseId}/status Check a database's live health · Get status #
Ask an LLM
“Is my dedicated database healthy and accepting connections right now?”
“What is the uptime and volume usage of my database?”
Tell an agent
Check the health of database {databaseId}.
Get real-time readiness, uptime and volume info for database {databaseId}.
POST /postgresql/{databaseId}/upgrades Upgrade a database's engine version · Create upgrade #
Ask an LLM
“How do I upgrade my database to a newer Postgres major version?”
“Does an engine upgrade take the database offline?”
Tell an agent
Upgrade database {databaseId} to version {targetVersion}.
Start a blue-green upgrade of database {databaseId} to {targetVersion}.

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/appwrite:appwrite-postgresql-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

appwrite-postgresql-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: 2.0.0
  title: Appwrite Postgresql API
  description: Appwrite backend as a service cuts up to 70% of the time and costs required for building a modern application. We abstract and simplify common development tasks behind a REST APIs, to help you develop your app in a fast and secure way. For full API documentation and tutorials go to https://appwrite.io/docs
  termsOfService: https://appwrite.io/policy/terms
  contact:
    name: Appwrite Team
    url: https://appwrite.io/support
    email: team@appwrite.io
  license:
    name: BSD-3-Clause
    url: https://raw.githubusercontent.com/appwrite/appwrite/master/LICENSE
servers:
- url: https://cloud.appwrite.io/v1
  description: Appwrite Cloud endpoint.
- url: https://{region}.cloud.appwrite.io/v1
  description: Appwrite Cloud regional endpoint. Replace `{region}` with your project region.
  variables:
    region:
      default: fra
      description: Appwrite Cloud region.
tags:


# --- truncated at 32 KB (128 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/appwrite/refs/heads/main/openapi/appwrite-postgresql-api-openapi.yml