planetscale Databases API
Manage PlanetScale databases, including creating, listing, updating settings, and deleting databases.
Manage PlanetScale databases, including creating, listing, updating settings, and deleting databases.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/planetscale-databases-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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: 3.2.0
info:
title: PlanetScale Platform Backups Databases API
description: The PlanetScale Platform API provides programmatic access to manage PlanetScale serverless MySQL-compatible databases. It allows developers to create and manage databases, branches, deploy requests, passwords, backups, service tokens, organization members, teams, bouncers, and billing data. The API supports authentication via service tokens and OAuth, enabling integration into CI/CD pipelines and infrastructure-as-code workflows.
version: 1.0.0
contact:
name: PlanetScale Support
url: https://support.planetscale.com
termsOfService: https://planetscale.com/legal/tos
license:
name: Proprietary
url: https://planetscale.com/legal/tos
servers:
- url: https://api.planetscale.com/v1
description: PlanetScale Production API
security:
- serviceToken: []
tags:
- name: Databases
description: Manage PlanetScale databases, including creating, listing, updating settings, and deleting databases.
paths:
/organizations/{organization}/databases:
get:
operationId: listDatabases
summary: List databases
description: Returns a list of all databases in the specified organization.
tags:
- Databases
parameters:
- $ref: '#/components/parameters/OrganizationParam'
- $ref: '#/components/parameters/PageParam'
- $ref: '#/components/parameters/PerPageParam'
responses:
'200':
description: Successful response with list of databases
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/Database'
'401':
$ref: '#/components/responses/Unauthorized'
post:
operationId: createDatabase
summary: Create a database
description: Creates a new database in the specified organization.
tags:
- Databases
parameters:
- $ref: '#/components/parameters/OrganizationParam'
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- name
properties:
name:
type: string
description: The name of the database.
plan:
type: string
description: The billing plan for the database.
enum:
- hobby
- scaler
- scaler_pro
cluster_size:
type: string
description: The cluster size for the production branch.
region:
type: string
description: The region slug where the database will be created.
responses:
'201':
description: Database created successfully
content:
application/json:
schema:
$ref: '#/components/schemas/Database'
'401':
$ref: '#/components/responses/Unauthorized'
'422':
$ref: '#/components/responses/UnprocessableEntity'
/organizations/{organization}/databases/{database}:
get:
operationId: getDatabase
summary: Get a database
description: Returns details about a specific database, including its configuration, state, and production branch information.
tags:
- Databases
parameters:
- $ref: '#/components/parameters/OrganizationParam'
- $ref: '#/components/parameters/DatabaseParam'
responses:
'200':
description: Successful response with database details
content:
application/json:
schema:
$ref: '#/components/schemas/Database'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
patch:
operationId: updateDatabaseSettings
summary: Update database settings
description: Updates settings for a specific database, such as production branch protection, insights, and default branch.
tags:
- Databases
parameters:
- $ref: '#/components/parameters/OrganizationParam'
- $ref: '#/components/parameters/DatabaseParam'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
default_branch:
type: string
description: The name of the default branch.
production_branch_web_console:
type: boolean
description: Whether the web console is enabled for production branches.
insights_enabled:
type: boolean
description: Whether PlanetScale Insights is enabled.
migration_framework:
type: string
description: The migration framework used for schema changes.
migration_table_name:
type: string
description: The name of the migration tracking table.
require_approval_for_deploy:
type: boolean
description: Whether deploy requests require approval before deployment.
allow_data_branching:
type: boolean
description: Whether data branching is enabled.
responses:
'200':
description: Database settings updated successfully
content:
application/json:
schema:
$ref: '#/components/schemas/Database'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
delete:
operationId: deleteDatabase
summary: Delete a database
description: Deletes a database and all of its branches. This action is irreversible.
tags:
- Databases
parameters:
- $ref: '#/components/parameters/OrganizationParam'
- $ref: '#/components/parameters/DatabaseParam'
responses:
'204':
description: Database deleted successfully
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
components:
parameters:
PerPageParam:
name: per_page
in: query
required: false
description: The number of results per page.
schema:
type: integer
minimum: 1
maximum: 100
default: 25
OrganizationParam:
name: organization
in: path
required: true
description: The name of the organization.
schema:
type: string
PageParam:
name: page
in: query
required: false
description: The page number for pagination.
schema:
type: integer
minimum: 1
default: 1
DatabaseParam:
name: database
in: path
required: true
description: The name of the database.
schema:
type: string
responses:
Unauthorized:
description: Authentication failed. The service token or OAuth token is missing, invalid, or lacks the required permissions.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
UnprocessableEntity:
description: The request was well-formed but contains invalid parameters or violates business rules.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
NotFound:
description: The requested resource was not found.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
schemas:
Database:
type: object
description: A PlanetScale serverless MySQL-compatible database with branching and deploy request support.
properties:
id:
type: string
description: The unique identifier of the database.
name:
type: string
description: The name of the database.
state:
type: string
description: The current state of the database.
enum:
- pending
- ready
- sleeping
- awaking
plan:
type: string
description: The billing plan for the database.
cluster_size:
type: string
description: The cluster size of the production branch.
region:
type: object
description: The region where the database is hosted.
properties:
slug:
type: string
description: The region slug identifier.
display_name:
type: string
description: The human-readable region name.
default_branch:
type: string
description: The name of the default production branch.
production_branch_web_console:
type: boolean
description: Whether the web console is enabled on production branches.
insights_enabled:
type: boolean
description: Whether PlanetScale Insights analytics is enabled.
migration_framework:
type: string
description: The migration framework configured for schema changes.
require_approval_for_deploy:
type: boolean
description: Whether deploy requests require approval before deployment.
allow_data_branching:
type: boolean
description: Whether data branching is enabled.
created_at:
type: string
format: date-time
description: The timestamp when the database was created.
updated_at:
type: string
format: date-time
description: The timestamp when the database was last updated.
html_url:
type: string
format: uri
description: The URL to the database in the PlanetScale dashboard.
Error:
type: object
description: An error response from the PlanetScale API.
properties:
code:
type: string
description: A machine-readable error code.
message:
type: string
description: A human-readable error message.
securitySchemes:
serviceToken:
type: apiKey
in: header
name: Authorization
description: Service token authentication. Use the format 'ServiceToken {token_id}:{token_value}' in the Authorization header.
bearerAuth:
type: http
scheme: bearer
description: OAuth 2.0 bearer token authentication. Obtain tokens via the PlanetScale OAuth authorization code flow.
externalDocs:
description: PlanetScale API Documentation
url: https://planetscale.com/docs/api/reference/getting-started-with-planetscale-api