---
title: "Update Bucket"
method: PUT
path: "/v1/buckets/{bucketID}"
tags: ["Buckets"]
---

# Update Bucket

`PUT /v1/buckets/{bucketID}`

Update bucket.

## Request body

- Bucket
  - `id` string
  - `created_at` integer
  - `updated_at` integer
  - `name` string
  - `description` string
  - `suspended` boolean — Indicates that webhooks will not be received due to quota limits
  - `stream` boolean — Enable/disabled streaming to WebSocket clients from this bucket
  - `ephemeral` boolean — If ephemeral is enabled, Webhook Relay will not persist request body, headers or response details
  - `auth` BucketAuth
    - `id` string
    - `created_at` integer
    - `updated_at` integer
    - `type` string
    - `username` string
    - `password` string
    - `token` string
  - `inputs` Input[]
    - `id` string
    - `created_at` integer
    - `updated_at` integer
    - `name` string
    - `function_id` string — ID of the function that will be executed for this input
    - `headers` Headers — A hashmap of header keys and a list of values for each string, Go equivalent map[string][]string
    - `status_code` integer — Response status code to return when this input receives a webhook
    - `body` string — Response body to return when this input receives a webhook
    - `response_from_output` string — Output ID to specify a single output for response or set it to 'anyOutput' to return response from any output. Output should respond within 10 seconds
    - `custom_domain` string — Specify any custom domain from your Reserved Domains, such as example.hooks.webhookrelay.com or hooks.example.com (if used with your own top level domain name, create a CNAME pointing at hooks.webhookrelay.com)
    - `path_prefix` string — When used with custom domains, path_prefix can host multiple input endpoints on a single domain, such as hooks.example.com/github -> Jenkins CI, hooks.example.com/gitlab -> Spinnaker
    - `description` string
  - `outputs` Output[]
    - `id` string
    - `created_at` integer
    - `updated_at` integer
    - `bucket_id` string
    - `name` string
    - `disabled` boolean — Allows to disable specific output destination without deleting the output itself.
    - `internal` boolean — When internal output receives webhook, it forwards it to any connected agent (relay CLI, Docker agent or WebSocket connection)
    - `tls_verification` boolean — Enforce TLS verification where possible (internal and public destinations)
    - `destination` string — Destination, where to forward the webhook, such as 'http://localhost:4000'
    - `headers` Headers — A hashmap of header keys and a list of values for each string, Go equivalent map[string][]string
    - `rules` Rules
      - `and` Rules[]
      - `or` Rules[]
      - `not` Rules[]
      - `match` MatchRule
        - `parameter` RuleParameter
          - `name` string
          - `source` 'header' | 'payload' | 'query'
        - `type` 'value' | 'contains' | 'does-not-contain' | 'regex' | 'payload-hash-sha1' | 'payload-hash-sha256'
        - `value` string
        - `substring` string
        - `regex` string
        - `secret` string
    - `timeout` integer — Timeout in seconds, value between 0 and 180
    - `description` string
    - `function_id` string — ID of the function that will be executed for this output

## Response `200`

Bucket updated

- Bucket
  - `id` string
  - `created_at` integer
  - `updated_at` integer
  - `name` string
  - `description` string
  - `suspended` boolean — Indicates that webhooks will not be received due to quota limits
  - `stream` boolean — Enable/disabled streaming to WebSocket clients from this bucket
  - `ephemeral` boolean — If ephemeral is enabled, Webhook Relay will not persist request body, headers or response details
  - `auth` BucketAuth
    - `id` string
    - `created_at` integer
    - `updated_at` integer
    - `type` string
    - `username` string
    - `password` string
    - `token` string
  - `inputs` Input[]
    - `id` string
    - `created_at` integer
    - `updated_at` integer
    - `name` string
    - `function_id` string — ID of the function that will be executed for this input
    - `headers` Headers — A hashmap of header keys and a list of values for each string, Go equivalent map[string][]string
    - `status_code` integer — Response status code to return when this input receives a webhook
    - `body` string — Response body to return when this input receives a webhook
    - `response_from_output` string — Output ID to specify a single output for response or set it to 'anyOutput' to return response from any output. Output should respond within 10 seconds
    - `custom_domain` string — Specify any custom domain from your Reserved Domains, such as example.hooks.webhookrelay.com or hooks.example.com (if used with your own top level domain name, create a CNAME pointing at hooks.webhookrelay.com)
    - `path_prefix` string — When used with custom domains, path_prefix can host multiple input endpoints on a single domain, such as hooks.example.com/github -> Jenkins CI, hooks.example.com/gitlab -> Spinnaker
    - `description` string
  - `outputs` Output[]
    - `id` string
    - `created_at` integer
    - `updated_at` integer
    - `bucket_id` string
    - `name` string
    - `disabled` boolean — Allows to disable specific output destination without deleting the output itself.
    - `internal` boolean — When internal output receives webhook, it forwards it to any connected agent (relay CLI, Docker agent or WebSocket connection)
    - `tls_verification` boolean — Enforce TLS verification where possible (internal and public destinations)
    - `destination` string — Destination, where to forward the webhook, such as 'http://localhost:4000'
    - `headers` Headers — A hashmap of header keys and a list of values for each string, Go equivalent map[string][]string
    - `rules` Rules
      - `and` Rules[]
      - `or` Rules[]
      - `not` Rules[]
      - `match` MatchRule
        - `parameter` RuleParameter
          - `name` string
          - `source` 'header' | 'payload' | 'query'
        - `type` 'value' | 'contains' | 'does-not-contain' | 'regex' | 'payload-hash-sha1' | 'payload-hash-sha256'
        - `value` string
        - `substring` string
        - `regex` string
        - `secret` string
    - `timeout` integer — Timeout in seconds, value between 0 and 180
    - `description` string
    - `function_id` string — ID of the function that will be executed for this output

## Other responses

- `400` — Invalid bucket update request supplied
- `404` — Bucket not found

---

[API](https://skmtc.dev/webhookrelay/apis/webhook-relay.md) · [All operations](https://skmtc.dev/webhookrelay/apis/webhook-relay/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/webhookrelay/webhook-relay/revisions/ce8fd4d3cf19/schema)
