Manage API tokens
This page documents an earlier version of InfluxDB OSS. InfluxDB 3 Core is the latest stable version.
API token hashing is enabled by default in InfluxDB OSS 2.9.0
Stronger token security: tokens are stored as hashes on disk, so a copy of the database file doesn’t expose usable tokens. Existing tokens are hashed on first startup and the original strings can’t be recovered afterward — capture any plaintext tokens you still need before you upgrade.
For more information, see Token hashing.
InfluxDB API tokens ensure secure interaction between InfluxDB and external tools such as clients or applications. An API token belongs to a specific user and identifies InfluxDB permissions within the user’s organization.
Learn how to create, view, update, or delete an API token.
API token types
Operator token
Grants full read and write access to all organizations and all organization resources in InfluxDB OSS 2.x. Some operations–for example, retrieving the server configuration–require operator permissions.
Initial operator token
When you first initialize InfluxDB, the setup process creates an initial user, org, bucket, and an Operator token with full read/write access to all organizations. When running setup, you can either:
- Supply the token value yourself (
influx setup --tokenflag or the setup APItokenfield), or - Let InfluxDB auto-generate it. InfluxDB stores the generated token in the active influx CLI config so the CLI can use it later.
Creating operator tokens after setup
To create an operator token manually with the InfluxDB UI, api/v2 API, or influx CLI after the setup process is completed, you must use an existing Operator token.
To create a new Operator token without using an existing one, see how to use the influxd recovery auth CLI.
Because Operator tokens have full read and write access to all organizations in the database, we recommend creating an All Access token for each organization and using those to manage InfluxDB. This helps to prevent accidental interactions across organizations.
All Access token
Grants full read and write access to all resources in an organization.
Read/Write token
Grants read access, write access, or both to specific buckets in an organization.
Token hashing
InfluxDB can store API tokens as hashes on disk. Hashed storage protects tokens at rest: a copy of the underlying database file doesn’t expose usable tokens.
| InfluxDB version | Token hashing default |
|---|---|
| 2.9.0 and later | Enabled by default |
| 2.8.0–2.8.x | Available, disabled by default |
| 2.7 and earlier | Not supported |
How token hashing works
When influxd starts with token hashing enabled:
- Existing unhashed tokens are migrated to hashed form.
- After migration, the original token strings cannot be retrieved.
- New tokens created while hashing is enabled are stored as hashes.
Hashed tokens continue to authenticate exactly like unhashed tokens — clients and integrations that already store their token in plaintext continue to work.
If you disable token hashing later, tokens that have already been hashed on disk remain hashed. New tokens created while hashing is disabled are stored unhashed.
Before upgrading to 2.9.0
Capture plaintext tokens before you upgrade
Once influxd 2.9.0 starts with the default settings, all existing
tokens are hashed and the original strings cannot be recovered.
Capture any tokens you still need in plaintext before the first
2.9.0 startup — including the operator token, which is required when
restoring a backup with
influx restore --full.
Backup and restore
A backup taken from an instance with token hashing enabled does not
contain a plaintext operator token. To restore that backup with
influx restore --full, supply the operator token via the
--operator-token <token> flag (influx-cli v2.8.0+). Without that
flag, the CLI cannot authenticate post-restore requests.
Disable token hashing
To opt out of the default — for example, to preserve compatibility with a
possible downgrade to InfluxDB 2.7 or earlier — start influxd with the
use-hashed-tokens
option set to false:
influxd --use-hashed-tokens=falseOr set the environment variable or configuration file equivalent:
export INFLUXD_USE_HASHED_TOKENS=falseuse-hashed-tokens: falseDowngrade considerations
Downgrading to InfluxDB 2.7 or earlier after token hashing has run on a
database erases all stored tokens as part of the schema downgrade.
If you may need to downgrade, start influxd 2.9.0 with
--use-hashed-tokens=false so that token hashing never runs on the
database.
If token hashing is never enabled, downgrading from 2.9.0 to 2.8.x or 2.7.x is supported. Downgrading directly to a version earlier than 2.7 is not recommended.
Replace a lost token
Because hashing prevents recovery of the original token string, replace
lost tokens by creating a new token.
To replace a lost operator token without an existing one, use
influxd recovery auth.
Create a token
Create an API token in InfluxDB using the InfluxDB UI, the influx CLI, or the InfluxDB API.
View tokens
View API tokens in InfluxDB using the InfluxDB UI, the influx CLI, or the InfluxDB API.
Update a token
Update API tokens’ descriptions in InfluxDB using the InfluxDB UI.
Delete a token
Delete an API token from InfluxDB using the InfluxDB UI or the influx CLI.
Use tokens
Use an API token in the InfluxDB UI, the influx CLI, or the InfluxDB API.
Was this page helpful?
Thank you for your feedback!
Support and feedback
Thank you for being part of our community! We welcome and encourage your feedback and bug reports for InfluxDB OSS v2 and this documentation. To find support, use the following resources:
Customers with an annual or support contract can contact InfluxData Support.