Request file upload
request_file_uploadMint a presigned upload URL for a photo/logo/PDF. Preferred for anything larger than a small icon — do not base64 the file into asset_files and do not compress or generate a replacement. Pass content_sha256 (hex) when known to reuse an existing upload for this user. After this returns, if already_uploaded is true skip PUT and use file_id; otherwise PUT the ORIGINAL file bytes to upload_url (same Content-Type), then check_file until status is ready, then pass file_ids to create_design or update_design.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"filename": "<filename>",
"content_type": "<content_type>",
"size_bytes": "<size_bytes>"
},
"name": "request_file_upload"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| filename | Yes | Original filename, e.g. headshot.jpg | |
| size_bytes | Yes | Exact byte size of the file that will be PUT | |
| content_type | Yes | MIME type matching the file, e.g. image/jpeg, image/png, application/pdf | |
| content_sha256 | No | Optional hex SHA-256 of the file bytes. When the same user already uploaded identical content, returns that file_id with already_uploaded=true (skip PUT). |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| uri | No | ||
| file_id | Yes | ||
| next_step | No | ||
| expires_at | No | ||
| upload_url | Yes | ||
| already_uploaded | No |