Reserve a file upload
Reserve one file upload for a chat turn with this agent and return a short-lived presigned PUT into the deployment’s object store. The browser hashes the file first (sha256, base64) and must send exactly the returned headers and the declared number of bytes; it then names uploadId in the turn’s files. The agent receives a download link, never the bytes through the control plane. Uploaded objects expire with the store’s lifecycle rule. 409 WORKSPACE_TRANSFER_UNAVAILABLE when the deployment has no transfer bucket or it cannot take one right now, 409 DAEMON_FEATURE_MISSING when the agent’s daemon cannot fetch uploads yet, 400 WORKSPACE_TOO_LARGE over the transfer cap.
Authorization
bearerAuth In: header
Path Parameters
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/v1/orgs/string/agents/string/uploads" \ -H "Content-Type: application/json" \ -d '{ "name": "string", "mimeType": "string", "size": 1, "sha256": "string" }'{ "uploadId": "string", "url": "string", "headers": { "property1": "string", "property2": "string" }, "expiresAt": "string"}