Published 2026-09-22 · Tested 2026-09-22
Supabase
ASupabase received 12 PASS votes and passed 5 of five agent surface checks. The clearest finding came from the verify a webhook task.
Three AI models, GPT 5.6 Sol, Claude Opus 5, and DeepSeek v4 Flash, each read Supabase’s public documentation independently and attempted five first-hour developer jobs: query the first table, find the exact limits, recover from a policy denial, verify a webhook, use the JavaScript client.
No accounts, API calls, or code execution were used. Every verdict came from public pages and every published quotation passed a live verification check. Preflight substitutions: T3: A documented 42501 row-level security denial replaces HTTP 429 because the database and client documentation states no request rate limit.
Freshness
How rechecks work- Category
- Databases & analytics
- Tested
- Quotes verified
- Surface rechecked
- Not yet rechecked
96.2% · 77/80 · AI Agent Readiness Score · reading 30 pts · surface 50 pts
Agent surface checks · 50/50
The Reading Test
| Task | GPT 5.6 Sol | Opus 5 | DeepSeek v4F | Consensus |
|---|---|---|---|---|
| Query the first table | PASS | PASS | PASS | PASS |
| Find the exact limits | PARTIAL | PASS | PASS | PASS |
| Recover from a policy denial | PASS | PASS | PASS | PASS |
| Verify a webhook | PASS | PARTIAL | PARTIAL | PARTIAL |
| Use the JavaScript client | PASS | PASS | PASS | PASS |
docs platform: Custom Next.js (unscored) · verified 2026-09-22
What to fix first
This fix could add up to 2 points to the AI Agent Readiness Score. The list ranks each fix by the points it would add. How the ranking works
- 1
Found: The Database Webhooks page documents creation and the insert payload but names no signing secret, signature header, or procedure for verifying who sent a delivery.
Fix: Document on the Database Webhooks page how a receiver authenticates a delivery, and carry the Dashboard steps through the URL and HTTP headers fields.
Evidence: supabase.com/
docs/ guides/ database/ webhooks (opens in a new tab)
What the docs get right
- Query the first table: 3 PASS votes. The React quickstart covers project creation, seeded table setup, RLS, client initialization, selection, and browser output.
- Recover from a policy denial: 3 PASS votes. The 42501 troubleshooting page identifies RLS insert denials, while the RLS guide supplies grants, an insert policy, and tests.
- 5 of 5 agent surface checks. Present: llms.txt, llms-full.txt, markdown mirrors, an MCP server, docs AI.
Query the first table
PASSPASS consensus from 3 PASS.
The React quickstart covers project creation, seeded table setup, RLS, client initialization, selection, and browser output. One numbered page carries the whole path from project creation through the SQL that creates the table, grants, and the RLS policy, to createClient and a supabase.from('instruments').select() call rendered on the page. The React quickstart walks from project creation through SQL Editor table creation, RLS policy, Vite scaffolding, supabase-js install, client init, and a select query in one linear page.
Find the exact limits
PASSPASS consensus from 2 PASS, 1 PARTIAL.
Database counts end at 16XL; Realtime limits and billing quotas use separate scopes, leaving 24XL and 48XL connection counts undocumented. A single table gives Database Max Connections and Connection Pooler Max Clients for all eleven compute sizes (Nano 60/200 through 16XL 500/12,000), and the pooling page names which limit each number governs without restating any value. Connection limits per compute size are listed in a single table with footnoted caveats. Plan-level quotas (MAU, egress, bandwidth) are on the pricing page and cover different scopes; no contradictory numbers were found.
Recover from a policy denial
PASSPASS consensus from 3 PASS.
The 42501 troubleshooting page identifies RLS insert denials, while the RLS guide supplies grants, an insert policy, and tests. A dedicated 42501 page enumerates five causes with a log query and grant-inspection SQL, and the RLS guide supplies the with check insert-policy form plus pgTAP tests that assert the denial. The RLS page explains the grant-vs-policy distinction and pinpoints 42501 as a missing-grant indicator. A dedicated troubleshooting page for 42501 lists the three causes (missing privilege, restricted schema, column access) with SQL fixes. The error codes reference confirms 42501 maps to 'insufficient privileges' with HTTP 401/403.
Verify a webhook
PARTIALPARTIAL consensus from 1 PASS, 2 PARTIAL.
The push example shows the insert trigger, receiver payload parsing, secret-key validation, auth-header setup, and a test insert. Creation and the INSERT payload shape are documented, but no page states how a delivery is authenticated: there is no signing secret, signature header, or verification procedure, and the Dashboard steps stop at selecting events without reaching the URL or headers fields. Creating the webhook (via Dashboard or SQL) and the payload shape are documented. However, delivery authentication is not covered: no webhook signing secret, HMAC signature header, or verification procedure is described, so an agent cannot confirm who sent the payload.
Use the JavaScript client
PASSPASS consensus from 3 PASS.
The API quickstart aligns cURL and JavaScript reads; the JavaScript reference .md URL failed to load. The reference gives await supabase.from('characters').select() and the Data REST API guide describes the same surface as PostgREST at https://<project_ref>.supabase.co/rest/v1/, with both the reference and the quickstart using the publishable key. The JS select reference gives a minimal example. The API overview (rest/v1/) and SQL-to-API page confirm the REST endpoint mapping. The React quickstart uses the same pattern to query an instruments table, matching the REST form shown in the API quickstart's curl and browser examples.
The receipt
We currently support HTTP webhooks. These can be sent as POST or GET requests with a JSON payload.
Creation and the INSERT payload shape are documented, but no page states how a delivery is authenticated: there is no signing secret, signature header, or verification procedure, and the Dashboard steps stop at selecting events without reaching the URL or headers fields.
Agent surface notes
Initialize returned HTTP 401 with WWW-Authenticate Bearer and resource_metadata naming the resource Supabase MCP (Beta).
Opening the docs command menu and choosing Ask Supabase AI revealed an "Ask Supabase AI a question..." input.
Show the score
Paste this into a readme:
[](https://docsforagents.com/reports/supabase-docs-ai-agent-readiness/) Method note
This is a reading test of public documentation, not an execution test. No accounts were created and no API calls were run. The AI Agent Readiness Score counts fifteen reading votes at PASS 2, PARTIAL 1, and FAIL 0, for 30 possible points. Five agent surface checks add 10 points each. The total is 80. Consensus chips show each row majority and do not affect scoring. The panel split on 2 of five tasks. Quotes shown here were re-fetched and confirmed verbatim on 2026-09-22.
Put another docs site through the battery.
Nominate a docs site