Uploads
Getting bytes in. Every route here hands back a signed URL to PUT to; the file is not real until it is finalized.
Start a cloud import
Starts the import and returns an id to poll. Files transfer in the background.
Requires any one of media:upload, document:upload, knowledge-base:upload, thread:upload, design:edit, prompt:edit or presentation:edit.
Headers
X-Tenant-IdThe workspace this request acts in. Every row the API returns is isolated to it at the database layer by row-level security.
Start a cloud import › Request Body
providerStart a cloud import › Responses
Success
Get a cloud import
Reports how far a cloud import has got and which files have landed. Imports run in the background, so this is polled rather than waited on.
Requires any one of media:upload, document:upload, knowledge-base:upload, thread:upload, design:edit, prompt:edit or presentation:edit.
path Parameters
idHeaders
X-Tenant-IdThe workspace this request acts in. Every row the API returns is isolated to it at the database layer by row-level security.
Get a cloud import › Responses
Success
Finalize an upload
Step three. Confirms the bytes arrived, which is what admits the file to the library and starts processing — thumbnails, analysis, indexing. A file that is never finalized never appears.
Requires any one of media:edit, document:edit, knowledge-base:write, thread:edit, design:edit, prompt:edit, presentation:edit or task:form:edit.
path Parameters
idHeaders
X-Tenant-IdThe workspace this request acts in. Every row the API returns is isolated to it at the database layer by row-level security.
Finalize an upload › Responses
Success
What the file belongs to. One key naming the owning object, or library for a library it sits in rather than an object it belongs to. Keys the platform stamps (presentation jobs, form submissions, workflow runs) are returned but cannot be sent.
file_idfile_namefile_typefile_sizefile_createdfile_updatedfile_metadatafile_provider_idfile_bucketfile_folderfile_hashfile_statusfile_added_byfile_replicasfile_summaryfile_prefGet a fresh upload URL
Signed URLs expire. Use this to resume an upload whose URL has gone stale.
Requires any one of media:edit, document:edit, knowledge-base:write, thread:edit, design:edit, prompt:edit, presentation:edit or task:form:edit.
path Parameters
idHeaders
X-Tenant-IdThe workspace this request acts in. Every row the API returns is isolated to it at the database layer by row-level security.
Get a fresh upload URL › Responses
Success
A fresh signed URL to PUT the bytes to.
Get upload URLs
Step one of an upload, and it takes a batch. Returns a signed URL per file; PUT the bytes to it, then finalize each one. The bytes go straight to storage and never through the API.
Requires any one of media:upload, document:upload, knowledge-base:upload, thread:upload, design:edit, prompt:edit or presentation:edit.
Headers
X-Tenant-IdThe workspace this request acts in. Every row the API returns is isolated to it at the database layer by row-level security.
Get upload URLs › Responses
Success
file_idfile_namefile_typefile_sizefile_createdfile_statusfile_repofile_metadatafile_bucketfile_folderfile_provider_iduploadUrlPUT the bytes here, then finalize the file. Absent on a rejected file.
rejection_reasonWhy this file was not accepted. Absent on an accepted one.
