Scope
Book a demo

Step 1 of 2

Book a demo

Your work email first, then pick a time.

All posts

ResearchNov 6, 20267 min read

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.

18Database providers
20
1,035Scored sessions
16.6%Success rate (172 of 1,035 sessions)
Every product and agent, rankedOpen the leaderboard

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.

From scratchEvery agent starts with nothing: no account, no database.
Fact-checkedWe never take the agent's word for it: we check the result ourselves.
Less variance20 agent configurations, and up to three runs each per product, so no single run decides a result.

How a session runs

Every session follows the same four steps. 1,035 scored sessions ran from November 2 to November 6, 2026.

  1. Set upThe agent gets its own sandbox, email inbox and password.
  2. Send the taskOne line: the product, and what to do with it.
  3. The agent gets to workIt signs up and sets everything up on its own.
  4. 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.

ScenarioSet up a Neon database
Success, without an accountBlocked at sign-up, it found the product's own account-less path and finished. 5.1 min.
What we asked · 0:00Set up a Neon Postgres database (https://neon.com) with a table called notes holding one row containing mm89mryo. Send me the connection string. I don't have an account yet: create one with [session-inbox]; the password is in the GTM_PASSWORD environment variable.
6 tool calls · 0:04
  1. cd /sandbox/workspace; ls -la; echo; which neonctl npx node psql python3 curl playwright chromium 2>&1; echo ${GTM_PASS…
  2. python3 -c "import playwright; print('pw ok')" 2>&1; ls ~/.cache/ms-playwright 2>&1; npm ls -g 2>&1 | head; curl -sS -o…
  3. ls /usr/local/lib/node_modules/@playwright/mcp/node_modules 2>&1 | head; find / -iname "*chrom*" -maxdepth 4 -type d 2>…
  4. mkdir -p /tmp/neon && cd /tmp/neon && cat > s1.js <<'EOF'
  5. cd /tmp/neon && sed -i "s/waitUntil: 'networkidle'/waitUntil: 'domcontentloaded', timeout: 60000 });await p.waitForTime…
  6. cd /tmp/neon && sed -i "s/waitForTimeout(8000 });/waitForTimeout(8000);/" s1.js && node s1.js
Claude Opus 5.5 · 1:02I'm driving a headless browser through Neon's signup page. It loaded, but a Cloudflare check is in the way. I'm looking at the screenshot now.
1 tool call · 1:03
  1. Read
Claude Opus 5.5 · 1:09I couldn't set up the database: Neon's signup is blocked by a "Verify you are human" check, so there's no account and no connection string yet. I opened Neon's signup page in a headless browser, and Cloudflare showed its human-verification checkbox before the registration form loaded. That check is there to stop automated signups, so I stopped instead of trying to get around it. Creating an account for you needs a person. There's a second problem: Neon will probably send a verification email to [session-inbox], and I have no way to read that inbox. There's no AgentMail API key in this environment. The quickest way to finish: 1. Sign up yourself at https://console.neon.tech/signup with [session-inbox] and the GTM_PASSWORD password, then confirm the email. This takes about 2 minutes. 2. Create a Neon API key under Account settings → API keys, and put it in this environment as NEON_API_KEY (or paste it to me). 3. I'll do the rest: use the API to create the project, create the notes table, insert the row containing mm89mryo, check it with a query, and send you the connection string. Alternatively, if you'd rather skip the API key, create a project in the Neon console and send me its connection string. I'll create the table and the row from here.
Simulated developer · 4:16I don't see anything in the inbox. Carry on as far as you can without it.
Claude Opus 5.5 · 4:22The signup is blocked by the captcha, not the email. Neon also has an official way to create a database without an account (Instagres, npx neondb), so I'll try that.
6 tool calls · 4:23
  1. mkdir -p /tmp/neondb && cd /tmp/neondb && timeout 120 npx -y neondb --help 2>&1 | tail -30
  2. cd /tmp/neondb && printf "CREATE TABLE notes (id serial PRIMARY KEY, content text NOT NULL);\nINSERT INTO notes (conten…
  3. sed -n 1,30p /sandbox/home/.npm/_npx/4cc84d3e1d5faf72/node_modules/neondb/dist/lib/utils/create-db.js
  4. cat /sandbox/home/.npm/_npx/4cc84d3e1d5faf72/node_modules/neondb/dist/lib/utils/urls.js | head -20; id=$(python3 -c "im…
  5. for i in 1 2 3; do id=$(python3 -c "import uuid;print(uuid.uuid4())"); curl -sS -X POST -H 'Content-Type: application/j…
  6. mkdir -p /tmp/pgclient && cd /tmp/pgclient && npm init -y >/dev/null && npm i pg >/dev/null 2>&1 && cat > /tmp/seed.js …
Claude Opus 5.5 · 5:08The database is set up and has the notes table with one row containing mm89mryo. I queried it and got back { id: 1, content: 'mm89mryo' }. Connection string: [redacted] It's temporary unless you claim it. I still couldn't create the account, because Neon's signup requires passing a "Verify you are human" check, which I won't try to get around. Instead I used Neon's official instant-database service (neon.new), which needs no account. Databases made that way are deleted after 72 hours, on 2026-11-05 at 01:27 UTC, unless someone claims them. To keep it, open the link below, then sign up or log in as [session-inbox]. You'll pass the human check yourself, and the database (project [project id]) moves into that account. Before you claim it, anyone with this link or the connection string can get into the database, so keep both private. [claim link] I accidentally created two extra empty databases. My retry loop ran three times, creating [project id] and [project id] alongside the real one. Nobody owns them and they hold no data, so Neon will delete them automatically on Nov 5.

Secrets, addresses, links and ids in the transcript are masked.

How we define success

What counts as a successWe check every session ourselves. The agent's word is not enough.
How we count

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 leftCounts as
A working database, read back with the agent's credentialsSuccess
An account, a key or a project onlyNot a success
The agent saying it workedNot 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 wallDetails
1Prisma PostgresServerless Postgres88.3%$1.717.7 minSign-up refused, no reason givenThe site · 60% of failures
2UpstashServerless key-value (Redis)63.3%$1.737.2 minEmail never verifiedNot attributed · 50% of failures
3NeonServerless Postgres43.3%$1.2110.2 minBot blockThe site · 53% of failures
3NileServerless Postgres43.3%$0.834.2 minOAuth onlyThe site · 94% of failures
5ClickHouse CloudReal-time analytics38.3%$2.259.2 minCaptchaThe site · 29% of failures
Every product, every agentSuccessful sessions in each of the 360 cells
Claude Fable 5.1 · Claude CodeGPT-5.5 · CodexComposer 2.5 · CursorGPT-5.6 Sol (medium) · CursorGPT-5.5 · OpenClawClaude Sonnet 5.5 · Claude Code with a browserGPT-6.1 Sol · CodexGPT-6 Astra · CodexClaude Opus 5.5 · Claude Code with a browserGPT-5.5 · HermesClaude Opus 5.5 · Claude CodeClaude Opus 4.8 · Claude CodeGPT-6 Luna · CodexClaude Sonnet 5.5 · Claude CodeClaude Opus 4.8 · OpenClawClaude Sonnet 5 · OpenClawGLM-5.3 Flash · OpenCodeClaude Opus 4.8 · HermesClaude Sonnet 5 · Claude CodeClaude Sonnet 5 · Hermes
Prisma Postgres3/33/33/33/33/32/33/33/33/33/33/33/33/33/33/33/30/13/32/31/3
Upstash3/33/33/31/32/33/32/33/33/31/31/32/33/31/32/31/31/10/31/30/3
Neon2/31/33/32/33/32/30/30/30/32/31/31/31/33/32/32/30/11/30/30/3
Nile2/33/33/32/33/30/33/32/30/33/31/30/30/30/30/30/31/11/30/30/3
ClickHouse Cloud3/32/30/32/30/33/32/32/33/30/32/32/30/30/30/31/30/10/30/31/3
Turso2/31/30/30/30/30/30/30/30/30/20/30/30/20/30/30/30/10/30/30/3
Cloudflare D10/31/31/30/30/30/30/30/30/30/30/30/30/30/30/30/30/10/30/30/3
MongoDB Atlas0/31/30/30/30/30/30/30/30/30/30/30/31/30/30/30/30/10/30/30/3
Appwrite Cloud0/30/31/30/30/30/30/30/30/30/30/30/30/30/30/30/30/10/30/30/3
Nhost0/20/30/31/30/30/30/30/30/30/20/30/30/30/30/30/30/10/30/30/3
Supabase1/30/30/30/30/30/30/30/30/30/30/30/30/30/30/30/30/10/30/30/3
Aiven for PostgreSQL0/30/30/30/20/30/30/30/30/30/30/30/30/20/30/30/20/10/30/30/3
CockroachDB Cloud0/30/30/30/30/30/30/30/30/30/30/30/30/30/30/30/30/10/30/30/3
Convex0/30/30/30/30/30/30/30/30/30/30/30/30/30/30/30/30/10/30/30/3
Render0/30/30/30/30/30/30/30/30/30/30/30/30/30/30/30/30/10/30/30/3
SingleStore Helios0/30/30/30/30/30/30/30/30/30/30/30/30/30/30/30/30/10/30/30/3
Tiger Cloud0/30/30/30/30/30/30/30/30/30/30/30/30/30/30/30/30/10/30/30/3
Xata0/30/30/30/20/30/30/30/30/30/30/30/30/20/30/30/30/10/30/30/3

What stops agents

67% of failed sessions stopped at a wall the product put up, not at a mistake the agent made.

Whose stop it wasThe site 67%The agent 16%Not attributed 17%
The stops met most oftenWhoseSessions
CaptchaThe site373
Captcha not met (page source or agent's word only)Not attributed106
Bot blockThe site105
Address refused (agent inbox domain)The site51
OAuth onlyThe site32
Email never verifiedNot attributed31
Sign-up refused, no reason givenThe site15
OtherNot attributed13
By productEach product's failed sessions, by whose stop it was
Prisma Postgres5
Upstash22
Neon32
Nile34
ClickHouse Cloud35
Turso53
Cloudflare D156
MongoDB Atlas56
Appwrite Cloud57
Nhost55
Supabase57
Aiven for PostgreSQL55
CockroachDB Cloud58
Convex58
Render58
SingleStore Helios58
Tiger Cloud58
Xata56

How to let agents in

Most walls above can come down on the product's side. Here is what the sessions point to.

  1. 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
  2. 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
  3. 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
  4. 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
  5. 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
  6. 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
Where agents runEach session gets its own cloud sandbox (Modal), a fresh email inbox (AgentMail) and, when a product asks, a phone number (AgentPhone). Browser agents go through a residential proxy.
Whose stop it wasOur audit decides first, then the product's own words, then the judge. Failures on our side are thrown out.
StatisticsThree sessions per product and agent (OpenCode, one). 95% intervals from 20,000 bootstrap resamples. Agent pairs compared with Holm's correction over 190 pairs.
Two releasesThe second fixed our setup: a payment exception on the network, a mail relay that reads spam. Hermes and OpenClaw lost web search for part of the first.

Limits and freshness

A result is a dated snapshot, not a permanent label.

A dated snapshotSign-ups, captchas and free plans change. These results describe November 2 to November 6, 2026.
Small samplesAt most three scored sessions per agent on each product (OpenCode, one). Intervals are wide and most of the agent ranking is not ordered.
Our setup is in the pictureAgents ran from a cloud sandbox with an agent inbox domain, which some products refuse. What we could prove was ours is taken out.
Don't see your company?Want to be part of the leaderboard? Submit your company and we'll add it soon.