Skip to main content
GET
JavaScript
Read one upload. Its two jobs: tell you whether the bytes have landed, and hand back the signed URL if you need to retry.

Poll for COMPLETE before referencing

If your create and your reference are decoupled, this is the endpoint you poll. A resource rejects an upload until its bytes are in, so wait for UPLOAD_STATUS_COMPLETE:

The signed URL is not returned here. Capture it at create.

info.uploadUrl is a field on the read, but its value is empty. The signed URL, and uploadUrlExpiresAt, come back only on the create response. Measured: create returns a 1,018-character URL; a later GET returns the same field blank. So there is no re-fetch. Hold the URL from create until the PUT succeeds. Lose it, or let it expire, and your only move is a new upload, not a GET. This endpoint tells you the status of an upload, never how to write to it.

There is no download

The response carries spec (filename, contentType, sizeBytes), info.status, info.createdBy, and the empty info.uploadUrl. It does not carry a download URL. An upload is a way to get bytes into Cadenya and reference them by upload_id; it is not a file store you read back out. The resource that consumed the upload is what serves the content (a memory entry through get_memory, a tool result through its own read path). A missing or wrong ID is a 404.

Create an upload

The three-step flow, and the status lifecycle in full.

Create a memory entry

Where a completed upload_id gets referenced.

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Path Parameters

workspaceId
string
required

Workspace ID.

Example:

"workspace_01HXKD2E5NQM3T9AYWCF133E3Q"

id
string
required
Example:

"upload_01HXKD2E5NQM3T9AYWCFZ05DNK"

Response

OK

A handle representing a single file upload flow. Clients call CreateUpload to receive a short-lived presigned URL, PUT the file directly to object storage, then reference the upload by id when creating or updating resources that accept binary content.

Uploads are one-shot: once consumed by a creating or updating resource the upload transitions to UPLOAD_STATUS_CONSUMED and cannot be reused. Unused uploads expire and are garbage-collected.

metadata
object
required

Standard metadata for persistent, named resources (e.g., agents, tools, prompts)

spec
object
required
info
object
required