1.6 KiB
1.6 KiB
R2 SQL Configuration
Auth and setup. For the current permission matrix and wrangler flags, pull https://developers.cloudflare.com/r2-sql/reference/wrangler-commands/ and the R2 Data Catalog manage-catalogs doc.
Prerequisites
- R2 bucket with Data Catalog enabled (r2-data-catalog/configuration.md)
- R2 API token: R2 Storage Admin Read & Write (includes R2 SQL Read), or add R2 SQL Read explicitly
- Wrangler CLI (for CLI queries)
Open-beta limitation: R2 Storage Admin Read & Write is required even for read-only R2 SQL queries.
Enable Catalog + Get Warehouse
npx wrangler r2 bucket catalog enable my-bucket
You query by warehouse name ({ACCOUNT_ID}_{BUCKET}), shown in the output alongside the Catalog URI.
Configure Auth
Wrangler CLI
export WRANGLER_R2_SQL_AUTH_TOKEN=<your-token>
# or a .env file in the project dir (auto-loaded): WRANGLER_R2_SQL_AUTH_TOKEN=<your-token>
Wrangler does not use the
wrangler loginOAuth session for R2 SQL — the env var is required.
REST API
curl -X POST \
"https://api.sql.cloudflarestorage.com/api/v1/accounts/$ACCOUNT_ID/r2-sql/query/$BUCKET" \
-H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
-d '{"query": "SELECT * FROM default.my_table LIMIT 10"}'
Verify Setup
npx wrangler r2 sql query "${ACCOUNT_ID}_my-bucket" "SHOW DATABASES"
npx wrangler r2 sql query "${ACCOUNT_ID}_my-bucket" "SHOW TABLES IN default"
See Also
- api.md — SQL syntax · patterns.md — query examples · gotchas.md — troubleshooting