---
title: Create a bucket
description: Create buckets to store time series data in InfluxDB Cloud using the InfluxDB UI, influx CLI, or InfluxDB HTTP API.
url: https://docs.influxdata.com/influxdb/cloud/admin/buckets/create-bucket/
estimated_tokens: 3122
product: InfluxDB Cloud (TSM)
version: cloud
---

# Create a bucket

Use the InfluxDB user interface (UI), the `influx` command line interface (CLI), or the InfluxDB HTTP API to create a bucket.

By default, buckets have an `implicit` **schema-type** and a schema that conforms to your data. To require measurements to have specific columns and data types and prevent non-conforming write requests, [create a bucket with the `explicit` schema-type](#create-a-bucket-that-enforces-explicit-schemas).

-   [Create a bucket](#create-a-bucket)
-   [Create a bucket that enforces explicit schemas](#create-a-bucket-that-enforces-explicit-schemas)
-   [Bucket naming restrictions](#bucket-naming-restrictions)

<!-- Tabbed content: Select one of the following options -->

**InfluxDB UI:**

There are two places you can create a bucket in the UI.

-   [Create a bucket from the Load Data menu](#create-a-bucket-from-the-load-data-menu)
-   [Create a bucket in the Data Explorer](#create-a-bucket-in-the-data-explorer)

### Create a bucket from the Load Data menu

1. In the navigation menu on the left, select **Load Data** > **Buckets**.

Load Data

2. Click **Create Bucket** in the upper right.
3. Enter a **Name** for the bucket *(see [Bucket naming restrictions](#bucket-naming-restrictions))*.
4. Select when to **Delete Data**:
    -   **Never** to retain data forever.
    -   **Older than** to choose a specific retention period.
5. Click **Create** to create the bucket.

### Create a bucket in the Data Explorer

1. In the navigation menu on the left, select \**Explore* (**Data Explorer**).

Data Explorer

2. In the **From** panel in the Flux Builder, select `+ Create Bucket`.
3. Enter a **Name** for the bucket *(see [Bucket naming restrictions](#bucket-naming-restrictions))*.
4. Select when to **Delete Data**:
    -   **Never** to retain data forever.
    -   **Older than** to choose a specific retention period.
5. Click **Create** to create the bucket.

**influx CLI:**

## Create a bucket using the influx CLI

To create a bucket with the `influx` CLI, use the [`influx bucket create` command](/influxdb/cloud/reference/cli/influx/bucket/create) and specify values for the following flags:

-   `-o`, `--org`: Organization name
-   `-n`, `--name`: Bucket name *(see [Bucket naming restrictions](#bucket-naming-restrictions))*
-   `-r`, `--retention`: Retention period duration

The following example creates a bucket with a retention period of `72` hours:

```sh
influx bucket create \
  --name my-bucket \
  --org {INFLUX_ORG} \
  --retention 72h
```

**InfluxDB API:**

To create a bucket with the InfluxDB HTTP API, send a request to the following endpoint:

[POST https://cloud2.influxdata.com/api/v2/buckets](/influxdb/cloud/api/buckets/)

Include the following in your request:

-   **Headers:**
    -   **Authorization:** `Token` scheme with your InfluxDB [API token](/influxdb/cloud/admin/tokens/)
    -   **Content-type:** `application/json`
-   **Request body:** JSON object with the following fields:  
    \* Required
    -   \* **name:** Bucket name
    -   **orgID:** InfluxDB organization ID
    -   **description:** Bucket description
    -   \* **retentionRules:** JSON array containing a single object with the following fields:
        -   **type:** expire
        -   **everySecond**: Number of seconds to retain data *(0 means forever)*
        -   **shardGroupDuration**: Number of seconds to retain shard groups *(0 means forever)*

The following example creates a bucket with a retention period of `86,400` seconds, or 24 hours:

```sh
INFLUX_TOKEN=YOUR_API_TOKEN
INFLUX_ORG_ID=YOUR_ORG_ID

curl --request POST \
  "http://localhost:8086/api/v2/buckets" \
  --header "Authorization: Token ${INFLUX_TOKEN}" \
  --header "Content-type: application/json" \
  --data '{
    "orgID": "'"${INFLUX_ORG_ID}"'",
    "name": "iot-center",
    "retentionRules": [
      {
        "type": "expire",
        "everySeconds": 86400,
        "shardGroupDurationSeconds": 0
      }
    ]
  }'
```

*For information about **InfluxDB API options and response codes**, see [InfluxDB API Buckets reference documentation](/influxdb3/cloud-serverless/api/buckets/#operation/PostBuckets).*

<!-- End tabbed content -->

## Create a bucket that enforces explicit schemas

A bucket with the `explicit` schema-type enforces [measurement schemas that you define for the bucket](/influxdb/cloud/admin/organizations/buckets/bucket-schema/) and rejects writes that don’t conform to any of the schemas.

Use the **`influx` CLI** or **InfluxDB HTTP API** to create a bucket with the `explicit` schema-type.

<!-- Tabbed content: Select one of the following options -->

**influx CLI:**

Use the `influx bucket create` command and specify the `--schema-type=explicit` flag:

```sh
influx bucket create \
  --name my_schema_bucket \
  --schema-type explicit
```

**InfluxDB API:**

Use the HTTP API [`/api/v2/buckets`](/influxdb/cloud/api/buckets/) endpoint and set the `schemaType` property value to `explicit` in the request body–for example:

[POST https://cloud2.influxdata.com/api/v2/buckets](/influxdb/cloud/api/buckets/)

```js
{
  "orgID": "{INFLUX_ORG_ID}",
  "name": "my-explicit-bucket",
  "description": "My Explicit Bucket",
  "rp": "string",
  "retentionRules": [
    {
      "type": "expire",
      "everySeconds": 86400,
      "shardGroupDurationSeconds": 0
    }
  ],
  "schemaType": "explicit"
}
```

<!-- End tabbed content -->

Next, see how to [create an explicit bucket schema](/influxdb/cloud/admin/organizations/buckets/bucket-schema/) for a measurement.

## Bucket naming restrictions

Bucket names must adhere to the following naming restrictions:

-   Must contain two or more characters
-   Cannot start with an underscore (`_`)
-   Cannot contain a double quote (`"`)
