{"registry_version":"2026.1025.387","generated_at":"2026-10-25T06:27:00Z","content_sha256":"089d16f627d9365e3d0663cc8069203706d7cb23a76c332226e29686968811a5","signed":true,"signature":{"key_id":"ed25519:74ca19268e364242","algorithm":"ed25519","expires_at":"2026-11-24T06:27:09Z","expired":false,"manifest":"/registry/manifest.json"},"entry_sha256":"111f0e5d9e2f10d2f51344ba895b58d7e5f7bcda347fc0f5a33665fc000e50e8","entry":{"id":"cloudflare/r2","name":"Cloudflare R2 object storage","vendor":"Cloudflare","summary":"Add the R2 subscription to a Cloudflare account, create a bucket, and create an R2 API token that gives S3-compatible access keys.","category":"storage","group":"A","homepage":"https://www.cloudflare.com/developer-platform/products/r2/","docs":["https://developers.cloudflare.com/r2/get-started/","https://developers.cloudflare.com/r2/api/tokens/"],"status":"researched","last_verified":null,"last_researched":"2026-10-25","sources":[{"id":"get-started","url":"https://developers.cloudflare.com/r2/get-started/","title":"R2 get started","accessed":"2026-10-25","supports":"R2 subscription is added via Storage & databases, R2, Overview checkout flow; free tier then monthly billing for usage beyond it.","kind":"official"},{"id":"tokens","url":"https://developers.cloudflare.com/r2/api/tokens/","title":"R2 authentication (API tokens)","accessed":"2026-10-25","supports":"Must purchase R2 before generating a token; R2 Overview, Account Details, Manage API Tokens; account or user token; Admin Read & Write / Admin Read only / Object Read & Write / Object Read only with optional bucket scope; Access Key ID and Secret Access Key, secret shown once; endpoint https://<ACCOUNT_ID>.r2.cloudflarestorage.com with jurisdiction-specific variants (.eu., .fedramp., .us.).","kind":"official"},{"id":"pricing","url":"https://developers.cloudflare.com/workers/platform/pricing/","title":"Workers pricing (R2 section)","accessed":"2026-10-25","supports":"R2 free tier 10 GB-month storage, 1 million Class A and 10 million Class B operations per month, free egress.","kind":"official"},{"id":"stripe-projects","url":"https://projects.dev/providers/","title":"Stripe Projects provider catalogue","accessed":"2026-10-25","supports":"Cloudflare is listed (Storage among its categories) as the single service slug cloudflare/worker; R2 is not broken out as a separate catalogue service.","kind":"official"}],"allowed_domains":["dash.cloudflare.com"],"prerequisites":[{"entry":"cloudflare/workers","note":"Uses the same Cloudflare account and account ID."}],"have_ready":[{"kind":"payment_card","description":"A payment method for the R2 checkout flow.","why":"R2 must be purchased (subscription added through checkout) before any API token can be made, even to stay on the free tier.","needed_for":["enable-r2"],"auto_check":"none","source":"tokens"}],"steps":[{"id":"enable-r2","title":"Add the R2 subscription","summary":"In the dashboard go to Storage & databases, R2, Overview and complete the checkout flow to add R2 to the account.","route":"guided","depends_on":[],"gate":"human_payment","url":"https://dash.cloudflare.com/","sources":["get-started"]},{"id":"create-bucket","title":"Create a bucket","summary":"Create the bucket in the dashboard or with Wrangler. If a jurisdiction (for example EU) is chosen, the bucket needs the jurisdiction-specific S3 endpoint.","route":"guided","depends_on":["enable-r2"],"gate":"human_submit","sources":["tokens"]},{"id":"create-token","title":"Create an R2 API token","summary":"In R2 Overview, Account Details, choose Manage next to API Tokens, create an account or user token, pick the least permission (Object Read & Write scoped to the bucket is usual for an app), and create it. verapli captures the Access Key ID and the Secret Access Key, which is shown once.","route":"copilot","depends_on":["create-bucket"],"gate":"human_submit","url":"https://dash.cloudflare.com/","capture":{"env":"R2_SECRET_ACCESS_KEY","kind":"secret"},"sources":["tokens"]}],"outputs":[{"name":"R2_ACCESS_KEY_ID","description":"S3-compatible Access Key ID of the R2 token. Name chosen by verapli; Cloudflare docs do not fix an env var name.","secret":false,"from_step":"create-token"},{"name":"R2_SECRET_ACCESS_KEY","description":"S3-compatible Secret Access Key of the R2 token, shown once. Name chosen by verapli.","secret":true,"from_step":"create-token"},{"name":"R2_ENDPOINT","description":"S3 endpoint, https://<ACCOUNT_ID>.r2.cloudflarestorage.com (jurisdiction buckets use .eu., .fedramp. or .us. before r2). Name chosen by verapli.","secret":false,"example_format":"https://<ACCOUNT_ID>.r2.cloudflarestorage.com","from_step":"create-token"}],"terms_notes":[{"kind":"rules_say","severity":"amber","text":"R2 has to be purchased through the checkout flow before tokens can be made; usage beyond the free tier is billed monthly.","source":"get-started"}],"pricing_notes":{"free_tier":"10 GB-month storage, 1 million Class A and 10 million Class B operations per month; egress is free.","source":"pricing"},"stripe_projects":true,"api_provisioning":{"available":"partial","notes":"Buckets and objects can be managed by API or S3 once R2 is purchased; the purchase itself is a human checkout.","source":"tokens"},"detect":{"env_names":["R2_ACCESS_KEY_ID","R2_SECRET_ACCESS_KEY","R2_ENDPOINT"]}}}