Can AI Agents Sign Up and Use Your Database?
We asked 20 to sign up with 18 database providers, then use them. Most could not, and most often the product stopped them, not the agent. An agent that cannot get in moves on to a product that lets it in, and its developer goes with it.
Special thanks to our partners AgentMail and AgentPhone for giving us the right tools to run this experiment.
What we test
Whether an AI agent can sign up for a real database provider and use it. A session is a success when the database the agent set up works: we checked the implementation, not what the agent said.
How a session runs
Every session follows the same four steps. 1,035 scored sessions ran from November 2 to November 6, 2026.
- Set upThe agent gets its own sandbox, email inbox and password.
- Send the taskOne line: the product, and what to do with it.
- The agent gets to workIt signs up and sets everything up on its own.
- We checkWe test that what it made actually works.
A session in action
Three agents, the same task. For each one: what we asked, what it did, and whether it was a success.
6 tool calls · 0:04
- cd /sandbox/workspace; ls -la; echo; which neonctl npx node psql python3 curl playwright chromium 2>&1; echo ${GTM_PASS…
- python3 -c "import playwright; print('pw ok')" 2>&1; ls ~/.cache/ms-playwright 2>&1; npm ls -g 2>&1 | head; curl -sS -o…
- ls /usr/local/lib/node_modules/@playwright/mcp/node_modules 2>&1 | head; find / -iname "*chrom*" -maxdepth 4 -type d 2>…
- mkdir -p /tmp/neon && cd /tmp/neon && cat > s1.js <<'EOF'
- cd /tmp/neon && sed -i "s/waitUntil: 'networkidle'/waitUntil: 'domcontentloaded', timeout: 60000 });await p.waitForTime…
- cd /tmp/neon && sed -i "s/waitForTimeout(8000 });/waitForTimeout(8000);/" s1.js && node s1.js
1 tool call · 1:03
- Read
6 tool calls · 4:23
- mkdir -p /tmp/neondb && cd /tmp/neondb && timeout 120 npx -y neondb --help 2>&1 | tail -30
- cd /tmp/neondb && printf "CREATE TABLE notes (id serial PRIMARY KEY, content text NOT NULL);\nINSERT INTO notes (conten…
- sed -n 1,30p /sandbox/home/.npm/_npx/4cc84d3e1d5faf72/node_modules/neondb/dist/lib/utils/create-db.js
- cat /sandbox/home/.npm/_npx/4cc84d3e1d5faf72/node_modules/neondb/dist/lib/utils/urls.js | head -20; id=$(python3 -c "im…
- for i in 1 2 3; do id=$(python3 -c "import uuid;print(uuid.uuid4())"); curl -sS -X POST -H 'Content-Type: application/j…
- mkdir -p /tmp/pgclient && cd /tmp/pgclient && npm init -y >/dev/null && npm i pg >/dev/null 2>&1 && cat > /tmp/seed.js …
Secrets, addresses, links and ids in the transcript are masked.
How we define success
Every agent tries every product up to three times.
A success rate is the share of those tries that succeeded: for a product, averaged over the agents; for an agent, over the products. Each one counts the same.
| What the session left | Counts as |
|---|---|
| A working database, read back with the agent's credentials | Success |
| An account, a key or a project only | Not a success |
| The agent saying it worked | Not a success |
Results
The product matters more than the agent: success ran from 0.0% to 88.3% across products, and from 3.7% to 29.6% across agents. Every product and agent is on the leaderboard.
All products, ranked by success rate
| Main wall | Details | |||||
|---|---|---|---|---|---|---|
| 1 | Prisma PostgresServerless Postgres | 88.3% | $1.71 | 7.7 min | Sign-up refused, no reason givenThe site · 60% of failures | |
| 2 | UpstashServerless key-value (Redis) | 63.3% | $1.73 | 7.2 min | Email never verifiedNot attributed · 50% of failures | |
| 3 | NeonServerless Postgres | 43.3% | $1.21 | 10.2 min | Bot blockThe site · 53% of failures | |
| 3 | NileServerless Postgres | 43.3% | $0.83 | 4.2 min | OAuth onlyThe site · 94% of failures | |
| 5 | ClickHouse CloudReal-time analytics | 38.3% | $2.25 | 9.2 min | CaptchaThe site · 29% of failures |
Every product, every agentSuccessful sessions in each of the 360 cells
| Claude Fable 5.1 · Claude Code | GPT-5.5 · Codex | Composer 2.5 · Cursor | GPT-5.6 Sol (medium) · Cursor | GPT-5.5 · OpenClaw | Claude Sonnet 5.5 · Claude Code with a browser | GPT-6.1 Sol · Codex | GPT-6 Astra · Codex | Claude Opus 5.5 · Claude Code with a browser | GPT-5.5 · Hermes | Claude Opus 5.5 · Claude Code | Claude Opus 4.8 · Claude Code | GPT-6 Luna · Codex | Claude Sonnet 5.5 · Claude Code | Claude Opus 4.8 · OpenClaw | Claude Sonnet 5 · OpenClaw | GLM-5.3 Flash · OpenCode | Claude Opus 4.8 · Hermes | Claude Sonnet 5 · Claude Code | Claude Sonnet 5 · Hermes | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Prisma Postgres | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 2/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 0/1 | 3/3 | 2/3 | 1/3 |
| Upstash | 3/3 | 3/3 | 3/3 | 1/3 | 2/3 | 3/3 | 2/3 | 3/3 | 3/3 | 1/3 | 1/3 | 2/3 | 3/3 | 1/3 | 2/3 | 1/3 | 1/1 | 0/3 | 1/3 | 0/3 |
| Neon | 2/3 | 1/3 | 3/3 | 2/3 | 3/3 | 2/3 | 0/3 | 0/3 | 0/3 | 2/3 | 1/3 | 1/3 | 1/3 | 3/3 | 2/3 | 2/3 | 0/1 | 1/3 | 0/3 | 0/3 |
| Nile | 2/3 | 3/3 | 3/3 | 2/3 | 3/3 | 0/3 | 3/3 | 2/3 | 0/3 | 3/3 | 1/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 1/1 | 1/3 | 0/3 | 0/3 |
| ClickHouse Cloud | 3/3 | 2/3 | 0/3 | 2/3 | 0/3 | 3/3 | 2/3 | 2/3 | 3/3 | 0/3 | 2/3 | 2/3 | 0/3 | 0/3 | 0/3 | 1/3 | 0/1 | 0/3 | 0/3 | 1/3 |
| Turso | 2/3 | 1/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/2 | 0/3 | 0/3 | 0/2 | 0/3 | 0/3 | 0/3 | 0/1 | 0/3 | 0/3 | 0/3 |
| Cloudflare D1 | 0/3 | 1/3 | 1/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/1 | 0/3 | 0/3 | 0/3 |
| MongoDB Atlas | 0/3 | 1/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 1/3 | 0/3 | 0/3 | 0/3 | 0/1 | 0/3 | 0/3 | 0/3 |
| Appwrite Cloud | 0/3 | 0/3 | 1/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/1 | 0/3 | 0/3 | 0/3 |
| Nhost | 0/2 | 0/3 | 0/3 | 1/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/2 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/1 | 0/3 | 0/3 | 0/3 |
| Supabase | 1/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/1 | 0/3 | 0/3 | 0/3 |
| Aiven for PostgreSQL | 0/3 | 0/3 | 0/3 | 0/2 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/2 | 0/3 | 0/3 | 0/2 | 0/1 | 0/3 | 0/3 | 0/3 |
| CockroachDB Cloud | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/1 | 0/3 | 0/3 | 0/3 |
| Convex | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/1 | 0/3 | 0/3 | 0/3 |
| Render | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/1 | 0/3 | 0/3 | 0/3 |
| SingleStore Helios | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/1 | 0/3 | 0/3 | 0/3 |
| Tiger Cloud | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/1 | 0/3 | 0/3 | 0/3 |
| Xata | 0/3 | 0/3 | 0/3 | 0/2 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/2 | 0/3 | 0/3 | 0/3 | 0/1 | 0/3 | 0/3 | 0/3 |
What stops agents
67% of failed sessions stopped at a wall the product put up, not at a mistake the agent made.
| The stops met most often | Whose | Sessions |
|---|---|---|
| Captcha | The site | 373 |
| Captcha not met (page source or agent's word only) | Not attributed | 106 |
| Bot block | The site | 105 |
| Address refused (agent inbox domain) | The site | 51 |
| OAuth only | The site | 32 |
| Email never verified | Not attributed | 31 |
| Sign-up refused, no reason given | The site | 15 |
| Other | Not attributed | 13 |
By productEach product's failed sessions, by whose stop it was
How to let agents in
Most walls above can come down on the product's side. Here is what the sessions point to.
- 01Offer a sign-up without a browserAn API, a CLI or a one-click device login. Keep captchas for bots, not for the agent a developer sent.478sessions stopped at a captcha or a bot check
- 02Let agents start before the accountA temporary database the developer claims later. Agents took it wherever it existed (Prisma Postgres, Upstash, Neon, Cloudflare D1, MongoDB Atlas).50 of 172successes came this way
- 03Accept agent inboxesDon't reject agent mail providers as disposable. An agent signing up for a developer is a real lead.51sessions refused at the email address
- 04Keep an email sign-upAgents have no Google or GitHub account. Keep email and password next to the social buttons.32sessions met Google or GitHub only
- 05Send a code, not only a linkAn agent can type a code. A link that must open in the same browser often fails.31sessions never got past the email
- 06Test your sign-up with agentsWalls change with every release, yours and the agents'. Run agents through your sign-up on a schedule.
Technical methodology
For readers who want the sandbox, the stop rules, the statistics and the releases behind the numbers.
View technical detailsSandbox, stops, statistics and releases
Limits and freshness
A result is a dated snapshot, not a permanent label.