Documentation

InfluxDB v2 Go client library

Use InfluxDB 3 clients to query

InfluxDB 3 supports compatibility endpoints for writing data using InfluxDB v2 and v1 tools. However, the /api/v2/query API endpoint and associated tooling, such as InfluxDB v2 client libraries and the influx CLI, can’t query data stored in InfluxDB 3 Core.

InfluxDB 3 client libraries are available that integrate with your code to write and query data stored in InfluxDB 3 Core.

Compare tools you can use to interact with InfluxDB 3 Core.

Use the InfluxDB Go client library to write data to an InfluxDB 3 Core database.

This guide presumes some familiarity with Go and InfluxDB. If just getting started, see Get started with InfluxDB.

Before you begin

  1. Install Go 1.13 or later.

  2. Add the client package your to your project dependencies.

    # Add InfluxDB Go client package to your project go.mod go get github.com/influxdata/influxdb-client-go/v2
  3. Ensure that InfluxDB is running and you can connect to it. For information about what URL to use to connect to your InfluxDB 3 Core cluster, contact your InfluxData account representative.

Boilerplate for the InfluxDB Go Client Library

Use the Go library to write and query data from InfluxDB.

  1. In your Go program, import the necessary packages and specify the entry point of your executable program.

    package main  import (  "context"  "fmt"  "time"   "github.com/influxdata/influxdb-client-go/v2" )
  2. Define variables for your InfluxDB database (bucket), organization (required, but ignored), and database token.

    bucket := "DATABASE_NAME" org := "ignored" token := "DATABASE_TOKEN" // Store the URL of your InfluxDB instance url := "https://localhost:8181"
  3. Create the the InfluxDB Go client and pass in the url and token parameters.

    client := influxdb2.NewClient(url, token)
  4. Create a write client with the WriteAPIBlocking method and pass in the org and bucket parameters.

    writeAPI := client.WriteAPIBlocking(org, bucket)

Write data to InfluxDB with Go

Use the Go library to write data to InfluxDB.

  1. Create a point and write it to InfluxDB using the WritePoint method of the API writer struct.

  2. Close the client to flush all pending writes and finish.

    p := influxdb2.NewPoint("stat",  map[string]string{"unit": "temperature"},  map[string]interface{}{"avg": 24.5, "max": 45},  time.Now()) writeAPI.WritePoint(context.Background(), p) client.Close()

Complete example write script

package main  import (  "context"  "fmt"  "time"   "github.com/influxdata/influxdb-client-go/v2" )  func main() {  bucket := "DATABASE_NAME"  org := "ignored"  token := "DATABASE_TOKEN"  // Store the URL of your InfluxDB instance  url := "https://localhost:8181"  // Create new client with default option for server url authenticate by token  client := influxdb2.NewClient(url, token)  // User blocking write client for writes to desired bucket  writeAPI := client.WriteAPIBlocking(org, bucket)  // Create point using full params constructor  p := influxdb2.NewPoint("stat",  map[string]string{"unit": "temperature"},  map[string]interface{}{"avg": 24.5, "max": 45},  time.Now())  // Write point immediately  writeAPI.WritePoint(context.Background(), p)  // Ensures background processes finishes  client.Close() }

Was this page helpful?

Thank you for your feedback!


New in InfluxDB 3.5

Key enhancements in InfluxDB 3.5 and the InfluxDB 3 Explorer 1.3.

See the Blog Post

InfluxDB 3.5 is now available for both Core and Enterprise, introducing custom plugin repository support, enhanced operational visibility with queryable CLI parameters and manual node management, stronger security controls, and general performance improvements.

InfluxDB 3 Explorer 1.3 brings powerful new capabilities including Dashboards (beta) for saving and organizing your favorite queries, and cache querying for instant access to Last Value and Distinct Value caches—making Explorer a more comprehensive workspace for time series monitoring and analysis.

For more information, check out:

InfluxDB Docker latest tag changing to InfluxDB 3 Core

On November 3, 2025, the latest tag for InfluxDB Docker images will point to InfluxDB 3 Core. To avoid unexpected upgrades, use specific version tags in your Docker deployments.

If using Docker to install and run InfluxDB, the latest tag will point to InfluxDB 3 Core. To avoid unexpected upgrades, use specific version tags in your Docker deployments. For example, if using Docker to run InfluxDB v2, replace the latest version tag with a specific version tag in your Docker pull command–for example:

docker pull influxdb:2