upload_design
Turn owned artwork, logos, or photos into a design_uuid for building products, without regenerating the mark. Supports URL fetch, presigned upload, or inline bytes with SVG for vector logos.
Instructions
Upload artwork the merchant ALREADY OWNS and turn it into a design_uuid usable by create_product / ship_product. This is the way to build products from a client's own files — a logo, a brand mark, a cleared cover, a photograph — instead of generating something new. If a client says their mark must not be redrawn, use this; never regenerate or approximate a mark to work around a missing file.
Three ways to supply the file, pick the cheapest one available:
source_url— an https URL the server can fetch. One call, no context cost. Best when the asset is already hosted or reachable by link (the link must not require sign-in).no source at all — returns a presigned
upload_urlyou PUT the bytes to yourself, then call this tool again with the returnedimage_uuidto finish. No context cost, full resolution, and the right choice whenever you can make an HTTP request (curl, fetch, requests).image_base64— inline bytes. Works anywhere, but costs roughly 350k tokens per megabyte of file, so reserve it for small files when neither of the above is possible.
Accepts PNG, JPEG, WEBP and SVG. SVG is the BEST input for a logo or mark: it is rendered server-side at print resolution, so it stays crisp at any size. Two things must be true of the SVG first — text converted to outlines, and any linked image embedded — otherwise the upload is refused with instructions rather than silently losing that part of the artwork. For pixel art, or any hard-edge raster mark that must stay crisp, pass upscale="pixel" so a small file is enlarged without being smoothed.
[#85542c]
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | Display title for the design. Defaults to the filename stem. | |
| upscale | No | How to resample if the file is below the 512px print minimum. "pixel" = nearest-neighbour, keeps pixel art and hard-edge marks crisp. "smooth" = for photographic art. "auto" (default) detects. Pass "pixel" for a client mark that must not be approximated. | |
| filename | No | Original filename. Used for the default title. | |
| workspace | No | Workspace uuid (agency accounts). | |
| image_uuid | No | Finish a presigned upload: pass the image_uuid from a previous upload_design call after you have PUT the bytes. Also use this to resume polling if processing was still running. | |
| source_url | No | Public https URL of the artwork. The server fetches it. Must not require sign-in. | |
| content_type | No | Declared MIME type. Detected from the file when the bytes are supplied, so it is only needed for the presigned mode (defaults to image/png). Use image/svg+xml to upload vector. | |
| image_base64 | No | Base64-encoded file bytes (a data: URI is accepted). Expensive in context — prefer source_url or the presigned mode. Capped at 4MB decoded. |