Bulk import

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
curl --request GET \
  "https://localhost:8181/api/v3/enterprise/import" \
  --header "Authorization: Bearer INFLUX_TOKEN"

Responses

200 Success. Returns the list of bulk import statuses.
401 Unauthorized access.
data object
error string
403 Access denied.
data object
error string
500 Internal 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 body required

Content-Type: application/json
Example request Ask AI about this
curl --request POST \
  "https://localhost:8181/api/v3/enterprise/import" \
  --header "Authorization: Bearer INFLUX_TOKEN" \
  --header "Content-Type: multipart/form-data"

Responses

200 Success. 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 required integer <int64>
When the uploaded file was ready for import, in nanoseconds since the Unix epoch.
db_id required integer
The ID of the database resolved from the supplied name.
filename required string
The filename of the uploaded Parquet data file.
iox_parquet required boolean
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 required integer <int64>
The maximum timestamp in the file (nanoseconds), from column statistics.
min_timestamp_ns required integer <int64>
The minimum timestamp in the file (nanoseconds), from column statistics.
row_count required integer <int64>
The row count from Parquet metadata.
size_bytes required integer <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 required string
table_id required integer
The ID of the table resolved from the supplied name.
upload_uuid required string
The UUID of the upload.
400 Bad 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
401 Unauthorized access.
data object
error string
403 Access denied.
data object
error string
404 Not found. The target database or table does not exist.
data object
error string
500 Internal server error. Object store, status write, or catalog failure.
data object
error string

Was this page helpful?

Thank you for your feedback!