---
title: Python client library
description: Use the InfluxDB Python client library to interact with InfluxDB.
url: https://docs.influxdata.com/influxdb3/cloud-serverless/reference/client-libraries/v2/python/
estimated_tokens: 1087
publisher: InfluxData
canonical: https://docs.influxdata.com/influxdb3/cloud-serverless/reference/client-libraries/v2/python/
date: '2025-04-09T17:03:44-05:00'
lastmod: '2025-04-09T17:03:44-05:00'
---

### Use InfluxDB 3 clients

The `/api/v2/query` API endpoint and associated tooling, such as InfluxDB v2 client libraries and the `influx` CLI, **can’t** query an InfluxDB Cloud Serverless cluster.

[InfluxDB 3 client libraries](/influxdb3/cloud-serverless/client-libraries/v3/) are available that integrate with your code to write and query data stored in InfluxDB Cloud Serverless.

InfluxDB 3 supports many different tools for [**writing**](/influxdb3/cloud-serverless/write-data/) and [**querying**](/influxdb3/cloud-serverless/query-data/) data.[**Compare tools you can use**](/influxdb3/cloud-serverless/get-started/#tools-to-use) to interact with InfluxDB Cloud Serverless.

Use the [InfluxDB Python client library](https://github.com/influxdata/influxdb-client-python) to integrate InfluxDB into Python scripts and applications.

This guide presumes some familiarity with Python and InfluxDB.
If just getting started, see [Get started with InfluxDB](/influxdb3/cloud-serverless/get-started/).

## Before you begin

You’ll need the following prerequisites:

1. Install the InfluxDB Python library:

   ```
   pip install influxdb-client
   ```

2. InfluxDB Cloud Serverless region URL using the HTTPS protocol–for example: https://cloud2.influxdata.com.

3. InfluxDB [organization](/influxdb3/cloud-serverless/admin/organizations/) ID.

4. Name of the [bucket](/influxdb3/cloud-serverless/admin/buckets/) to write to.

5. InfluxDB [API token](/influxdb3/cloud-serverless/reference/glossary/#token) with permission to write to the bucket.*For security reasons, we recommend setting an environment variable to store your token and avoid exposing the raw token value in your script.*

## Write data to InfluxDB with Python

Follow the steps to write [line protocol](/influxdb3/cloud-serverless/reference/syntax/line-protocol/) data to an InfluxDB Cloud Serverless bucket.

1. In your editor, create a file for your Python program–for example: `write.py`.

2. In the file, import the InfluxDB client library.

   ```
   import influxdb_client
   from influxdb_client.client.write_api import SYNCHRONOUS
   import os
   ```

3. Define variables for your [bucket name](/influxdb3/cloud-serverless/admin/buckets/), [organization](/influxdb3/cloud-serverless/admin/organizations/), and [token](/influxdb3/cloud-serverless/reference/glossary/#token).

   ```
   bucket = "BUCKET_NAME"
   org = "INFLUX_ORG"
   # INFLUX_TOKEN is an environment variable you created for your API WRITE token
   token = os.getenv('INFLUX_TOKEN')
   url="https://cloud2.influxdata.com"
   ```

4. To instantiate the client, call the `influxdb_client.InfluxDBClient()` method with the following keyword arguments: `url`, `org`, and `token`.

   ```
   client = influxdb_client.InfluxDBClient(
      url=url,
      token=token,
      org=org
   )
   ```

   The `InfluxDBClient` object has a `write_api` method used for configuration.

5. Instantiate a **write client** by calling the `client.write_api()` method with write configuration options.

   ```
   write_api = client.write_api(write_options=SYNCHRONOUS)
   ```

6. Create a [point](/influxdb3/cloud-serverless/reference/glossary/#point) object and write it to InfluxDB using the `write` method of the API writer object. The write method requires three parameters: `bucket`, `org`, and `record`.

   ```
   p = influxdb_client.Point("my_measurement").tag("location", "Prague").field("temperature", 25.3)
   write_api.write(bucket=bucket, org=org, record=p)
   ```

### Complete example write script

```python
import influxdb_client
from influxdb_client.client.write_api import SYNCHRONOUS
import os

bucket = "BUCKET_NAME"
org = "INFLUX_ORG"
# INFLUX_TOKEN is an environment variable you created for your API WRITE token
token = os.getenv('INFLUX_TOKEN')
url="https://cloud2.influxdata.com"

client = influxdb_client.InfluxDBClient(
    url=url,
    token=token,
    org=org
)

# Write script
write_api = client.write_api(write_options=SYNCHRONOUS)

p = influxdb_client.Point("my_measurement").tag("location", "Prague").field("temperature", 25.3)
write_api.write(bucket=bucket, org=org, record=p)
```

## Query data from InfluxDB with Python

To query your InfluxDB Cloud Serverless bucket, use the [Python client library for InfluxDB 3](/influxdb3/cloud-serverless/reference/client-libraries/v3/python/).
