---
title: Bulk import
description: Upload Parquet files for bulk import into existing tables and list the status of bulk import jobs. Bulk import endpoints require the upgraded storage engine, enabled with the --use-pacha-tree flag, and a compactor node that runs the bulk import scheduler to complete the import. All endpoints require an admin (operator) token.
url: https://docs.influxdata.com/influxdb3/enterprise/api/bulk-import/
estimated_tokens: 1016
product: InfluxDB 3 Enterprise
version: enterprise
publisher: InfluxData
canonical: https://docs.influxdata.com/influxdb3/enterprise/api/bulk-import/
---

[Download InfluxDB 3 Enterprise API Spec](/openapi/influxdb3-enterprise-openapi.yml)

Upload Parquet files for bulk import into existing tables and list the status of bulk import jobs.

Bulk import endpoints require the upgraded storage engine, enabled with the `--use-pacha-tree` flag, and a compactor node that runs the bulk import scheduler to complete the import. All endpoints require an admin (operator) token.

GET`/api/v3/enterprise/import`

### List bulk import statuses

Lists the status of all uploaded bulk import jobs.

Requires an admin (operator) token. Requires the upgraded storage engine (enabled with the `--use-pacha-tree` flag).

This endpoint is only available in InfluxDB 3 Enterprise.

Example request[Ask AI about this](#)

```sh
curl --request GET \
  "https://localhost:8181/api/v3/enterprise/import" \
  --header "Authorization: Bearer INFLUX_TOKEN"
```

#### Responses

200Success. Returns the list of bulk import statuses.

401Unauthorized access.

`data`object

`error`string

403Access denied.

`data`object

`error`string

500Internal server error. Object store or read failure.

`data`object

`error`string

POST`/api/v3/enterprise/import`

### Upload a Parquet file for bulk import

Uploads a Parquet file, and optional column metadata, for bulk import into an existing table. The compactor node asynchronously picks up and imports the file. Returns the staged import job info synchronously after the upload is staged.

Requires an admin (operator) token. Requires the upgraded storage engine (enabled with the `--use-pacha-tree` flag); the compactor node runs the bulk import scheduler that completes the import.

This endpoint is only available in InfluxDB 3 Enterprise.

#### Request bodyrequired

Content-Type:`application/json`

Example request[Ask AI about this](#)

```sh
curl --request POST \
  "https://localhost:8181/api/v3/enterprise/import" \
  --header "Authorization: Bearer INFLUX_TOKEN" \
  --header "Content-Type: multipart/form-data"
```

#### Responses

200Success. The upload has been staged for import.

`column_metadata`string

`completed_at`integer \<int64\>

When the import completed, in nanoseconds since the Unix epoch.

`created_at`requiredinteger \<int64\>

When the uploaded file was ready for import, in nanoseconds since the Unix epoch.

`db_id`requiredinteger

The ID of the database resolved from the supplied name.

`filename`requiredstring

The filename of the uploaded Parquet data file.

`iox_parquet`requiredboolean

Whether the file was written by IOx (richer embedded metadata).

`last_message`string

The last error message if the job has errored.

`last_updated_at`integer \<int64\>

When this info last changed, in nanoseconds since the Unix epoch.

`max_timestamp_ns`requiredinteger \<int64\>

The maximum timestamp in the file (nanoseconds), from column statistics.

`min_timestamp_ns`requiredinteger \<int64\>

The minimum timestamp in the file (nanoseconds), from column statistics.

`row_count`requiredinteger \<int64\>

The row count from Parquet metadata.

`size_bytes`requiredinteger \<int64\>

The total size of the uploaded Parquet file in bytes.

`started_at`integer \<int64\>

When the import began, in nanoseconds since the Unix epoch.

`status`requiredstring

`table_id`requiredinteger

The ID of the table resolved from the supplied name.

`upload_uuid`requiredstring

The UUID of the upload.

400Bad request. Possible reasons: missing multipart boundary; missing `file_bytes`, `database`, or `table`; unparseable multipart; invalid or empty Parquet; malformed `column_metadata`; column type or mapping mismatch; or a missing time column.

`data`object

`error`string

401Unauthorized access.

`data`object

`error`string

403Access denied.

`data`object

`error`string

404Not found. The target database or table does not exist.

`data`object

`error`string

500Internal server error. Object store, status write, or catalog failure.

`data`object

`error`string

#### Related

* [InfluxDB 3 API client libraries](/influxdb3/enterprise/reference/client-libraries/v3/)
