Upload file data
upload_dataRemote-safe upload for sandboxed MCP clients (Claude.ai, ChatGPT) whose egress allowlist blocks PUTs to the storage host: send the file bytes as base64 and they upload through the API itself — the same host the MCP session already uses. Returns a ready file_id for file_ids. Decode locally first: if a source image fails to decode or renders blank/transparent, the bytes are corrupt — tell the user instead of uploading. For logos/photos prefer this over asset_files on create_design/update_design when a presigned PUT is not possible. Not for files over ~20MB.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| filename | Yes | Original filename, e.g. logo.png — extension sets the content type | |
| data_base64 | Yes | Base64 of the ORIGINAL file bytes. Read the file and encode it in one step; never retype, trim, or 'fix' a base64 string by hand — a mangled encoding decodes but produces a blank/transparent image. | |
| content_type | No | Optional MIME type; derived from the filename extension when omitted |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| uri | No | ||
| status | Yes | ||
| file_id | Yes | ||
| filename | No | ||
| next_step | No | ||
| created_at | No | ||
| size_bytes | No | ||
| content_type | No |