content/influxdb3/cloud-dedicated/guides/api-compatibility/v2/_index.md
Use the InfluxDB v2 API /api/v2/write endpoint for new write workloads and existing v2 write workloads that you bring to {{% product-name %}}.
Learn how to authenticate requests, adjust request parameters for existing v2 workloads, and find compatible tools for writing and querying data stored in an {{% product-name %}} database.
For help finding the best workflow for your situation, contact Support.
<!-- TOC --> <!-- /TOC -->InfluxDB API endpoints require each request to be authenticated with a database token.
Use the Authorization: Bearer scheme or the Authorization: Token scheme to
pass a database token
that has the necessary permissions for the operation.
Bearer and Token are equivalent in InfluxDB Cloud Dedicated.
The Token scheme is used in the InfluxDB 2.x API.
Bearer is defined by the OAuth 2.0 Framework.
Support for one or the other may vary across InfluxDB API clients.
Authorization: Bearer DATABASE_TOKEN
Authorization: Token DATABASE_TOKEN
Use Bearer to authenticate a write request:
{{% code-placeholders "DATABASE_NAME|DATABASE_TOKEN" %}}
{{% get-shared-text "api/cloud-dedicated/bearer-auth-v2-write.sh" %}}
{{% /code-placeholders %}}
Use Token to authenticate a write request:
{{% code-placeholders "DATABASE_NAME|DATABASE_TOKEN" %}}
{{% get-shared-text "api/cloud-dedicated/token-auth-v2-write.sh" %}}
{{% /code-placeholders %}}
Replace the following:
DATABASE_NAME{{% /code-placeholder-key %}}: your {{% product-name %}} databaseDATABASE_TOKEN{{% /code-placeholder-key %}}:
a database token
with sufficient permissions to the specified databaseInfluxDB HTTP API responses use standard HTTP status codes.
The response body for partial writes and errors contains a JSON object with code and message properties that describe the error.
Response body messages may differ across {{% product-name %}} v1 API, v2 API, InfluxDB Cloud, and InfluxDB OSS.
Missing bucket value
400 Bad Request
{ "code": "invalid",
"message":"missing bucket value"
}
The ?bucket= parameter value is missing in the request.
Provide the database name.
Failed to deserialize org/bucket/precision
400 Bad Request
{ "code":"invalid",
"message":"failed to deserialize org/bucket/precision in request: unknown variant `u`, expected one of `s`, `ms`, `us`, `ns`"
}
The ?precision= parameter contains an unknown value.
Provide a timestamp precision.
Use the InfluxDB v2 API /api/v2/write endpoint for new write workloads and existing v2 workloads.
{{% api-endpoint endpoint="https://{{< influxdb/host >}}/api/v2/write" method="post"%}}
For {{% product-name %}} v2 API /api/v2/write requests, set parameters as listed in the following table:
| Parameter | Allowed in | Ignored | Value |
|---|---|---|---|
| org | Query string | Ignored | Non-zero-length string (ignored, but can't be empty) |
| orgID | Query string | Ignored | N/A |
| bucket {{% req " *" %}} | Query string | Honored | Database name |
| precision | Query string | Honored | Timestamp precision |
| Accept | Header | Honored | User-defined |
Authorization {{% req " *" %}} | Header | Honored | Bearer DATABASE_TOKEN or Token DATABASE_TOKEN |
Content-Encoding | Header | Honored | gzip (compressed data) or identity (uncompressed) |
| Content-Length | Header | Honored | User-defined |
| Content-Type | Header | Ignored | N/A (only supports line protocol) |
| Zap-Trace-Span | Header | Ignored |
{{% caption %}}{{% req " *" %}} = {{% req "Required" %}}{{% /caption %}}
Use one of the following precision values in v2 API /api/v2/write requests:
ns: nanosecondsus: microsecondsms: millisecondss: secondsm: minutesh: hoursThe following tools work with the {{% product-name %}} /api/v2/write endpoint:
See how to configure Telegraf to write to {{% product-name %}}.
To test InfluxDB v2 API writes interactively, use the influx3 data CLI or common HTTP clients such as cURL and Postman.
To setup and start using interactive clients, see the Get started tutorial.
[!Warning]
influx CLI not supported
Don't use the
influxCLI with {{% product-name %}}. While it may coincidentally work, it isn't officially supported.
InfluxDB v3 client libraries and v2 client libraries
can write data to the InfluxDB v2 API /api/v2/write endpoint.
Client libraries are language-specific packages that integrate InfluxDB APIs with your application.
To setup and start using client libraries, see the Get started tutorial.
{{% product-name %}} provides the following protocols for executing a query:
/query request that contains an InfluxQL query.[!Note]
Tools to execute queries
{{% product-name %}} supports many different tools for querying data, including:
[!Warning]
/api/v2/query not supported
The
/api/v2/queryAPI endpoint and associated tooling, such as theinfluxCLI and InfluxDB v2 client libraries, aren’t supported in {{% product-name %}}.