Assets

Upload a local file or archive

Send raw file bytes, not multipart form data. The server packages a file or extracts a supported archive. Read max_import_bytes and upload_idempotency from GET /v1/assets first. When upload_idempotency is true, send a stable Idempotency-Key and X-Nodus-SHA256 for verified replay of the same bytes and name. An in-progress, failed or deleted keyed upload returns an actionable conflict without creating a replacement. Unkeyed uploads retain their existing behavior. After an uncertain unkeyed response, inspect the asset list before repeating the request.

post/v1/assets/upload

Request

  • Base URL
    / (relative, and the document was published on a file host, not at the API’s origin)
  • Auth
    HTTP bearer

Query parameters

namestring

Filename, including its archive extension when uploading an archive.

Headers

Idempotency-Keystring

Optional stable upload identity. Requires X-Nodus-SHA256. Replaying identical bytes and name returns the same ready asset.

X-Nodus-SHA256string

SHA-256 of the exact request bytes. Required with Idempotency-Key. Different bytes or name cannot reuse an upload key.

Request body application/octet-stream

string binary required

Response

Upload complete and asset ready

idstring
kindstring

Includes workspace_source for a generated workspace project revision. These copies use their separate included source pool.

namestring
statestring

Current asset state: importing, ready, failed, deleting or deleted.

revisionstring
sha256string
stored_bytesinteger
imported_bytesinteger
created_atstring date-time
ready_atstring date-time nullable
deleted_atstring date-time nullable
errorstring

Value-free terminal query export error. Failed assets remain observable after cleanup, with zero stored bytes once their reservation is released.

Changes

No recorded changes to this operation across all 70 revisions of this API.