Upload Import Part — PUT /api/v1/project-imports/uploads/{data_job_id}/parts/{part_number}
Upload Import Part
One part (raw application/octet-stream, ≤ 32 MiB) of the caller’s own open upload. Checked before the body is read: the job is this admin’s import (else the ONE 404), still uploading (409 upload_not_open), the part number in its plan (422 part_number_invalid), X-Part-Sha256 64 hex (422 part_digest_mismatch); the same part again with the same digest → 200, nothing rewritten; another digest → 409 part_conflict. Then the body is counted + hashed (413 part_too_large past 32 MiB, 422 part_digest_mismatch / upload_parts_invalid — in every case NOTHING is stored), the job row locked (FOR UPDATE), the part written as ONE object, its receipt recorded, ONE commit.
Endpoint: PUT /api/v1/project-imports/uploads/{data_job_id}/parts/{part_number}
Authentication: Send a signed-in user’s access token in Authorization: Bearer <access token>, or an API key in X-API-Key: <API key>.
- A minimum role applies. The source code names it.
- You must have access to this project data job.
Parameters
Section titled “Parameters”| Name | In | Required | Type | Default | Description |
|---|---|---|---|---|---|
data_job_id | path | yes | string (uuid) | ||
part_number | path | yes | integer | ||
X-Part-Sha256 | header | no | string or null | ||
X-API-Key | header | no | string or null | API key, as an alternative to the access token (see Authentication). |
Request body
Section titled “Request body”No request body.
Responses
Section titled “Responses”| Status | Meaning | Body |
|---|---|---|
200 | Successful Response | ProjectImportPartReceipt (application/json) |
422 | Validation Error | HTTPValidationError (application/json) |
It can also return 401 if your credential is missing or expired, 403 if your credential does not allow this request, and 404 if the item does not exist or you cannot see it. Your role, your project membership and the key’s scope decide what a credential allows. See Errors and retries.
More details
Section titled “More details”- Group: Project data
- Operation ID:
upload_import_part_api_v1_project_imports_uploads__data_job_id__parts__part_number__put - Source code:
backend/app/routers/project_data.py, line 505 - Specification: OpenAPI JSON