Documentation

Create a database

Use the influxdb3 create database command, the HTTP API, or InfluxDB 3 Explorer to create a database in InfluxDB 3 Enterprise.

Create a database using the influxdb3 CLI

Use the influxdb3 create database command to create a database. Provide the following:

# Create a database with a 30-day retention period
influxdb3 create database --retention-period 30d 
DATABASE_NAME
# Create a database with a 90-day retention period using authentication influxdb3 create database \ --retention-period 90d \ --token
AUTH_TOKEN
\
DATABASE_NAME
# Create a database with infinite retention (default) influxdb3 create database
DATABASE_NAME

Replace the following:

  • DATABASE_NAME: the name of the database to create
  • AUTH_TOKEN: your admin token

Create a database using the HTTP API

To create a database using the HTTP API, send a POST request to the /api/v3/configure/database endpoint:

POST localhost:8181/api/v3/configure/database

Include the following in your request:

  • Headers:
    • Content-Type: application/json
    • Authorization: Bearer with your admin token
  • Request body (JSON object):
    • db (string, required): Database name
    • retention_period (string, optional): Retention period. If omitted, data doesn’t expire.
# Create a database with a 30-day retention period
curl --request POST "localhost:8181/api/v3/configure/database" \
  --header "Content-Type: application/json" \
  --header "Authorization: Bearer 
AUTH_TOKEN
"
\
--data '{ "db": "
DATABASE_NAME
",
"retention_period": "30d" }' # Create a database with a 90-day retention period curl --request POST "localhost:8181/api/v3/configure/database" \ --header "Content-Type: application/json" \ --header "Authorization: Bearer
AUTH_TOKEN
"
\
--data '{ "db": "
DATABASE_NAME
",
"retention_period": "90d" }' # Create a database with infinite retention (default) curl --request POST "localhost:8181/api/v3/configure/database" \ --header "Content-Type: application/json" \ --header "Authorization: Bearer
AUTH_TOKEN
"
\
--data '{ "db": "
DATABASE_NAME
"
}'

Replace the following:

  • DATABASE_NAME: the name of the database to create
  • AUTH_TOKEN: your admin token

Response

A successful request returns HTTP status 200 with the database configuration.

Create a database using InfluxDB 3 Explorer

Currently, you can’t set a retention period when creating a database in Explorer. To create a database with a retention period, see one of the following:

Use the InfluxDB 3 Explorer web interface to create a database in InfluxDB 3 Enterprise:

  1. If you haven’t already, see how to get started with Explorer and connect to your InfluxDB 3 Enterprise server.
  2. In Explorer, click Manage Databases in the left navigation.
  3. Click + Create New.
  4. Enter a database name.
  5. Click Create Database.

For more information, see Manage databases with InfluxDB 3 Explorer.

Retention period

By default, data does not expire. When creating a database, set a retention period to automatically delete expired data and optimize storage.

Retention period syntax

The retention period value is a time duration value made up of a numeric value plus a duration unit. For example, 30d means 30 days. The retention period value cannot be negative or contain whitespace.

Valid durations units include

  • m: minute
  • h: hour
  • d: day
  • w: week
  • mo: month
  • y: year

Retention period constraints

  • Minimum for data retention: The practical minimum retention period is 1 hour (1h).
  • Zero-duration periods: Setting a retention period to 0<unit> (for example, 0d or 0h) is allowed but marks all data for immediate deletion at query time. This differs from InfluxDB 1.x and 2.x where 0d meant infinite retention.
  • Infinite retention: Use none to set an infinite retention period.

For more information about retention periods, see Data retention.

Database retention serves as default for tables

The database retention period serves as the default retention period for all tables in the database, unless a table has its own retention period defined. Table-level retention periods override database retention periods.

For more information, see Retention period precedence.

Database naming restrictions

Database names must adhere to the following naming restrictions:

  • Length: Maximum 64 characters
  • Allowed characters: Alphanumeric characters (a-z, A-Z, 0-9), underscore (_), dash (-), and forward-slash (/)
  • Prohibited characters: Cannot contain whitespace, punctuation, or other special characters
  • Starting character: Should start with a letter or number and should not start with underscore (_)
  • Case sensitivity: Database names are case-sensitive

Underscore prefix reserved for system use

Names starting with an underscore (_) may be reserved for InfluxDB system use. While InfluxDB 3 Enterprise might not explicitly reject these names, using them risks conflicts with current or future system features and may result in unexpected behavior or data loss.

Valid database name examples

mydb
sensor_data
prod-metrics
logs/application
webserver123

Invalid database name examples

my database        # Contains whitespace
sensor.data        # Contains period
app@server         # Contains special character
_internal          # Starts with underscore (reserved)
very_long_database_name_that_exceeds_sixty_four_character_limit  # Too long

For comprehensive information about naming restrictions for all InfluxDB identifiers, see Naming restrictions and conventions.

InfluxQL DBRP naming convention

In InfluxDB 1.x, data is stored in databases and retention policies. In InfluxDB 3 Enterprise, databases and retention policies have been merged into databases, where databases have a retention period, but retention policies are no longer part of the data model. Because InfluxQL uses the 1.x data model, a database must be mapped to a v1 database and retention policy (DBRP) to be queryable with InfluxQL.

When naming a database that you want to query with InfluxQL, use the following naming convention to automatically map v1 DBRP combinations to an InfluxDB 3 Enterprise database:

database_name/retention_policy_name
Database naming examples
v1 Database namev1 Retention Policy nameNew database name
dbrpdb/rp
telegrafautogentelegraf/autogen
webmetrics1w-downsampledwebmetrics/1w-downsampled

Database limit

Default maximum number of databases: 100

For more information about InfluxDB 3 Enterprise database, table, and column limits, see Database, table, and column limits.


Was this page helpful?

Thank you for your feedback!


New in InfluxDB 3.5

Key enhancements in InfluxDB 3.5 and the InfluxDB 3 Explorer 1.3.

See the Blog Post

InfluxDB 3.5 is now available for both Core and Enterprise, introducing custom plugin repository support, enhanced operational visibility with queryable CLI parameters and manual node management, stronger security controls, and general performance improvements.

InfluxDB 3 Explorer 1.3 brings powerful new capabilities including Dashboards (beta) for saving and organizing your favorite queries, and cache querying for instant access to Last Value and Distinct Value caches—making Explorer a more comprehensive workspace for time series monitoring and analysis.

For more information, check out:

InfluxDB Docker latest tag changing to InfluxDB 3 Core

On November 3, 2025, the latest tag for InfluxDB Docker images will point to InfluxDB 3 Core. To avoid unexpected upgrades, use specific version tags in your Docker deployments.

If using Docker to install and run InfluxDB, the latest tag will point to InfluxDB 3 Core. To avoid unexpected upgrades, use specific version tags in your Docker deployments. For example, if using Docker to run InfluxDB v2, replace the latest version tag with a specific version tag in your Docker pull command–for example:

docker pull influxdb:2