How AI is applied across API Evangelist and APIs.io. Read my AI disclosure →
API Evangelist API Evangelist
Discovery
Learnings
Guidance
Toolbox
Alignment
API Evangelist LLC

Cloudflare R2 R2 Bucket API

The R2 Bucket API from Cloudflare R2 — 13 operation(s) for r2 bucket.

Cloudflare R2 R2 Bucket API is one of 14 APIs that Cloudflare R2 publishes on the APIs.io network, described by a machine-readable OpenAPI specification.

Tagged areas include R2 Bucket. The published artifact set on APIs.io includes an OpenAPI specification and API documentation.

This API exposes 29 operations across 13 paths, and defines 45 schemas. It is described by OpenAPI 3.2.0, at version 4.0.0.

Requests are made against a single base URL, https://api.cloudflare.com/client/v4.

29 operations 13 paths 45 schemas 5 DELETE12 GET1 PATCH3 POST8 PUT

Metadata

The identity and technical contract details declared by the specification.

Specification
OpenAPI 3.2.0
API Version
4.0.0
Base URL
https://.r2.cloudflarestorage.com
Authentication
API Key, API Key, HTTP Bearer, API Key
Terms of Service
Resource Areas
1

Authentication & Security 4

Cloudflare R2 R2 Bucket API declares 4 security schemes for authenticating requests. An API key is passed in the header as X-Auth-Email (api_email). An API key is passed in the header as X-Auth-Key (api_key). It accepts HTTP bearer tokens (api_token). An API key is passed in the header as X-Auth-User-Service-Key (user_service_key).

Paths & Operations 29

Across 13 paths, the API surfaces 29 operations — 5 DELETE, 12 GET, 1 PATCH, 3 POST, 8 PUT. Each is listed below with its method, path, parameters, and response codes.

