---
title: Write to InfluxDB
description: Use to() or experimental.to() to write data to InfluxDB using Flux.
url: https://docs.influxdata.com/flux/v0/write-data/influxdb/
estimated_tokens: 1633
product: Flux
version: v0
publisher: InfluxData
canonical: https://docs.influxdata.com/flux/v0/write-data/influxdb/
date: '2023-11-06T15:53:12-07:00'
lastmod: '2023-11-06T15:53:12-07:00'
---

To write data to InfluxDB using Flux, use [`to()`](/flux/v0/stdlib/influxdata/influxdb/to/)or [`experimental.to()`](/flux/v0/stdlib/experimental/to/).
Provide the following parameters to both functions:

* **bucket** or **bucketID**: *InfluxDB bucket name* or *bucket ID* to write to.
* **org** or **orgID**: *InfluxDB organization name* or *organization ID* to write to.
* **host**: [InfluxDB URL](/influxdb/v2/reference/urls/) or[InfluxDB Cloud region](/influxdb/cloud/reference/regions) URL.
* **token**: [InfluxDB API token](/influxdb/v2/admin/tokens/).

##### Write options

* [Write data to InfluxDB](#write-data-to-influxdb)
* [Write pivoted data to InfluxDB](#write-pivoted-data-to-influxdb)

## Write data to InfluxDB

Use [`to()`](/flux/v0/stdlib/influxdata/influxdb/to/) to write data structured using the standard[InfluxDB v2.x and InfluxDB Cloud data structure](/influxdb/v2/reference/key-concepts/data-elements/).
Data must include, at a minimum, the following columns:

* `_time`
* `_measurement`
* `_field`
* `_value`

*All other columns are written to InfluxDB as [tags](/influxdb/v2/reference/key-concepts/data-elements/#tags).*

Given the following input [stream of tables](/flux/v0/get-started/data-model/#stream-of-tables):

|       \_time       |\_measurement|id |loc|\_field|\_value|
|--------------------|-------------|---|---|-------|-------|
|2021-01-01T00:00:00Z|      m      |001|SF | temp  | 72.1  |
|2021-01-01T01:00:00Z|      m      |001|SF | temp  | 71.8  |
|2021-01-01T02:00:00Z|      m      |001|SF | temp  | 71.2  |

|       \_time       |\_measurement|id |loc|\_field|\_value|
|--------------------|-------------|---|---|-------|-------|
|2021-01-01T00:00:00Z|      m      |001|SF |  hum  | 40.5  |
|2021-01-01T01:00:00Z|      m      |001|SF |  hum  | 50.1  |
|2021-01-01T02:00:00Z|      m      |001|SF |  hum  | 52.8  |

`to()` generates the following [line protocol](/influxdb/v2/reference/syntax/line-protocol/)and writes it to InfluxDB:

```
m,id=001,loc=SF temp=72.1,hum=40.5 1609459200000000000
m,id=001,loc=SF temp=71.8,hum=50.1 1609462800000000000
m,id=001,loc=SF temp=71.2,hum=52.8 1609466400000000000
```

### Example: Write data to a bucket

#### In the same org ####

```js
data
    |> to(bucket: "example-bucket")
```

```js
data
    |> to(bucket: "example-bucket", org: "example-org", token: "mY5uPeRs3Cre7tok3N")
```

```js
data
    |> to(
        bucket: "example-bucket",
        org: "example-org",
        token: "mY5uPeRs3Cre7tok3N",
        host: "https://myinfluxdbdomain.com/8086",
    )
```

## Write pivoted data to InfluxDB

Use [`experimental.to()`](/flux/v0/stdlib/experimental/to/) to write[pivoted](/flux/v0/stdlib/universe/pivot/) data to InfluxDB.
Input data must have the following columns:

* `_time`
* `_measurement`

All columns **in the [group key](/flux/v0/get-started/data-model/#group-key)**other than `_time` and `_measurement` are written to InfluxDB as [tags](/influxdb/v2/reference/key-concepts/data-elements/#tags).
Columns **not in the group key** are written to InfluxDB as [fields](/influxdb/v2/reference/key-concepts/data-elements/#fields).

> [!Note]
> `_start` and `_stop` columns are ignored.

**To write pivoted data to InfluxDB:**

1. Import the `experimental` package.
2. Use `experimental.to()` to write pivoted data to an InfluxDB bucket.

```js
import "experimental"

data
    |> experimental.to(bucket: "example-bucket")
```

Given the following input [stream of tables](/flux/v0/get-started/data-model/#stream-of-tables):

Group key = [\_measurement, id, loc]

|       \_time       |\_measurement|id |loc|min|max|mean|
|--------------------|-------------|---|---|---|---|----|
|2021-01-01T00:00:00Z|      m      |001|FR | 2 | 6 |4.0 |
|2021-01-01T01:00:00Z|      m      |001|FR | 2 |18 |10.0|
|2021-01-01T02:00:00Z|      m      |001|FR | 1 |13 |7.0 |

|       \_time       |\_measurement|id |loc|min|max|mean|
|--------------------|-------------|---|---|---|---|----|
|2021-01-01T00:00:00Z|      m      |001|BK | 4 | 4 |4.0 |
|2021-01-01T01:00:00Z|      m      |001|BK | 3 | 5 |4.0 |
|2021-01-01T02:00:00Z|      m      |001|BK | 5 | 8 |6.5 |

`experimental.to()` generates the following [line protocol](/influxdb/v2/reference/syntax/line-protocol/)and writes it to InfluxDB:

```
m,id=001,loc=FR min=2i,max=6i,mean=4 1609459200000000000
m,id=001,loc=FR min=2i,max=18i,mean=10 1609462800000000000
m,id=001,loc=FR min=1i,max=13i,mean=7 1609466400000000000
m,id=001,loc=BK min=4i,max=4i,mean=4 1609459200000000000
m,id=001,loc=BK min=3i,max=5i,mean=4 1609462800000000000
m,id=001,loc=BK min=5i,max=3i,mean=6.5 1609466400000000000
```

### Example: Write pivoted data to InfluxDB

#### In the same org ####

```js
import "experimental"

data
    |> experimental.to(bucket: "example-bucket")
```

```js
import "experimental"

data
    |> experimental.to(bucket: "example-bucket", org: "example-org", token: "mY5uPeRs3Cre7tok3N")
```

```js
import "experimental"

data
    |> experimental.to(
        bucket: "example-bucket",
        org: "example-org",
        token: "mY5uPeRs3Cre7tok3N",
        host: "https://myinfluxdbdomain.com/8086",
    )
```

#### Related

* [to() function](/flux/v0/stdlib/influxdata/influxdb/to/)
* [experimental.to() function](/flux/v0/stdlib/experimental/to/)
| _time | _measurement | id | loc | _field | _value |
| --- | --- | --- | --- | --- | --- |
| _time | _measurement | id | loc | _field | _value |
| 2021-01-01T00:00:00Z | m | 001 | SF | temp | 72.1 |
| 2021-01-01T01:00:00Z | m | 001 | SF | temp | 71.8 |
| 2021-01-01T02:00:00Z | m | 001 | SF | temp | 71.2 |

| _time | _measurement | id | loc | _field | _value |
| --- | --- | --- | --- | --- | --- |
| _time | _measurement | id | loc | _field | _value |
| 2021-01-01T00:00:00Z | m | 001 | SF | hum | 40.5 |
| 2021-01-01T01:00:00Z | m | 001 | SF | hum | 50.1 |
| 2021-01-01T02:00:00Z | m | 001 | SF | hum | 52.8 |

| _time | _measurement | id | loc | min | max | mean |
| --- | --- | --- | --- | --- | --- | --- |
| _time | _measurement | id | loc | min | max | mean |
| 2021-01-01T00:00:00Z | m | 001 | FR | 2 | 6 | 4.0 |
| 2021-01-01T01:00:00Z | m | 001 | FR | 2 | 18 | 10.0 |
| 2021-01-01T02:00:00Z | m | 001 | FR | 1 | 13 | 7.0 |

| _time | _measurement | id | loc | min | max | mean |
| --- | --- | --- | --- | --- | --- | --- |
| _time | _measurement | id | loc | min | max | mean |
| 2021-01-01T00:00:00Z | m | 001 | BK | 4 | 4 | 4.0 |
| 2021-01-01T01:00:00Z | m | 001 | BK | 3 | 5 | 4.0 |
| 2021-01-01T02:00:00Z | m | 001 | BK | 5 | 8 | 6.5 |
