upload_session_part
curl --request PUT \
--url https://ndi-api.nace.ai/v1/workspaces/{workspace_id}/upload-sessions/{session_id}/parts/{part_number} \
--header 'X-Upload-Token: <api-key>'{
"part_number": 123,
"size_bytes": 123
}{
"error": {
"code": "invalid_request",
"detail": null,
"message": "Request body has extra fields that this operation does not accept.",
"request_id": "req-01j9k2n3p4q5r6s7t8v9",
"retryable": false
}
}{
"error": {
"code": "invalid_request",
"detail": null,
"message": "Request body has extra fields that this operation does not accept.",
"request_id": "req-01j9k2n3p4q5r6s7t8v9",
"retryable": false
}
}upload_session_part
Upload one part of a chunked upload. Cost class: fast.
Exempt from the tenant’s per-minute rate limit (unlike every other
upload-session route): a multi-GB file at chunk_size is already
dozens of requests, and each part is bounded and byte-for-byte
revalidated at complete anyway, so RPM protection would only add
friction here without protecting anything.
Idempotent: re-PUTing the same part_number overwrites it, so a
retried part after a dropped connection is always safe.
PUT
/
v1
/
workspaces
/
{workspace_id}
/
upload-sessions
/
{session_id}
/
parts
/
{part_number}
upload_session_part
curl --request PUT \
--url https://ndi-api.nace.ai/v1/workspaces/{workspace_id}/upload-sessions/{session_id}/parts/{part_number} \
--header 'X-Upload-Token: <api-key>'{
"part_number": 123,
"size_bytes": 123
}{
"error": {
"code": "invalid_request",
"detail": null,
"message": "Request body has extra fields that this operation does not accept.",
"request_id": "req-01j9k2n3p4q5r6s7t8v9",
"retryable": false
}
}{
"error": {
"code": "invalid_request",
"detail": null,
"message": "Request body has extra fields that this operation does not accept.",
"request_id": "req-01j9k2n3p4q5r6s7t8v9",
"retryable": false
}
}Authorizations
Session token from POST /v1/workspaces/{workspace_id}/upload-sessions.
Path Parameters
0-based part index.
Required range:
x >= 0Workspace identifier.
Upload session identifier.