Skip to content
Start here

Enable R2 bucket as a catalog

client.R2DataCatalog.Enable(ctx, bucketName, body) (*R2DataCatalogEnableResponse, error)
POST/accounts/{account_id}/r2-catalog/{bucket_name}/enable

Enable an R2 bucket as an Apache Iceberg catalog. This operation creates the necessary catalog infrastructure and activates the bucket for storing Iceberg metadata and data files.

Security
API Token

The preferred authorization scheme for interacting with the Cloudflare API. Create a token.

Example:Authorization: Bearer Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY
API Email + API Key

The previous authorization scheme for interacting with the Cloudflare API, used in conjunction with a Global API key.

Example:X-Auth-Email: user@example.com

The previous authorization scheme for interacting with the Cloudflare API. When possible, use API tokens instead of Global API keys.

Example:X-Auth-Key: 144c9defac04969c7bfad8efaa8ea194
Accepted Permissions (at least one required)
Workers R2 Data Catalog Write
ParametersExpand Collapse
bucketName string

Specifies the R2 bucket name.

maxLength63
minLength3
body R2DataCatalogEnableParams
AccountID param.Field[string]

Use this to identify the account.

ReturnsExpand Collapse
type R2DataCatalogEnableResponse struct{…}

Contains response from activating an R2 bucket as a catalog.

ID string

Use this to uniquely identify the activated catalog.

formatuuid
Name string

Specifies the name of the activated catalog.

Enable R2 bucket as a catalog

package main

import (
  "context"
  "fmt"

  "github.com/cloudflare/cloudflare-go"
  "github.com/cloudflare/cloudflare-go/option"
  "github.com/cloudflare/cloudflare-go/r2_data_catalog"
)

func main() {
  client := cloudflare.NewClient(
    option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"),
  )
  response, err := client.R2DataCatalog.Enable(
    context.TODO(),
    "my-data-bucket",
    r2_data_catalog.R2DataCatalogEnableParams{
      AccountID: cloudflare.F("0123456789abcdef0123456789abcdef"),
    },
  )
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", response.ID)
}
{
  "errors": [],
  "messages": [],
  "result": {
    "id": "550e8400-e29b-41d4-a716-446655440000",
    "name": "account123_my-bucket"
  },
  "success": true
}
Returns Examples
{
  "errors": [],
  "messages": [],
  "result": {
    "id": "550e8400-e29b-41d4-a716-446655440000",
    "name": "account123_my-bucket"
  },
  "success": true
}