R2 Bucket 29
GET
/accounts/{account_id}/event_notifications/r2/{bucket_name}/configuration
List Event Notification Rules
r2-get-event-notification-configs 3 params → 4XX200404
DELETE
/accounts/{account_id}/event_notifications/r2/{bucket_name}/configuration/queues/{queue_id}
Delete Event Notification Rules
r2-event-notification-delete-config 4 params body → 4XX200
GET
/accounts/{account_id}/event_notifications/r2/{bucket_name}/configuration/queues/{queue_id}
Get Event Notification Rule
r2-get-event-notification-config 4 params → 4XX200404
PUT
/accounts/{account_id}/event_notifications/r2/{bucket_name}/configuration/queues/{queue_id}
Create Event Notification Rule
r2-put-event-notification-config 4 params body → 4XX200
GET
/accounts/{account_id}/r2/buckets
List Buckets
r2-list-buckets 8 params → 4XX200
POST
/accounts/{account_id}/r2/buckets
Create Bucket
r2-create-bucket 2 params body → 4XX200
DELETE
/accounts/{account_id}/r2/buckets/{bucket_name}
Delete Bucket
r2-delete-bucket 3 params → 4XX200
GET
/accounts/{account_id}/r2/buckets/{bucket_name}
Get Bucket
r2-get-bucket 3 params → 4XX200
PATCH
/accounts/{account_id}/r2/buckets/{bucket_name}
Patch Bucket
r2-patch-bucket 4 params → 4XX200
DELETE
/accounts/{account_id}/r2/buckets/{bucket_name}/cors
Delete Bucket CORS Policy
r2-delete-bucket-cors-policy 3 params → 4XX200
GET
/accounts/{account_id}/r2/buckets/{bucket_name}/cors
Get Bucket CORS Policy
r2-get-bucket-cors-policy 3 params → 4XX200
PUT
/accounts/{account_id}/r2/buckets/{bucket_name}/cors
Put Bucket CORS Policy
r2-put-bucket-cors-policy 3 params body → 4XX200
GET
/accounts/{account_id}/r2/buckets/{bucket_name}/domains/custom
List Custom Domains of Bucket
r2-list-custom-domains 3 params → 4XX200
POST
/accounts/{account_id}/r2/buckets/{bucket_name}/domains/custom
Attach Custom Domain To Bucket
r2-add-custom-domain 3 params body → 4XX200
DELETE
/accounts/{account_id}/r2/buckets/{bucket_name}/domains/custom/{domain}
Remove Custom Domain From Bucket
r2-delete-custom-domain 4 params → 4XX200
GET
/accounts/{account_id}/r2/buckets/{bucket_name}/domains/custom/{domain}
Get Custom Domain Settings
r2-get-custom-domain-settings 4 params → 4XX200
PUT
/accounts/{account_id}/r2/buckets/{bucket_name}/domains/custom/{domain}
Configure Custom Domain Settings
r2-edit-custom-domain-settings 4 params body → 4XX200
GET
/accounts/{account_id}/r2/buckets/{bucket_name}/domains/managed
Get r2.dev Domain of Bucket
r2-get-bucket-public-policy 3 params → 4XX200
PUT
/accounts/{account_id}/r2/buckets/{bucket_name}/domains/managed
Update r2.dev Domain of Bucket
r2-put-bucket-public-policy 3 params body → 4XX200
GET
/accounts/{account_id}/r2/buckets/{bucket_name}/lifecycle
Get Object Lifecycle Rules
r2-get-bucket-lifecycle-configuration 3 params → 4XX200
PUT
/accounts/{account_id}/r2/buckets/{bucket_name}/lifecycle
Put Object Lifecycle Rules
r2-put-bucket-lifecycle-configuration 3 params body → 4XX200
GET
/accounts/{account_id}/r2/buckets/{bucket_name}/local-uploads
Get Local Uploads Configuration
r2-get-bucket-local-uploads-configuration 2 params → 4XX200
PUT
/accounts/{account_id}/r2/buckets/{bucket_name}/local-uploads
Put Local Uploads Configuration
r2-put-bucket-local-uploads-configuration 2 params body → 4XX200
GET
/accounts/{account_id}/r2/buckets/{bucket_name}/lock
Get Bucket Lock Rules
r2-get-bucket-lock-configuration 3 params → 4XX200
PUT
/accounts/{account_id}/r2/buckets/{bucket_name}/lock
Put Bucket Lock Rules
r2-put-bucket-lock-configuration 3 params body → 4XX200
DELETE
/accounts/{account_id}/r2/buckets/{bucket_name}/sippy
Disable Sippy
r2-delete-bucket-sippy-config 3 params → 4XX200
GET
/accounts/{account_id}/r2/buckets/{bucket_name}/sippy
Get Sippy Configuration
r2-get-bucket-sippy-config 3 params → 4XX200
PUT
/accounts/{account_id}/r2/buckets/{bucket_name}/sippy
Enable Sippy
r2-put-bucket-sippy-config 3 params body → 4XX200
POST
/accounts/{account_id}/r2/temp-access-credentials
Create Temporary Access Credentials
r2-create-temp-access-credentials 1 param body → 4XX200

Schemas 45

The contract defines 45 schemas that model the data the API accepts and returns. The most detailed are r2_get_custom_domain_response (7 properties), r2_temp_access_creds_request (6 properties), r2_lifecycle-rule (6 properties), r2_bucket (5 properties). Each schema is shown below with its type and property counts.

