---
title: Execute Flux queries
description: Use the InfluxDB CLI, API, and the Chronograf Data Explorer to execute Flux queries.
url: https://docs.influxdata.com/enterprise_influxdb/v1/flux/execute-queries/
estimated_tokens: 859
publisher: InfluxData
canonical: https://docs.influxdata.com/enterprise_influxdb/v1/flux/execute-queries/
date: '2025-01-13T07:21:11-07:00'
lastmod: '2025-01-13T07:21:11-07:00'
---

There are multiple ways to execute Flux queries with InfluxDB Enterprise and Chronograf v1.8+.
This guide covers the different options:

1. [Chronograf’s Data Explorer](#chronograf-s-data-explorer)
2. [Influx CLI](#influx-cli)
3. [InfluxDB API](#influxdb-api)

>
>
> Before attempting these methods, make sure Flux is enabled by setting`flux-enabled = true` in the `[http]` section of your InfluxDB configuration file.
>
>

## Chronograf’s Data Explorer

Chronograf v1.8+ supports Flux in its Data Explorer.
Flux queries can be built, executed, and visualized from within the Chronograf user interface.

## Influx CLI

To start an interactive Flux read-eval-print-loop (REPL) with the InfluxDB Enterprise 1.10+`influx` CLI, run the `influx` command with the following flags:

* `-type=flux`
* `-path-prefix=/api/v2/query`

> [!Note]
> If [authentication is enabled](/enterprise_influxdb/v1/administration/authentication_and_authorization)on your InfluxDB instance, use the `-username` flag to provide your InfluxDB username and
> the `-password` flag to provide your password.

##### Enter an interactive Flux REPL

#### No Auth ####

```bash
influx -type=flux -path-prefix=/api/v2/query
```

```bash
influx -type=flux \
  -path-prefix=/api/v2/query \
  -username myuser \
  -password PasSw0rd
```

Any Flux query can be executed within the REPL.

### Submit a Flux query via parameter

Flux queries can also be passed to the Flux REPL as a parameter using the `influx` CLI’s `-type=flux` option and the `-execute` parameter.
The accompanying string is executed as a Flux query and results are output in your terminal.

#### No Auth ####

```bash
influx -type=flux \
  -path-prefix=/api/v2/query \
  -execute '<flux query>'
```

```bash
influx -type=flux \
  -path-prefix=/api/v2/query \
  -username myuser \
  -password PasSw0rd \
  -execute '<flux query>'
```

### Submit a Flux query via via STDIN

Flux queries an be piped into the `influx` CLI via STDIN.
Query results are otuput in your terminal.

#### No Auth ####

```bash
echo '<flux query>' | influx -type=flux -path-prefix=/api/v2/query
```

```bash
echo '<flux query>' | influx -type=flux \
  -path-prefix=/api/v2/query \
  -username myuser \
  -password PasSw0rd
```

## InfluxDB API

Flux can be used to query InfluxDB through InfluxDB’s `/api/v2/query` endpoint.
Queried data is returned in annotated CSV format.

In your request, set the following:

* `Accept` header to `application/csv`
* `Content-type` header to `application/vnd.flux`
* If [authentication is enabled](/enterprise_influxdb/v1/administration/authentication_and_authorization)on your InfluxDB instance, `Authorization` header to `Token <username>:<password>`

This allows you to POST the Flux query in plain text and receive the annotated CSV response.

Below is an example `curl` command that queries InfluxDB using Flux:

#### No Auth ####

```bash
curl -XPOST localhost:8086/api/v2/query -sS \
  -H 'Accept:application/csv' \
  -H 'Content-type:application/vnd.flux' \
  -d 'from(bucket:"telegraf")
          |> range(start:-5m)
          |> filter(fn:(r) => r._measurement == "cpu")'
```

```bash
curl -XPOST localhost:8086/api/v2/query -sS \
  -H 'Accept:application/csv' \
  -H 'Content-type:application/vnd.flux' \
  -H 'Authorization: Token <username>:<password>' \
  -d 'from(bucket:"telegraf")
          |> range(start:-5m)
          |> filter(fn:(r) => r._measurement == "cpu")'
```
