content/influxdb3/cloud-serverless/query-data/execute-queries/v1-http.md
Use the InfluxDB v1 HTTP API /query endpoint and InfluxQL to query data stored in {{< product-name >}} and return results in JSON or CSV format.
The /query endpoint provides compatibility for InfluxDB 1.x workloads that you bring to InfluxDB 3.
Before you can use the v1 query API, databases and retention policies must be mapped to buckets.
[!Note]
Flight queries don't use DBRP mappings
When using Flight RPC or Flight SQL to query InfluxDB, specify the bucket name. Flight queries don't use DBRP mappings. See how to get started querying with Flight and SQL or InfluxQL.
To query using HTTP and InfluxQL, send a GET or POST request to the v1 /query endpoint.
{{< api-endpoint endpoint="https://{{< influxdb/host >}}/query" method="get" api-ref="/influxdb3/cloud-serverless/api/#operation/GetLegacyQuery" >}}
For {{% product-name %}} v1 API /query requests, set parameters as listed in the following table:
| Parameter | Allowed in | Ignored | Value |
|---|---|---|---|
chunked | Query string | Honored | Returns points in streamed batches instead of in a single response. If set to true, InfluxDB chunks responses by series or by every 10,000 points, whichever occurs first. |
chunked_size | Query string | Honored | Requires chunked to be set to true. If set to a specific value, InfluxDB chunks responses by series or by this number of points. |
db | Query string | Honored | Database name mapped to a bucket |
epoch | Query string | Honored | Timestamp precision |
pretty | Query string | Ignored | N/A |
rp | Query string | Honored | Retention policy mapped to a bucket |
q | Query string | Honored | InfluxQL |
Authorization header or u and p | Token |
[!Note] When bringing v1 API workloads to {{% product-name %}}, you'll need to adjust request parameters in your client configuration or code.
Use one of the following values for timestamp precision (epoch):
ns: nanosecondsus: microsecondsms: millisecondss: secondsm: minutesh: hoursTo authorize a query request, include a token that has read permission for the bucket.
Use Token authentication or v1-compatible username and password authentication to include a token in the request.
By default, the /query endpoint returns results in JSON format.
To return results in CSV format, include the Accept header
with the application/csv or text/csv MIME type--for example:
{{% code-placeholders "DATABASE_(NAME|TOKEN)" %}}
curl --get https://{{< influxdb/host >}}/query \
--header "Authorization: Token DATABASE_TOKEN" \
--header "Accept: application/csv" \
--data-urlencode "db=DATABASE_NAME" \
--data-urlencode "q=SELECT * FROM home"
{{% /code-placeholders %}}
To test InfluxDB v1 API queries interactively from the command line, use common HTTP clients such as cURL and Postman.
{{< code-tabs-wrapper >}} {{% code-tabs %}} Token Auth Basic Auth Query String Auth {{% /code-tabs %}} {{% code-tab-content %}}
{{% code-placeholders "DATABASE_NAME|API_TOKEN" %}}
curl https://{{< influxdb/host >}}/query \
--header "Authorization: Token API_TOKEN" \
--data-urlencode "db=DATABASE_NAME" \
--data-urlencode "q=SELECT * FROM home"
{{% /code-placeholders %}}
Replace the following:
DATABASE_NAME{{% /code-placeholder-key %}}:
the database name mapped to the bucketAPI_TOKEN{{% /code-placeholder-key %}}:
an API token with read access to the specified database.{{% /code-tab-content %}} {{% code-tab-content %}} {{% code-placeholders "DATABASE_(NAME|TOKEN)" %}}
curl --get https://{{< influxdb/host >}}/query \
-user "":"API_TOKEN" \
--data-urlencode "db=DATABASE_NAME" \
--data-urlencode "q=SELECT * FROM home"
{{% /code-placeholders %}} {{% /code-tab-content %}}
{{% code-tab-content %}} {{% code-placeholders "DATABASE_(NAME|TOKEN)" %}}
curl --get https://{{< influxdb/host >}}/query \
--data-urlencode "u=ignored" \
--data-urlencode "p=DATABASE_TOKEN" \
--data-urlencode "db=DATABASE_NAME" \
--data-urlencode "q=SELECT * FROM home"
{{% /code-placeholders %}} {{% /code-tab-content %}}
{{< /code-tabs-wrapper >}}
Troubleshoot problems and errors encountered when using the HTTP API to query {{% product-name %}}.
If a DBRP doesn't exist for the db=DATABASE_NAME and rp=RETENTION_POLICY_NAME combination in the query request, the response body contains an error message, for example "database not found:...".
HTTP API /query requests are subject to usage quotas and limits.