R2 Catalog Management

Copy Markdown View Source

List R2 catalogs

GET /accounts/{account_id}/r2-catalog

Returns a list of R2 buckets that have been enabled as Apache Iceberg catalogs for the specified account. Each catalog represents an R2 bucket configured to store Iceberg metadata and data files.

Responses

200 List of R2 catalogs.

Data is at body["result"]

{
  "warehouses": [
    {
      "bucket": "*string*",
      "credential_status": "*string*",
      "id": "*string*",
      "maintenance_config": {},
      "name": "*string*",
      "status": "*string*"
    }
  ]
}

400 Bad request.

{
  "errors": [
    {
      "code": "*integer*",
      "message": "*string*"
    }
  ],
  "messages": [
    {}
  ],
  "success": "*boolean*"
}

401 Authentication failed.

{
  "errors": [
    {
      "code": "*integer*",
      "message": "*string*"
    }
  ],
  "messages": [
    {}
  ],
  "success": "*boolean*"
}

403 Forbidden.

{
  "errors": [
    {
      "code": "*integer*",
      "message": "*string*"
    }
  ],
  "messages": [
    {}
  ],
  "success": "*boolean*"
}

500 Internal server error.

{
  "errors": [
    {
      "code": "*integer*",
      "message": "*string*"
    }
  ],
  "messages": [
    {}
  ],
  "success": "*boolean*"
}

Get R2 catalog details

GET /accounts/{account_id}/r2-catalog/{bucket_name}

Retrieve detailed information about a specific R2 catalog by bucket name. Returns catalog status, maintenance configuration, and credential status.

Responses

200 R2 catalog details.

Data is at body["result"]

{
  "bucket": "*string*",
  "credential_status": "*string*",
  "id": "*string*",
  "maintenance_config": {},
  "name": "*string*",
  "status": "*string*"
}

400 Bad request.

{
  "errors": [
    {
      "code": "*integer*",
      "message": "*string*"
    }
  ],
  "messages": [
    {}
  ],
  "success": "*boolean*"
}

401 Authentication failed.

{
  "errors": [
    {
      "code": "*integer*",
      "message": "*string*"
    }
  ],
  "messages": [
    {}
  ],
  "success": "*boolean*"
}

403 Forbidden.

{
  "errors": [
    {
      "code": "*integer*",
      "message": "*string*"
    }
  ],
  "messages": [
    {}
  ],
  "success": "*boolean*"
}

404 Catalog not found.

{
  "errors": [
    {
      "code": "*integer*",
      "message": "*string*"
    }
  ],
  "messages": [
    {}
  ],
  "success": "*boolean*"
}

500 Internal server error.

{
  "errors": [
    {
      "code": "*integer*",
      "message": "*string*"
    }
  ],
  "messages": [
    {}
  ],
  "success": "*boolean*"
}

Disable R2 catalog

POST /accounts/{account_id}/r2-catalog/{bucket_name}/disable

Disable an R2 bucket as a catalog. This operation deactivates the catalog but preserves existing metadata and data files. The catalog can be re-enabled later.

Responses

204 Catalog disabled successfully.

Data is at body["result"]

400 Bad request.

{
  "errors": [
    {
      "code": "*integer*",
      "message": "*string*"
    }
  ],
  "messages": [
    {}
  ],
  "success": "*boolean*"
}

401 Authentication failed.

{
  "errors": [
    {
      "code": "*integer*",
      "message": "*string*"
    }
  ],
  "messages": [
    {}
  ],
  "success": "*boolean*"
}

403 Forbidden.

{
  "errors": [
    {
      "code": "*integer*",
      "message": "*string*"
    }
  ],
  "messages": [
    {}
  ],
  "success": "*boolean*"
}

404 Catalog not found.

{
  "errors": [
    {
      "code": "*integer*",
      "message": "*string*"
    }
  ],
  "messages": [
    {}
  ],
  "success": "*boolean*"
}

500 Internal server error.

{
  "errors": [
    {
      "code": "*integer*",
      "message": "*string*"
    }
  ],
  "messages": [
    {}
  ],
  "success": "*boolean*"
}

Enable R2 bucket as a catalog

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.

Responses

200 Catalog enabled successfully.

Data is at body["result"]

{
  "id": "*string*",
  "name": "*string*"
}

400 Bad request.

{
  "errors": [
    {
      "code": "*integer*",
      "message": "*string*"
    }
  ],
  "messages": [
    {}
  ],
  "success": "*boolean*"
}

401 Authentication failed.

{
  "errors": [
    {
      "code": "*integer*",
      "message": "*string*"
    }
  ],
  "messages": [
    {}
  ],
  "success": "*boolean*"
}

403 Forbidden.

{
  "errors": [
    {
      "code": "*integer*",
      "message": "*string*"
    }
  ],
  "messages": [
    {}
  ],
  "success": "*boolean*"
}

409 Catalog already enabled.

{
  "errors": [
    {
      "code": "*integer*",
      "message": "*string*"
    }
  ],
  "messages": [
    {}
  ],
  "success": "*boolean*"
}

500 Internal server error.

{
  "errors": [
    {
      "code": "*integer*",
      "message": "*string*"
    }
  ],
  "messages": [
    {}
  ],
  "success": "*boolean*"
}