<!-- section: Data API · status: building · source: docs/data-api/02-create.md -->

> What you get, where it lives, and what starts costing money.


# Create a database

In the studio: open your project, choose **Database**, press **Create
database**. It takes about two seconds.

There is no API call for this, deliberately. Creating a database starts a
monthly charge, and starting a charge should be a decision somebody makes with
the price in front of them — not something a key does during a deploy that was
meant to be idempotent.

## What you get

| | |
|---|---|
| Postgres | 18 |
| Database | Named after your project — `booking` for a project called Booking |
| Role | `booking_owner`, and it really is the owner |
| Region | Your project's, Frankfurt unless you chose otherwise |
| Branch | `production` — the one every other branch is copied from |
| Compute | Autoscales 0.25–4 CU, sleeps after 5 minutes idle |
| Restore history | 7 days |

**The database is named after your project**, so the connection string in your
`.env` reads like something of yours rather than like a default somebody left in
place. Hyphens become underscores, because an unquoted Postgres identifier cannot
contain one: a project called `rapid-clicks` gets a database called
`rapid_clicks`.

**You are the owner.** That role can create schemas, extensions, tables and roles
of its own. Nothing of ours lives in your database, so there is nothing for a
restricted role to protect — and a tutorial that says `CREATE EXTENSION` should
work when you paste it.

A Compute Unit is one vCPU and 4 GB of RAM. Yours moves between a quarter of one
and four of them depending on what your queries need, and stops entirely when
nothing is connected. See [sleeping](/docs/data-api/sleeping).

## Where it lives

The region is your project's, chosen when the project was created. Put your
application in the same one: a query that crosses an ocean pays that crossing on
every round trip, and an ORM that does three queries per request pays it three
times.

Moving an existing database between regions is not something we can do in place.
If you need a different one, the honest answer is a new project and a dump.

## What it costs from that moment

The [minimum](/docs/data-api) starts the moment the database exists, not
the moment you connect to it. An empty database is still storage somebody is
holding for you.

What it does *not* start is compute: nothing is awake until something connects.

## One database, many branches

A project gets one database, and grows sideways: a
[branch](/docs/data-api/browsing) is a copy of it, made in about a second
whatever its size, with its own connection string. That is how you get a preview
environment with real data in it, or a place to rehearse a migration.

## Nothing else is provisioned with it

No connection pooler of ours, no ORM, no migrations, no seed data. You get a
Postgres database and its address. Everything about what goes in it is yours,
which is the point — see [connecting](/docs/data-api/connect).
