Skip to main content
POST /v1/uploads stages a file for a granular operation. It does not put the file in a workspace. Use each handle for a single job: bytes are deleted after that job finishes. For a durable corpus, use workspace uploads instead.

Inputs

Default TTL is 24 hours; the cap is 7 days.

Result

The SDK create_upload / createUpload return value is itself a valid source for document operations.

Errors

  • file_too_large (413) — over the upload size cap
  • unsupported_file_type (422) — rejected during upload when no granular operation supports the format, when a conclusive byte signature conflicts with the filename extension, or when the selected operation does not support an otherwise stageable format
  • upload_expired (409) — handle expired
Single-shot and staged upload rejection is synchronous and non-retryable. It creates no handle, and operation-specific rejection creates no job. Resumable uploads report the error on the completion job after parts are joined, without creating a workspace file or ingestion job. NDI inspects a bounded prefix of the uploaded bytes. It does not trust the multipart Content-Type, and it does not read the full file before streaming it. When inspection is inconclusive, formats such as CSV, JSON, and legacy Office files fall back to their filename extension.

Next