content/shared/influxdb3-cli/write.md
The influxdb3 write command writes data to your {{< product-name >}} server.
influxdb3 write [OPTIONS] --database <DATABASE_NAME> [LINE_PROTOCOL]...
write, w
LINE_PROTOCOL: The line protocol to write to {{< product-name >}}. Provide the line protocol in one of the following ways:
--file option| Option | Description | |
|---|---|---|
-H | --host | Host URL of the running {{< product-name >}} server (default is http://127.0.0.1:8181) |
-d | --database | ({{< req >}}) Name of the database to operate on |
--token | ({{< req >}}) Authentication token | |
-f | --file | A file that contains line protocol to write |
--accept-partial | Accept partial writes | |
--no-sync | Do not wait for WAL sync before acknowledging the write request | |
--precision | Precision of data timestamps (ns, us, ms, or s) | |
--tls-ca | Path to a custom TLS certificate authority (for testing or self-signed certificates) | |
--tls-no-verify | Disable TLS certificate verification (Not recommended in production, useful for self-signed certificates) | |
-h | --help | Print help information |
--help-all | Print detailed help information |
You can use the following environment variables to set command options:
| Environment Variable | Option |
|---|---|
INFLUXDB3_HOST_URL | --host |
INFLUXDB3_DATABASE_NAME | --database |
INFLUXDB3_AUTH_TOKEN | --token |
INFLUXDB3_TLS_NO_VERIFY | --tls-no-verify |
In the examples below, replace the following:
DATABASE_NAME{{% /code-placeholder-key %}}:
the name of the database to queryAUTH_TOKEN{{% /code-placeholder-key %}}:
Authentication token{{< code-tabs-wrapper >}} {{% code-tabs %}} string file stdin {{% /code-tabs %}} {{% code-tab-content %}} {{% influxdb/custom-timestamps %}}
<!--pytest.mark.skip-->influxdb3 write \
--database DATABASE_NAME \
--token AUTH_TOKEN \
'home,room=Living\ Room temp=21.1,hum=35.9,co=0i 1641024000'
{{% /influxdb/custom-timestamps %}} {{% /code-tab-content %}} {{% code-tab-content %}}
<!--pytest.mark.skip-->influxdb3 write \
--database DATABASE_NAME \
--token AUTH_TOKEN \
--file ./data.lp
{{% /code-tab-content %}} {{% code-tab-content %}}
<!--pytest.mark.skip-->cat ./data.lp | influxdb3 write \
--database DATABASE_NAME \
--token AUTH_TOKEN
{{% /code-tab-content %}} {{< /code-tabs-wrapper >}}
{{< code-tabs-wrapper >}} {{% code-tabs %}} string file stdin {{% /code-tabs %}} {{% code-tab-content %}} {{% influxdb/custom-timestamps %}}
<!--pytest.mark.skip-->influxdb3 write \
--accept-partial \
--database DATABASE_NAME \
--token AUTH_TOKEN \
'home,room=Living\ Room temp=21.1,hum=35.9,co=0i 1641024000'
{{% /influxdb/custom-timestamps %}} {{% /code-tab-content %}} {{% code-tab-content %}}
<!--pytest.mark.skip-->influxdb3 write \
--accept-partial \
--database DATABASE_NAME \
--token AUTH_TOKEN \
--file ./data.lp
{{% /code-tab-content %}} {{% code-tab-content %}}
<!--pytest.mark.skip-->cat ./data.lp | influxdb3 write \
--accept-partial \
--database DATABASE_NAME \
--token AUTH_TOKEN
{{% /code-tab-content %}} {{< /code-tabs-wrapper >}}
By default, in CLI and HTTP API write requests, {{% product-name %}} uses the
timestamp magnitude to auto-detect the precision.
To avoid any ambiguity, specify the --precision {ns|us|ms|s} option:
influxdb3 write \
--database DATABASE_NAME \
--token AUTH_TOKEN \
--precision s \
'home,room=Living\ Room temp=21.1,hum=35.9,co=0i 1641024000
home,room=Kitchen temp=21.0,hum=35.9,co=0i 1641024000
home,room=Living\ Room temp=21.4,hum=35.9,co=0i 1641027600
home,room=Kitchen temp=23.0,hum=36.2,co=0i 1641027600
'
By default, {{% product-name %}} waits to respond to write requests until the
written data is flushed from the Write-Ahead Log (WAL) to object storage
(every 1s by default).
Use the --no-sync option to immediately return a response without waiting for
the WAL to flush. This improves perceived write response times, but may hide certain
types of write errors--for example: malformed line protocol or type conflicts.
[!Tip] Only use
--no-syncwhen low write latency is more important than guaranteed data durability. Avoid using this option for critical or irreplaceable data, as it increases the risk of silent data loss.
influxdb3 write \
--database DATABASE_NAME \
--token AUTH_TOKEN \
--no-sync \
'home,room=Living\ Room temp=21.1,hum=35.9,co=0i 1641024000'