Appwrite MySQL API

Managed MySQL databases — bring your own MySQL or run Appwrite-hosted instances, announced 2026-09-02. 34 operations across 23 paths in the Appwrite 2.0.0 OpenAPI.

Business capability
IT Infrastructure Management BC-600.50

Operations 34

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 /mysql List dedicated MySQL databases · List databases #
Ask an LLM
“Which dedicated MySQL databases do I have running?”
“Can I page through my dedicated databases with queries?”
Tell an agent
List all my dedicated MySQL databases.
List dedicated databases matching {queries}.
POST /mysql Provision a dedicated MySQL database · Create database #
Ask an LLM
“How do I spin up a dedicated MySQL database in Appwrite?”
“Can I enable replicas and point-in-time recovery when creating a database?”
Tell an agent
Create a dedicated MySQL database {name} with ID {databaseId}.
Provision database {databaseId} named {name} on specification {specification} with {replicas} replicas.
GET /mysql/specifications List available database sizes and prices · 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 on my plan?”
Tell an agent
List the dedicated database specifications on my plan.
Show me the database sizes with their prices and overage rates.
GET /mysql/{databaseId} Get a dedicated database's configuration · Get database #
Ask an LLM
“What configuration is a dedicated database running with?”
“Can I look up one dedicated MySQL database by ID?”
Tell an agent
Show the configuration of database {databaseId}.
Get dedicated database {databaseId}.
PATCH /mysql/{databaseId} Change a dedicated database's settings · Update database #
Ask an LLM
“Can I resize a dedicated database without downtime?”
“How do I turn on storage autoscaling for an existing database?”
Tell an agent
Move database {databaseId} to specification {specification}.
Enable storage autoscaling on database {databaseId} up to {storageAutoscalingMaxGb} GB.
DELETE /mysql/{databaseId} Delete a dedicated MySQL database · Delete database #
Ask an LLM
“How do I permanently delete a dedicated MySQL database?”
“Can I retry deletion if cleanup of a database got stuck?”
Tell an agent destructive · confirm first
Delete dedicated database {databaseId}.
Tear down MySQL database {databaseId} and clean up its resources.
GET /mysql/{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 backups for database {databaseId}.
List backups of {databaseId} matching {queries}.
POST /mysql/{databaseId}/backups Take a manual database backup · Create backup #
Ask an LLM
“How do I take an on-demand backup of a dedicated database?”
“Is a manual backup created synchronously or in the background?”
Tell an agent
Back up database {databaseId} now.
Create a {type} backup of database {databaseId}.
GET /mysql/{databaseId}/backups/policies List scheduled backup policies · List backup policies #
Ask an LLM
“Which scheduled backup policies are set on my database?”
“Can I see the backup schedules for a dedicated database?”
Tell an agent
List backup schedules for database {databaseId}.
Show backup policies on {databaseId} matching {queries}.
POST /mysql/{databaseId}/backups/policies Schedule recurring database backups · Create backup policy #
Ask an LLM
“How do I schedule automatic backups for a dedicated database?”
“Can I set how long scheduled backups are retained?”
Tell an agent
Create backup policy {policyId} named {name} on database {databaseId} running on schedule {schedule}, keeping {retention}.
Schedule {name} backups of {databaseId} at {schedule} with retention {retention}, ID {policyId}.
GET /mysql/{databaseId}/backups/policies/{policyId} Get one scheduled backup policy · Get backup policy #
Ask an LLM
“What schedule and retention does a particular backup policy use?”
“Can I look up a single backup policy by ID?”
Tell an agent
Show backup policy {policyId} on database {databaseId}.
Get the schedule of policy {policyId} for {databaseId}.
PATCH /mysql/{databaseId}/backups/policies/{policyId} Change a backup policy's schedule or retention · Update backup policy #
Ask an LLM
“Can I change the schedule of an existing backup policy?”
“Can I pause a backup policy without deleting it?”
Tell an agent
Change backup policy {policyId} on {databaseId} to run on schedule {schedule}.
Set policy {policyId} on database {databaseId} enabled to {enabled}.
DELETE /mysql/{databaseId}/backups/policies/{policyId} Delete a scheduled backup policy · Delete backup policy #
Ask an LLM
“How do I stop a scheduled backup policy for good?”
“Are backups already taken kept after I delete their policy?”
Tell an agent destructive · confirm first
Delete backup policy {policyId} on database {databaseId}.
Remove the scheduled backups policy {policyId} from {databaseId}.
PUT /mysql/{databaseId}/backups/storage Send backups to off-cluster object storage · Update backup storage #
Ask an LLM
“Can database backups be copied to my own S3, GCS or Azure Blob bucket?”
“What credentials are needed to configure off-cluster backup storage?”
Tell an agent
Store backups of {databaseId} in {provider} bucket {bucket} using access key {accessKey} and secret {secretKey}.
Configure off-cluster backups for {databaseId} to {provider} bucket {bucket} in {region}, keys {accessKey} and {secretKey}.
GET /mysql/{databaseId}/backups/{backupId} Get one backup's status and size · Get backup #
Ask an LLM
“Has my manual database backup finished?”
“How large is a specific database backup?”
Tell an agent
Show backup {backupId} of database {databaseId}.
Check the status of backup {backupId} on {databaseId}.
DELETE /mysql/{databaseId}/backups/{backupId} Delete a database backup · Delete backup #
Ask an LLM
“How do I permanently remove a database backup?”
“Can a deleted backup be recovered afterwards?”
Tell an agent destructive · confirm first
Delete backup {backupId} of database {databaseId}.
Remove backup {backupId} from {databaseId} storage.
GET /mysql/{databaseId}/branches List ephemeral database branches · List branches #
Ask an LLM
“Which test branches exist for my dedicated database?”
“When do my database branches expire?”
Tell an agent
List branches of database {databaseId}.
Show the ephemeral branches and their expiry for {databaseId}.
POST /mysql/{databaseId}/branches Branch a database for testing · Create branch #
Ask an LLM
“Can I clone my production database to test a schema migration?”
“How long does an ephemeral database branch live?”
Tell an agent
Create a branch of database {databaseId}.
Branch {databaseId} as {branchId} with a time-to-live of {ttl}.
DELETE /mysql/{databaseId}/branches/{branchId} Delete a database branch · Delete branch #
Ask an LLM
“How do I delete a test branch I no longer need?”
“Is deleting a database branch reversible?”
Tell an agent destructive · confirm first
Delete branch {branchId} of database {databaseId}.
Remove the ephemeral branch {branchId} from {databaseId}.
PATCH /mysql/{databaseId}/credentials Rotate a database's connection credentials · Update credentials #
Ask an LLM
“How do I rotate the password on my dedicated database?”
“What happens if I rotate credentials while the database is hibernated?”
Tell an agent
Rotate the connection credentials for database {databaseId}.
Queue a credential rotation on {databaseId}.
POST /mysql/{databaseId}/executions Run a SQL statement on a database · Create execution #
Ask an LLM
“Can I run a SQL query against my dedicated database from the console API?”
“Can I pass bound parameters and a timeout with a SQL statement?”
Tell an agent
Run SQL {sql} on database {databaseId}.
Execute {sql} on {databaseId} with bindings {bindings} and a {timeoutSeconds}-second timeout.
POST /mysql/{databaseId}/failovers Fail over to a replica · Create failover #
Ask an LLM
“How do I manually promote a replica to primary?”
“Can I choose which replica becomes the new primary during failover?”
Tell an agent
Trigger a failover on database {databaseId}.
Promote replica {targetReplicaId} to primary for {databaseId}.
PATCH /mysql/{databaseId}/maintenance Set a database's maintenance window · Update maintenance #
Ask an LLM
“When do minor version upgrades happen on my dedicated database?”
“Can I move the maintenance window to a quieter day and hour?”
Tell an agent
Set the maintenance window for {databaseId} to {day} at {hourUtc} UTC.
Schedule maintenance on database {databaseId} for {day}, hour {hourUtc} UTC.
POST /mysql/{databaseId}/migrations Switch a database between shared and dedicated · Create migration #
Ask an LLM
“Can I convert a shared serverless database into a dedicated one?”
“Is there downtime when moving a database from dedicated back to shared?”
Tell an agent
Migrate database {databaseId} to {targetType}.
Convert {databaseId} to {targetType} on specification {specification}.
GET /mysql/{databaseId}/operations List a database's lifecycle operations · List operations #
Ask an LLM
“Has my database update or restore finished yet?”
“Can I filter a database's operation history by status?”
Tell an agent
List recent lifecycle operations for database {databaseId}.
Show {limit} operations on {databaseId} with status {status}.
GET /mysql/{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 point-in-time recovery window for {databaseId}.
Get the earliest and latest restore points for database {databaseId}.
GET /mysql/{databaseId}/pooler Get connection pooler settings · Get pooler #
Ask an LLM
“What connection pooling mode is my database using?”
“How many max connections does my database pooler allow?”
Tell an agent
Show the connection pooler settings for {databaseId}.
Get pool size and max connections for database {databaseId}.
PATCH /mysql/{databaseId}/pooler Tune the connection pooler · Update pooler #
Ask an LLM
“Can I raise the max connections on my database pooler?”
“Can the pooler split reads and writes across replicas?”
Tell an agent
Set the pooler on {databaseId} to mode {mode} with {maxConnections} max connections.
Turn read-write splitting to {readWriteSplitting} on the pooler for {databaseId}.
GET /mysql/{databaseId}/replicas Check replica health and lag · Get replicas #
Ask an LLM
“How far behind are my database replicas?”
“Is high availability healthy on my dedicated database?”
Tell an agent
Show replica status and replication lag for {databaseId}.
Check the high availability status of database {databaseId}.
GET /mysql/{databaseId}/restorations List a database's restorations · List restorations #
Ask an LLM
“Which restores have been run on my database?”
“Can I filter restorations by status or type?”
Tell an agent
List restorations for database {databaseId}.
List {type} restorations on {databaseId} with status {status}.
POST /mysql/{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 backup?”
“Can I roll a database back to a specific timestamp?”
Tell an agent
Restore database {databaseId} from backup {backupId}.
Restore {databaseId} to the point in time {targetTime}.
GET /mysql/{databaseId}/restorations/{restorationId} Get one restoration's status · Get restoration #
Ask an LLM
“Has my database restore completed?”
“Can I look up one restoration by ID?”
Tell an agent
Show restoration {restorationId} of database {databaseId}.
Check progress of restore {restorationId} on {databaseId}.
GET /mysql/{databaseId}/status Check a database's real-time health · Get status #
Ask an LLM
“Is my dedicated database healthy and ready right now?”
“How long has my database been up, and what are its connection details?”
Tell an agent
Check the live health of database {databaseId}.
Show uptime, readiness and volume info for {databaseId}.
POST /mysql/{databaseId}/upgrades Upgrade a database's MySQL version · Create upgrade #
Ask an LLM
“How do I upgrade my dedicated database to a newer MySQL version?”
“Does a version upgrade cause downtime?”
Tell an agent
Upgrade database {databaseId} to version {targetVersion}.
Move {databaseId} onto MySQL {targetVersion} with a blue-green cutover.

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-mysql-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-mysql-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: 2.0.0
  title: Appwrite Mysql 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 (122 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/appwrite/refs/heads/main/openapi/appwrite-mysql-api-openapi.yml