---
title: Write data with the InfluxDB JavaScript client library
description: Use the JavaScript client library to write data with the InfluxDB API in Node.js.
url: https://docs.influxdata.com/influxdb/cloud/api-guide/client-libraries/nodejs/write/
estimated_tokens: 1196
product: InfluxDB Cloud (TSM)
version: cloud
publisher: InfluxData
canonical: https://docs.influxdata.com/influxdb/cloud/api-guide/client-libraries/nodejs/write/
date: '2025-04-02T15:54:32-06:00'
lastmod: '2025-04-02T15:54:32-06:00'
---

Use the [InfluxDB JavaScript client library](https://github.com/influxdata/influxdb-client-js) to write data from a Node.js environment to InfluxDB.

The JavaScript client library includes the following convenient features for writing data to InfluxDB:

* Apply default tags to data points.
* Buffer points into batches to optimize data transfer.
* Automatically retry requests on failure.
* Set an optional HTTP proxy address for your network.

### Before you begin

* [Install the client library and other dependencies](/influxdb/cloud/api-guide/client-libraries/nodejs/install/).

### Write data with the client library

1. Instantiate an `InfluxDB` client. Provide your InfluxDB URL and API token.

   ```
   import {InfluxDB, Point} from '@influxdata/influxdb-client'

   const influxDB = new InfluxDB({YOUR_URL, YOUR_API_TOKEN})
   ```

   Replace the following:

   * *`YOUR_URL`*: InfluxDB URL
   * *`YOUR_API_TOKEN`*: InfluxDB API token

2. Use the `getWriteApi()` method of the client to create a **write client**.
   Provide your InfluxDB organization ID and bucket name.

   ```
   const writeApi = influxDB.getWriteApi(YOUR_ORG, YOUR_BUCKET)
   ```

   Replace the following:

   * *`YOUR_ORG`*: InfluxDB organization ID
   * *`YOUR_BUCKET`*: InfluxDB bucket name

3. To apply one or more [tags](/influxdb/cloud/reference/glossary/#tag) to all points, use the `useDefaultTags()` method.
   Provide tags as an object of key/value pairs.

   ```
   writeApi.useDefaultTags({region: 'west'})
   ```

4. Use the `Point()` constructor to create a [point](/influxdb/cloud/reference/glossary/#point).

   1. Call the constructor and provide a [measurement](/influxdb/cloud/reference/glossary/#measurement).
   2. To add one or more tags, chain the `tag()` method to the constructor.
      Provide a `name` and `value`.
   3. To add a field of type `float`, chain the `floatField()` method to the constructor.
      Provide a `name` and `value`.

   ```
   const point1 = new Point('temperature')
     .tag('sensor_id', 'TLM010')
     .floatField('value', 24)
   ```

5. Use the `writePoint()` method to write the point to your InfluxDB bucket.
   Finally, use the `close()` method to flush all pending writes.
   The example logs the new data point followed by “WRITE FINISHED” to stdout.

   ```
   writeApi.writePoint(point1)

   writeApi.close().then(() => {
     console.log('WRITE FINISHED')
   })
   ```

### Complete example

[Curl](#curl)[Node.js](#nodejs)

```sh
curl --request POST \
"http://localhost:8086/api/v2/write?org=YOUR_ORG&bucket=YOUR_BUCKET&precision=ns" \
  --header "Authorization: Token YOUR_API_TOKEN" \
  --header "Content-Type: text/plain; charset=utf-8" \
  --header "Accept: application/json" \
  --data-binary '
    airSensors,sensor_id=TLM0201 temperature=73.97038159354763,humidity=35.23103248356096,co=0.48445310567793615 1630424257000000000
    airSensors,sensor_id=TLM0202 temperature=75.30007505999716,humidity=35.651929918691714,co=0.5141876544505826 1630424257000000000
    '
```

```js
'use strict'
/** @module write
 * Writes a data point to InfluxDB using the Javascript client library with Node.js.
**/

import { InfluxDB, Point } from '@influxdata/influxdb-client'

/** Environment variables **/
const url = process.env.INFLUX_URL
const token = process.env.INFLUX_TOKEN
const org = process.env.INFLUX_ORG
const bucket = process.env.INFLUX_BUCKET

/**
 * Instantiate the InfluxDB client
 * with a configuration object.
 **/
const influxDB = new InfluxDB({ url, token })

/**
 * Create a write client from the getWriteApi method.
 * Provide your `org` and `bucket`.
 **/
const writeApi = influxDB.getWriteApi(org, bucket)

/**
 * Apply default tags to all points.
 **/
writeApi.useDefaultTags({ region: 'west' })

/**
 * Create a point and write it to the buffer.
 **/
const point1 = new Point('temperature')
  .tag('sensor_id', 'TLM01')
  .floatField('value', 24.0)
console.log(` ${point1}`)

writeApi.writePoint(point1)

/**
 * Flush pending writes and close writeApi.
 **/
writeApi.close().then(() => {
  console.log('WRITE FINISHED')
})
```

To run the example from a file, set your InfluxDB environment variables and use `node` to execute the JavaScript file.

```sh
export INFLUX_URL=http://localhost:8086 && \
export INFLUX_TOKEN=YOUR_API_TOKEN && \
export INFLUX_ORG=YOUR_ORG && \
export INFLUX_BUCKET=YOUR_BUCKET && \
node write.js
```

### Response codes

*For information about **InfluxDB API response codes**, see[InfluxDB API Write documentation](/influxdb/cloud/api/write-data/).*

#### Related

* [Troubleshoot issues writing data](/influxdb/cloud/write-data/troubleshoot/)

[client libraries](/influxdb/cloud/tags/client-libraries/)[nodejs](/influxdb/cloud/tags/nodejs/)[JavaScript](/influxdb/cloud/tags/javascript/)
