file_id. Reference it in any job body as source_url: "ndi://file/<file_id>" — upload once, then parse, categorize, and ground the same file without re-sending the bytes.
Request
The document, as a
multipart/form-data part named file. The filename you
send is captured and used for format detection. Maximum size 200 MB
(413 when exceeded).Response
Opaque handle. Use it as
ndi://file/<file_id> in any source_url.The captured filename. Jobs started from this handle inherit it, so you can
omit
file_name in job bodies.When the handle stops working (~6 days after upload). A job started with an
expired handle fails with
410 Gone — just upload the file again.Notes
- Handles are tenant-scoped: another tenant’s
file_idreturns404, never your data. - Uploads are not deduplicated and take no
idempotency_key— uploading the same file twice just yields two handles, which is harmless. Idempotency matters for jobs, not uploads. - Uploading does not start any processing and does not count against your concurrent-jobs limit (it does count toward requests-per-minute).