/v2/agents/sessions/{session_id}/workspace/transfersStart a staged (large-file) workspace transfer.
Creates an asynchronous, object-storage-backed transfer for payloads larger than the streaming path supports (> ~50 MiB). Bulk bytes never traverse harness-api: the client PUTs/GETs presigned DO Spaces URLs directly.
Set direction to upload or download.
upload: responds 201 withtransfer_id+part_size; the client then requests per-part presigned PUT URLs, uploads them to Spaces, and callscommit.download: responds 202 withtransfer_id; the client polls GET untilcompletedand then fetchesdownload_urlfrom Spaces.
Upload and cancel currently return 501 until the sandbox backend RPCs ship; download is live.
- IdempotentThe SDK sends
Idempotency-Key, so a retried request is only applied once.
A 400 is returned: Missing/invalid direction or path, or invalid JSON. A 401 is returned: Authentication failed due to invalid credentials. A 402 is returned: The team is blocked by the prepayment gate. A 403 is returned: Path resolves outside the workspace, or the session belongs to another team. A 404 is returned: The resource was not found. A 409 is returned: Session has no sandbox, or the sandbox is not ready. A 413 is returned: Declared size exceeds the maximum staged object size. A 423 is returned: This session is unavailable; contact support. A 429 is returned: The API rate limit has been exceeded. A 500 is returned: There was a server error. A 501 is returned: Staged transfer (or this direction) is not supported by the active sandbox driver. A 502 is returned: Upstream sandbox transfer coordination failed. Any other status is an error: There was an unexpected error.