Serverless Postgres 16 and 17 · $0 while idle

Postgres for agents.Cheaper than Neon.Wakes faster.

A CLI and API an agent can drive end to end. Full branching: fork production at now, a timestamp or an LSN, and branches cost nothing. A real Neon invoice comes out 48% cheaper here. Cold starts answer in 537 ms at p50, against Neon's 580 ms.

No card. Free runs a real project. Import from anywhere in one command.
Cold start: 30 wakes each, same Ashburn metro, September 2026.

$ bata db branch createcopy-on-write
mainwrites continue
staging0 B
pr-41920 B

Both branches hold the whole database. Storage grows only where a branch diverges from its parent.

01Price

Neon's line items, priced here.

Same shape of product: serverless compute, branches, storage, restore. Every line costs less, and two of them cost nothing.

LineNeonBataDB
Compute, one 4 GB hour$0.16 to $0.222$0.12
Storage, per GB-month$0.35$0.25
A branch, per month$1.50$0
Point-in-time restore$0.20 per GB-month24 h included
Idle compute$0$0
A real August invoice
$531.85$278

1,993 Neon CU-hours, 26 branches, 50 GB and 824 GB of transfer, priced line by line at our rates. 48% less pay as you go, 51% less on Team.

Price your own invoice
02Branching

One branch per pull request. Free.

Fork production, point the preview at it, delete it on merge. The fork is instant because nothing is copied: it shares the parent's pages until you write.

Fork point
Now, a timestamp, or an LSN

Fork production as of Tuesday 14:02. The preview is the same next week.

Price per branch
$0

Neon charges $1.50 a branch-month. Here a branch shares its parent's storage until it diverges, and idle compute is free.

Isolation
Full read/write

Writes never reach the parent. Reset a branch from its parent, or delete it, at any time.

Lifetime
Yours, or expiring

Give a preview branch an expiry. Nothing is found running six weeks later on the bill.

03Agents

Built to be run by an agent.

Every command takes one API key, prints JSON with --json, and exits non-zero when it fails. Create, connect, branch, import, query and read the bill without a human in the loop.

# Create a project. Returns when it can take a query.
$ bata create my-app
Project my-app is ready.
# Connect with anything that speaks Postgres
$ psql $(bata db url)
psql (17.6)
# Fork it for a pull request. Free until it diverges.
$ bata db branch create pr-4192
Branch 'pr-4192' created.
# Move a database from Neon, RDS, Supabase, anywhere
$ bata import --source "$DATABASE_URL"
Streams the dump in, no files on disk.
Verifies row counts and sequences on both sides.

Give Claude Code or Codex one key and the bata binary. It can stand up a database, branch it per PR, import production data and check what it is spending, all from the shell.

Start free
04Platform

Everything is included.

No add-ons. No separate SKUs. What follows comes with every database, on Free too.

Scale to zero

Compute suspends when nobody is querying and wakes on the next connection. You pay for the seconds it served traffic.

idle = $0.00

Point-in-time restore

Restore any branch to any second in its history window. A day of history comes with every plan, longer windows on Team.

bata restore create

Query insights

Per-query latency, call counts, cache hit ratio and slow queries, with compute cost attributed to the queries that caused it.

cost by query

Autoscaling

Set a floor and a ceiling in CU. Compute moves between them with demand.

1 to 16 CU

Pooling and HTTP

Transaction pooling built in, plus SQL over HTTP for edge runtimes that cannot hold a TCP connection.

pooled + HTTP

Teams and audit

Owner, admin, member and viewer roles. API keys scoped to a team. Every change in an audit log.

RBAC + audit
05Plans

Two rates. Three plans.

Compute $0.015 per CU-hour while it runs, storage $0.25 per GB-month. That is the whole rate card. Drag the inputs and watch the bill.

Estimate your bill
Real rates · $0.015/CU-hr · $0.25/GB-mo
Active hours / day8h

Scale-to-zero means you're billed only for the hours it actually serves traffic. Idle time costs $0.

5 GB
1 GB200 GB
50 GB
0 GB2,000 GB
Estimated monthly cost
$3.10/mo

After your free 100 CU-hours, 1 GB storage and 500 GB transfer are applied.

Compute
1 CU × 8h/day → 240 CU-hrs− 100 free
$2.10
Storage
5 GB × $0.25/GB-mo− 1 GB free
$1.00
Transfer
50 GB × $0.08/GB− 500 GB free
$0

An always-on server this size would cost $9.30 in compute. Scale-to-zero saves you $7.20/mo.

Start free, no credit card

Estimate only. You're billed per millisecond of active compute, so real bills track usage exactly.

Start free. Pay as you go. Or prepay and save.

Every plan is the same product. Free is capped. Pay as you go bills the two rates above. Team prepays a month of usage for less than it costs at list.

Free
$0no card

A real project, not a demo. Stops at the allowance instead of billing you.

Compute
100 CU-hrs/mo
Storage
1 GB
Transfer
500 GB
Branching, restore, insights, CLI
Hard cap, never a surprise bill
Start free
Pay as you goRecommended
$0+ usage

Add a card. The cap comes off and you pay the two rates for what runs.

Compute
$0.015 / CU-hr
Storage
$0.25 / GB-mo
Transfer
500 GB, then $0.08 / GB
Compute up to
8 CU (4 GB)
Spend cap
you set it
No seats, no platform fee
Start free, add a card later
Team
$69/mo per org

Prepays 5,000 CU-hours and 50 GB, $87.50 at list. Cheaper than pay as you go past $70 of usage.

Included compute
5,000 CU-hrs/mo
Included storage
50 GB
Then
the same two rates
Compute up to
16 CU (8 GB)
Reserved usage
10 to 25% off
Priority email support
Switch to Team

Move a database in one command.

bata import streams it in and verifies every table. Your first month is priced on this page, not on a call.