# Update bucket settings

```
PUT https://mgmt.storage.dev/v1/providers/:provider_id/orgs/:org_id/buckets/:bucket_name
```

Updates the bucket settings like public access, storage class, and object ACL.

## Request

### Path Parameters

**provider_id** string required

Provider ID

**org_id** string required

Organization ID

**bucket_name** string required

Bucket name

- application/json

- Body
- Example (auto)

### Body **required**

**public** boolean

If set to true, the bucket will be publicly accessible. Default is false.

**enable_object_acl** boolean

If set to true, per object ACL will be enabled. Default is false.

**enable_public_list_objects** boolean

If set to true, anonymous users can list objects in public buckets. Only applicable to public buckets.

**object_notifications** object

Configuration for object event notifications via webhook. Receive HTTP callbacks when objects are created, updated, or deleted in your bucket.

**Update behavior (partial updates supported):**

- **Omit field entirely**: Keeps existing settings unchanged
- **Include only `enabled`**: Toggles notifications on/off while preserving all other config
- **Include any field**: Updates specified fields, preserves others (auth not re-required)
- **Remove completely**: Send `{"enabled": false}` with no other fields

**Common operations:**

```json
// Enable notifications (preserves webhook, filter, auth)

{"enabled": true}

// Disable temporarily (keeps all config for later)

{"enabled": false, "webhook": "https://..."}

// Update webhook only (preserves auth, filter)

{"webhook": "https://new-endpoint.com"}

// Change auth type (replaces entire auth object)

{"auth": {"token": "new-token"}}

// Remove all notifications

{"enabled": false}
```

**Note:** Auth credentials are masked in responses. You don't need to re-send them when updating other fields.

**enabled** boolean required

Enable or disable notifications (webhook required when true)

**webhook** uri

HTTPS endpoint to receive notification events

**Example:** `https://webhook.example.com/tigris-events`

**filter** string

SQL WHERE clause to filter which objects trigger notifications (e.g., size comparisons)

**Example:** `size > 1000000`

**auth** object

Authentication credentials for webhook endpoint

**basic_user** string

Basic auth username

**basic_pass** password

Basic auth password

**token** password

Bearer token for authorization

**regions** Regions

Restricts the regions where bucket data is stored. Default is empty, which means no restrictions (global distribution).

Accepted values:

- Specific region(s): "iad", "sjc", "iad,sjc,lhr" (comma-separated)
- No restrictions (global distribution): "global"

If you want to remove existing region restrictions, you can set the value to "global".

```json
{

"public": true,

"enable_object_acl": true,

"enable_public_list_objects": true,

"object_notifications": {

"enabled": true,

"webhook": "https://webhook.example.com/tigris-events",

"filter": "size > 1000000",

"auth": {

"basic_user": "string",

"basic_pass": "string",

"token": "string"

}

},

"regions": "string"
}
```

## Responses

- 200
- default

OK

- application/json

- Schema
- Example (auto)

**Schema**

**object** object

```json
{}
```

Unexpected error

- application/json

- Schema
- Example (auto)

**Schema**

**message** string

```json
{

"message": "string"
}
```

#### Authorization: X-Tigris-Signature

````
name: X-Tigris-Signature
type: apiKey
in: header
description: HMAC-SHA256 of the canonical request signed using the signing key.
To create the signature, concatenate the HTTP method, URL, timestamp, and nonce with a newline character in between.
Then, calculate the HMAC-SHA256 of the concatenated string using the signing key. Example:

Create the `canonical_request` as:
```
POST
https://mgmt.storage.dev/provider/your-provider-id/orgs/user-org-id/provision
1731703213870
f8d133cb-5a42-47b1-9ef2-874bb55bab72
```
Then, calculate HMAC-SHA256 of the canonical request using the signing key as:
```
Signature = hex(sha256sign(canonical_request, "signing_key"))
```
````

```
name: X-Tigris-Nonce
type: apiKey
in: header
description: Random unique string to identify the request and prevent replay attacks. Example: "f8d133cb-5a42-47b1-9ef2-874bb55bab72"
```

```
name: X-Tigris-Time
type: apiKey
in: header
description: Unix timestamp in milliseconds of the request. Example: 1731703213870
```

- csharp
- curl
- dart
- go
- http
- java
- javascript
- kotlin
- c
- nodejs
- objective-c
- ocaml
- php
- postman-cli
- powershell
- python
- r
- ruby
- rust
- shell
- swift

- HTTPCLIENT
- RESTSHARP

```csharp
var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Put, "https://mgmt.storage.dev/v1/providers/:provider_id/orgs/:org_id/buckets/:bucket_name");
request.Headers.Add("Accept", "application/json");
request.Headers.Add("X-Tigris-Signature", "<X-Tigris-Signature>");
request.Headers.Add("X-Tigris-Nonce", "<X-Tigris-Nonce>");
request.Headers.Add("X-Tigris-Time", "<X-Tigris-Time>");
var content = new StringContent("{\n  \"public\": true,\n  \"enable_object_acl\": true,\n  \"enable_public_list_objects\": true,\n  \"object_notifications\": {\n    \"enabled\": true,\n    \"webhook\": \"https://webhook.example.com/tigris-events\",\n    \"filter\": \"size > 1000000\",\n    \"auth\": {\n      \"basic_user\": \"string\",\n      \"basic_pass\": \"string\",\n      \"token\": \"string\"\n    }\n  },\n  \"regions\": \"string\"\n}", null, "application/json");
request.Content = content;
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());
```

Request Collapse all

Base URL

Edit

https://mgmt.storage.dev

Auth

Signature

Nonce

Timestamp

Parameters

provider_id — path required

org_id — path required

bucket_name — path required

Body required

```json
{
  "public": true,
  "enable_object_acl": true,
  "enable_public_list_objects": true,
  "object_notifications": {
    "enabled": true,
    "webhook": "https://webhook.example.com/tigris-events",
    "filter": "size > 1000000",
    "auth": {
      "basic_user": "string",
      "basic_pass": "string",
      "token": "string"
    }
  },
  "regions": "string"
}
```

Send API Request

Response Clear

Click the `Send API Request` button above and see the response here!
