---
title: /write 1.x compatibility API
description: The /write 1.x compatibility endpoint writes data to InfluxDB Cloud and InfluxDB OSS 2.x using patterns from the InfluxDB 1.x /write API endpoint.
url: https://docs.influxdata.com/influxdb/v2/api-guide/influxdb-1x/write/
estimated_tokens: 1328
product: InfluxDB OSS v2
version: v2
publisher: InfluxData
canonical: https://docs.influxdata.com/influxdb/v2/api-guide/influxdb-1x/write/
date: '2026-05-15T15:46:14-06:00'
lastmod: '2026-05-15T15:46:14-06:00'
---

This page documents an earlier version of InfluxDB OSS.[InfluxDB 3 Core](/influxdb3/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/v2/admin/tokens/#token-hashing).

The `/write` 1.x compatibility endpoint writes data to InfluxDB Cloud and InfluxDB OSS 2.9using patterns from the InfluxDB 1.x `/write` API endpoint.
Use the `POST` request method to write [line protocol](/influxdb/v2/reference/syntax/line-protocol/)to the `/write` endpoint.

```
POST http://localhost:8086/write

```

## Authentication

Use one of the following authentication methods:

* **token authentication**
* **basic authentication with username and password**
* **query string authentication with username and password**

*For more information, see [Authentication](/influxdb/v2/reference/api/influxdb-1x/#authentication).*

## Request body

Include your line protocol in the request body.**Binary encode** the line protocol to prevent unintended formatting.
The examples [below](#write-examples) use the curl `--data-binary` flag to binary
encode the line protocol.

## Query string parameters

### u

(Optional) The 1.x **username** to authenticate the request.*See [query string authentication](/influxdb/v2/reference/api/influxdb-1x/#query-string-authentication).*

### p

(Optional) The 1.x **password** to authenticate the request.*See [query string authentication](/influxdb/v2/reference/api/influxdb-1x/#query-string-authentication).*

### db

(Required) The **database** to write data to.
This is mapped to an InfluxDB [bucket](/influxdb/v2/reference/glossary/#bucket).*See [Database and retention policy mapping](/influxdb/v2/reference/api/influxdb-1x/dbrp/).*

### rp

The **retention policy** to write data to.
This is mapped to an InfluxDB [bucket](/influxdb/v2/reference/glossary/#bucket).*See [Database and retention policy mapping](/influxdb/v2/reference/api/influxdb-1x/dbrp/).*

### precision

The precision of [Unix timestamps](/influxdb/v2/reference/glossary/#unix-timestamp) in the line protocol.
Default is nanosconds (`ns`).
The following precisions are available:

* `ns` - nanoseconds
* `u` or `µ` - microseconds
* `ms` - milliseconds
* `s` - seconds
* `m` - minutes
* `h` - hours

## Write examples

* [Write data using basic authentication](#write-data-using-basic-authentication)
* [Write data to a non-default retention policy](#write-data-to-a-non-default-retention-policy)
* [Write multiple lines of line protocol](#write-multiple-lines-of-line-protocol)
* [Write data with millisecond Unix timestamps](#write-data-with-millisecond-unix-timestamps)
* [Use curl to write data from a file](#use-curl-to-write-data-from-a-file)

##### Write data using basic authentication

```sh
curl --request POST http://localhost:8086/write?db=DATABASE_NAME \
  --user "USERNAME:PASSWORD_OR_TOKEN" \
  --data-binary "measurement,host=host1 field1=2i,field2=2.0 1577836800000000000"
```

##### Write data using token authentication

```sh
curl --request POST http://localhost:8086/write?db=DATABASE_NAME \
  --header "Authorization: Token API_TOKEN" \
  --data-binary "measurement,host=host1 field1=2i,field2=2.0 1577836800000000000"
```

##### Write data to a non-default retention policy

```sh
curl --request POST "http://localhost:8086/write?db=DATABASE_NAME&rp=RETENTION_POLICY" \
  --header "Authorization: Token API_TOKEN" \
  --data-binary "measurement,host=host1 field1=2i,field2=2.0 1577836800000000000"
```

##### Write multiple lines of line protocol

```sh
curl --request POST http://localhost:8086/write?db=DATABASE_NAME \
  --header "Authorization: Token API_TOKEN" \
  --data-binary "measurement,host=host1 field1=2i,field2=2.0 1577836800000000000
measurement,host=host2 field1=14i,field2=12.7 1577836800000000000
measurement,host=host3 field1=5i,field2=6.8 1577836800000000000"
```

##### Write data with millisecond Unix timestamps

```sh
curl --request POST "http://localhost:8086/write?db=DATABASE_NAME&precision=ms" \
  --header "Authorization: Token API_TOKEN" \
  --data-binary "measurement,host=host1 field1=2i,field2=2.0 1577836800000"
```

##### Use curl to write data from a file

```sh
curl --request POST http://localhost:8086/write?db=DATABASE_NAME \
  --header "Authorization: Token API_TOKEN" \
  --data-binary @path/to/line-protocol.txt
```

Replace the following:

* `DATABASE_NAME` and `RETENTION_POLICY`: the [database and retention policy mapping (DBRP)](/influxdb/v2/reference/api/influxdb-1x/dbrp/) for the InfluxDB v2 bucket that you want to write to
* `USERNAME`: your [InfluxDB 1.x username](/influxdb/v2/reference/api/influxdb-1x/#manage-credentials)
* `PASSWORD_OR_TOKEN`: your [InfluxDB 1.x password or InfluxDB API token](/influxdb/v2/reference/api/influxdb-1x/#manage-credentials)
* `API_TOKEN`: your [InfluxDB API token](/influxdb/v2/admin/tokens/)

#### Related

* [Line protocol](/influxdb/v2/reference/syntax/line-protocol/)

[write](/influxdb/v2/tags/write/)
