Upload Management
upload_manageFastio uploads (write): stream-upload (one call, auto-finalizes, no filesize), chunked sessions (create-session, chunk, finalize), web URL import, batch (many small files), cancellation. For files and binary the default byte source is the POST /blob sidecar: raw bytes over plain HTTP outside MCP (up to 100 MB, no base64), returning a blob_id for stream-upload/chunk/batch. The chunked path is for files over 100 MB. content is UTF-8 text composed in the call; content_base64 inflates ~33% and fails above a few MB. Uploads create files and consume storage credits; a same-name upload overwrites in place as a new version. Destructive: cancel, cancel-all, chunk-delete, web-cancel. Reads are on upload. action='describe' gives the full action/param reference.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | Source URL to import from. | |
| hash | No | Hash of the bytes this call sends (a chunk, or the whole stream body). Pair with hash_algo. If both are omitted, the CRC-32C of the bytes is sent. | |
| wait | No | Long-poll wait in SECONDS, 1-590 (NOT milliseconds; 0/omitted returns immediately). The server holds the connection until the upload reaches a terminal status. Sending a millisecond value here would hold for minutes and blow past the tool-call timeout. | |
| files | No | Batch manifest (1..200 entries). Each: filename + one of blob_id/content/content_base64. | |
| action | Yes | Operation. Use 'describe' for full action reference. | |
| stream | No | Stream mode — size optional, single POST, auto-finalizes. | |
| blob_id | No | Blob ID from POST /blob — the **default source** for all file & binary uploads (no base64, no MCP size limit, up to 100 MB). Single-use. | |
| content | No | **Text only** — stored verbatim UTF-8. This is for writing content you are composing **on the fly** directly through the MCP (a note, a generated report, a snippet you just produced) — NOT a fallback for uploading an existing file. Base64 goes in content_base64. One of content/content_base64/blob_id. | |
| creator | No | Client identifier echoed back (alphanumeric + hyphens). | |
| blob_ref | No | Alias for blob_id (deprecated). Accepted on chunk/stream/stream-upload only. | |
| filename | No | File name. Optional when target_node_id is set (auto-resolved); pass to rename-on-replace. | |
| filesize | No | Total file size in bytes. | |
| max_size | No | Stream-body byte ceiling — aborts mid-transfer if exceeded. An overestimate is safe; omitted, the organization's file-size limit applies. Stream sessions only. | |
| password | No | File Share link password (profile_type=fileshare only). Sent only as the x-ve-password header on each call, never in a URL/log; needed when the target share is password-protected. | |
| share_id | No | Alias for profile_id when the profile is a share — implies profile_type=share (so profile_type may be omitted). | |
| folder_id | No | Target folder OpaqueId or "root". Omit for instance root. | |
| hash_algo | No | md5, sha1, sha256, sha384 or crc32c (8 lowercase hex). Pair with hash. | |
| upload_id | No | Upload session ID or web upload job ID. | |
| chunk_size | No | Chunk size in bytes (server picks default). | |
| context_id | No | Alias for profile_id (either name works) | |
| profile_id | No | Polymorphic context ID (pair with profile_type=workspace|share|fileshare). Typed aliases let you omit profile_type: workspace_id (⇒ workspace) / share_id (⇒ share); also context_id / instance_id. Target workspace/share ID, or the File Share id for a fileshare write-back. fileshare has NO typed alias — pass profile_type=fileshare explicitly. | |
| file_crc32c | No | chunk only: CRC-32C of the WHOLE file (8 lowercase hex), checked once all bytes arrive; combine each chunk's returned `crc32c` in order. Send on the first send of the chunk whose CRC completes last (sequential: the last chunk) and its retries; never move it. A different value: 10779; after every byte arrived: 10507. | |
| instance_id | No | Target workspace/share ID — also the profile_id alias for upload flows; profile_id is canonical. | |
| chunk_number | No | 1-indexed chunk number. | |
| context_type | No | Alias for profile_type (either name works). | |
| include_hash | No | Compute a CRC-32C client-side for entries without a hash (default true when omitted). | |
| profile_type | No | Target type: workspace | share | fileshare (alias: context_type). Use `fileshare` ONLY for content write-back to a File Share's bound file (requires target_node_id = the bound node id, fileshare.file.id in the File Share's details; create-style new-file flows are rejected for fileshare). | |
| workspace_id | No | Alias for profile_id when the profile is a workspace — implies profile_type=workspace (so profile_type may be omitted). | |
| if_version_id | No | Compare-and-swap base for an overwrite. Enforced on EVERY update target — workspace, share and File Share. Pass the version id your edit was based on; record it on create-session/stream-upload (finalize does NOT read it). On a stale base the session ends assembly_failed with CONFLICT_VERSION_MISMATCH:<id> — rebase and retry. Omitting it is last-write-wins. See action=describe. | |
| content_base64 | No | Base64-encoded **binary**, server-decoded. ⚠️ **LAST RESORT — expect FAILURE above a few MB** (~33% inflation + MCP transport cap). An unreachable POST /blob is almost always a CLIENT-SIDE FIREWALL/PROXY restriction, not a server limit; allowing /blob there lifts it. `blob_id` carries real files. | |
| parent_node_id | No | Parent folder OpaqueId or "root". On create-session, stream-upload, and web-import, folder_id is accepted as an alias (either name works). | |
| target_node_id | No | Overwrite this specific node (preserves node_id; new version). When set, parent_node_id is ignored and filename is optional (auto-resolved). Must be a file node. REQUIRED for profile_type=fileshare write-back — set it to the File Share's bound node id (fileshare.file.id in the File Share's details). | |
| describe_action | No | With action='describe': return one action's params and notes instead of the action index. |