Overview
Workspace files are the root uploads in a personal workspace — the same files the CREAO web Files panel shows for that workspace. They are not thread artifacts, agent skill files, personal drive items, or organization shared files. Typical journey:POST /v1/workspacesto create a personal workspacePOST /v1/workspaces/{workspace_id}/filesto upload a CSV, PDF, or imagePOST /v1/runswith the sameworkspace_idand anagent_id- The agent can list and read those files during the run
WORKSPACE_NOT_FOUND.
File operations do not consume credits. Uploading a file with the same display name again creates a new file; it does not overwrite.
Agent skill files stay on
/v1/agents/{agent_id}/files. That API is list, download, and delete only — it does not upload.Upload a file
Sendmultipart/form-data with a single file field.
201. id is the stable file_id for later get or delete calls.
Limits match the web Files panel: 10 MB by default, 100 MB for Volume accounts. Accepted types follow the same allowlist as web uploads (common documents, images, spreadsheets, archives, and code files). Oversized files return 413 FILE_TOO_LARGE. Rejected types return 400 UNSUPPORTED_FILE_TYPE.
List files
The list includes only workspace-root uploads. Thread products created during chats or runs are not returned.
Download a file
download_url is a presigned URL that expires in 1 hour.
Delete a file
Use files in a run
Pass the sameworkspace_id on POST /v1/runs or POST /v1/realtime/runs. The agent then sees the uploaded files as workspace uploads.
- New conversation — CREAO stores
workspace_idon the conversation and returns it on the run. - Existing conversation, omit
workspace_id— the run inherits the conversation’s bound workspace. - Existing conversation, first bind — if the conversation has no workspace yet, the provided
workspace_idis written. - Mismatch — if the conversation is already bound to a different workspace, the request returns
409 WORKSPACE_MISMATCH.
GET /v1/runs/{run_id} includes workspace_id when the conversation is bound. Agent create and edit runs do not accept workspace_id.
Errors
See also the OpenAPI operations under Workspace Files.