r2_lifecycle-config
object
1 property
r2_v4_response_list
r2_messages
array
r2_sippy
object
3 properties
r2_list_custom_domains_response
object
1 property 1 required
r2_lifecycle-age-condition
object
Condition for lifecycle transitions to apply after an object reaches an age in seconds.
2 properties 2 required
r2_temp_access_creds_response
object
3 properties
r2_v4_response_failure
object
4 properties 4 required
r2_managed_domain_response
object
3 properties 3 required
r2_lifecycle-storage-transition
object
2 properties 2 required
r2_storage_class
string
Storage class for newly uploaded objects, unless specified otherwise.
r2_rule
object
4 properties 1 required
r2_bucket_name
string
Name of the bucket.
r2_v4_response
object
4 properties 4 required
r2_lock-rule-indefinite-condition
object
Condition to apply a lock rule indefinitely.
1 property 1 required
r2_bucket-lock-rule-config
object
1 property
r2_local_uploads_configuration
object
Configuration for local uploads on a bucket.
1 property
r2_lifecycle-rule
object
6 properties 3 required
r2_errors
array
r2_lock-rule-age-condition
object
Condition to apply a lock rule to an object for how long in seconds.
2 properties 2 required
r2_result_info
object
2 properties
r2_edit_managed_domain_request
object
1 property 1 required
r2_bucket-config
object
2 properties
r2_r2-action
string
r2_get_custom_domain_response
object
7 properties 3 required
r2_add_custom_domain_request
object
5 properties 3 required
r2_account_identifier
string
Account ID.
r2_lifecycle-date-condition
object
Condition for lifecycle transitions to apply on a specific date.
2 properties 2 required
r2_bucket_location
string
Location of the bucket.
r2_queue_identifier
string
Queue ID.
r2_cors-rule
object
4 properties 1 required
r2_enable_sippy_s3
object
2 properties
r2_bucket
object
A single R2 bucket.
5 properties
r2_enable_sippy_aws
object
2 properties
r2_domain_name
string
Name of the custom domain.
r2_bucket-lock-rule
object
4 properties 3 required
r2_edit_custom_domain_response
object
4 properties 1 required
r2_edit_custom_domain_request
object
3 properties
r2_enable_sippy_gcs
object
2 properties
r2_lock-rule-date-condition
object
Condition to apply a lock rule to an object until a specific date.
2 properties 2 required
r2_jurisdiction
string
Jurisdiction where objects in this bucket are guaranteed to be stored.
r2_queues-config
object
3 properties
r2_temp_access_creds_request
object
6 properties 4 required
r2_add_custom_domain_response
object
5 properties 3 required
r2_remove_custom_domain_response
object
1 property 1 required

Specification

The full machine-readable OpenAPI contract behind this narrative.

Source

cloudflare-r2-r2-bucket-api-openapi.yml Raw ↑

Other APIs Cloudflare R2 publishes across the network.

Cloudflare R2 Buckets API
Cloudflare R2 CORS API
Cloudflare R2 Credential Management API
Cloudflare R2 Lifecycle API
Cloudflare R2 Maintenance Configuration API
Cloudflare R2 Multipart Upload API
Cloudflare R2 Namespace Management API
Cloudflare R2 Objects API
Cloudflare R2 R2 Account API
Cloudflare R2 R2 Catalog Management API
Cloudflare R2 R2 Object API
Cloudflare R2 Table Maintenance Configuration API
Where this information came from

This is an independent, third-party profile of Cloudflare R2 R2 Bucket API, published by API Evangelist. We do not operate, host, resell, or support these APIs, and we are not affiliated with or endorsed by the company unless stated above. Everything here is built from publicly available information — the company's own site, developer portal, documentation, public repositories, and the specifications it publishes for public use. Nothing is obtained by breaching a system, defeating an access control, or using credentials.

The Kin Score and Agent Readiness rating are independently calculated assessments of a company's public API artifacts, scored against a published rubric. They are not certifications, endorsements, security assessments, or audits.

Corrections, re-scores, and removal are free — no partnership or purchase required, and you do not need to justify the request. A removed company is recorded as unrated, never scored zero for having asked. Acknowledgement within one business day; removal within two.

info@apievangelist.com · Read the full data-sourcing policy →
On a security or compliance team? Put security in the subject line and you will get a person, not a form — we will tell you exactly which public URLs this profile was built from.