Creates a bucket in a specified project, sets the ACL for an existing bucket,
or modifies the metadata for an existing bucket. You can only apply one
configuration setting per request.

Use a PUT bucket request to:

- [Create a Bucket](https://docs.cloud.google.com/storage/docs/xml-api/put-bucket-create.md.txt)
- [Set Bucket ACLs](https://docs.cloud.google.com/storage/docs/xml-api/put-bucket-acls.md.txt)
- [Set Bucket Metadata](https://docs.cloud.google.com/storage/docs/xml-api/put-bucket-metadata.md.txt)

> [!NOTE]
> **Note:** Bucket configuration changes may take time to propagate. For more information, see [Consistency](https://docs.cloud.google.com/storage/docs/consistency.md.txt).

## Common request headers

The following are common request headers for PUT bucket requests.

| Header | Description | Required |
|---|---|---|
| `Authorization` | The authentication string for the request. | Yes |
| `Content-Length` | The length of the request body without headers (in bytes). \* Not required for requests that use chunked transfer encoding. | Yes\* |
| `Content-Type` | The MIME type of the request body. | No |
| `Date` | The date and time of the request. | Yes |
| `Host` | The URI for Cloud Storage. For more information, see [Request Endpoints](https://docs.cloud.google.com/storage/docs/request-endpoints.md.txt). | Yes |
| `x-goog-user-project` | The project to be billed for charges associated with the request. | No |