---
title: "Create a database"
method: POST
path: "/organizations/{organization}/databases"
tags: ["Databases"]
---

# Create a database

`POST /organizations/{organization}/databases`

### Authorization
A service token or OAuth token must have at least one of the following access or scopes in order to use this API endpoint:

**Service Token Accesses**
 `create_databases`

**OAuth Scopes**

 | Resource | Scopes |
| :------- | :---------- |
| Organization | `create_databases` |

## Path parameters

- `organization` string, required

## Request body

- object
  - `name` string, required — Name of the database
  - `region` string — The region the database will be deployed in. If left blank, defaults to the organization's default region.
  - `cluster_size` string, required — The database cluster size name (e.g., 'PS_10', 'PS_80'). Use the 'List available cluster sizes' endpoint to get available options for your organization. /v1/organizations/:organization/cluster-size-skus
  - `replicas` integer — The number of replicas for the database. 0 for non-HA, 2+ for HA.
  - `kind` 'mysql' | 'postgresql' — The kind of database to create.
  - `major_version` string — For PostgreSQL databases, the PostgreSQL major version to use for the database. Defaults to the latest available major version.
  - `storage` object
    - `minimum_storage_bytes` integer — The initial minimum storage size in bytes.
    - `maximum_storage_bytes` integer — The maximum storage size in bytes for autoscaling.

## Response `201`

Returns the created database

- object
  - `id` string, required — The ID of the database
  - `url` string, required — The URL to the database API endpoint
  - `branches_url` string, required — The URL to retrieve this database's branches via the API
  - `branches_count` integer, required — The total number of database branches
  - `open_schema_recommendations_count` integer, required — The total number of schema recommendations
  - `development_branches_count` integer, required — The total number of database development branches
  - `production_branches_count` integer, required — The total number of database production branches
  - `issues_count` integer, nullable — The total number of ongoing issues within a database
  - `multiple_admins_required_for_deletion` boolean, required — If the database requires multiple admins for deletion
  - `ready` boolean, required — If the database is ready to be used
  - `at_backup_restore_branches_limit` boolean, required — If the database has reached its backup restored branch limit
  - `at_development_branch_usage_limit` boolean, required — If the database has reached its development branch limit
  - `data_import` object, nullable
    - `state` string, required — State of the data import
    - `import_check_errors` string, required — Errors encountered during the import check
    - `started_at` string, nullable, required — When the import started
    - `finished_at` string, nullable, required — When the import finished
    - `data_source` object, required
      - `hostname` string, required — Hostname of the data source
      - `port` integer, required — Port of the data source
      - `database` string, required — Database name of the data source
  - `region` object, required
    - `id` string, required — The ID of the region
    - `provider` string, required — Provider for the region (ex. AWS)
    - `enabled` boolean, required — Whether or not the region is currently active
    - `public_ip_addresses` string[], required — Public IP addresses for the region
    - `display_name` string, required — Name of the region
    - `location` string, required — Location of the region
    - `slug` string, required — The slug of the region
    - `current_default` boolean, required — True if the region is the default for new branch creation
    - `mysql_supported` boolean, required — Whether the region supports MySQL/Vitess databases
    - `postgresql_supported` boolean, required — Whether the region supports PostgreSQL databases
  - `html_url` string, required — The URL to see this database's branches in the web UI
  - `name` string, required — Name of the database
  - `state` 'pending' | 'importing' | 'sleep_in_progress' | 'sleeping' | 'awakening' | 'import_ready' | 'ready', required — State of the database
  - `sharded` boolean, required — If the database is sharded
  - `default_branch_shard_count` integer, required — Number of shards in the default branch
  - `default_branch_read_only_regions_count` integer, required — Number of read only regions in the default branch
  - `default_branch_table_count` integer, required — Number of tables in the default branch schema
  - `default_branch` string, required — The default branch for the database
  - `require_approval_for_deploy` boolean, required — Whether an approval is required to deploy schema changes to this database
  - `resizing` boolean, required — True if a branch is currently resizing
  - `resize_queued` boolean, required — True if a branch has a queued resize request
  - `config_changing` boolean, required — True if a config change is in progress
  - `config_change_queued` boolean, required — True if a config change is queued for maintenance window
  - `allow_data_branching` boolean, required — Whether seeding branches with data is enabled for all branches
  - `foreign_keys_enabled` boolean, required — Whether foreign key constraints are enabled
  - `automatic_migrations` boolean, nullable — Whether to automatically manage Rails migrations during deploy requests.
  - `restrict_branch_region` boolean, required — Whether to restrict branch creation to one region
  - `insights_raw_queries` boolean, required — Whether raw SQL queries are collected
  - `plan` string, required — The database plan
  - `insights_enabled` boolean, required — True if query insights is enabled for the database
  - `production_branch_web_console` boolean, required — Whether web console is enabled for production branches
  - `migration_table_name` string, nullable — Table name to use for copying schema migration data.
  - `migration_framework` string, nullable — Framework used for applying migrations.
  - `created_at` string, required — When the database was created
  - `updated_at` string, required — When the database was last updated
  - `schema_last_updated_at` string, nullable, required — When the default branch schema was last changed.
  - `kind` 'mysql' | 'postgresql', required — The kind of database

## Other responses

- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not Found
- `500` — Internal Server Error

---

[API](https://skmtc.net/planetscale/apis/planetscale-api.md) · [All operations](https://skmtc.net/planetscale/apis/planetscale-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/planetscale/planetscale-api/versions/fa19f3305241/schema)
