Create Upload
create_uploadGet the authenticated binary upload endpoint and product/crop headers. Pass productId from list_products for every image. Upload each required image separately; retain the returned IDs in slot order. Crops and resolution checks use that product’s artwork specifications, not a universal 4x6 size. POST the image bytes separately; never put base64 or remote image URLs in MCP. For recoverable uploads, send a stable Idempotency-Key on POST and check GET /api/uploads/{key} after a lost response. Retry the same bytes and options with the same key; never retry payment as an upload recovery step. SDK: https://photoprintagent.com/sdk/photo-upload.mjs. No storage is allocated until upload. JPEG, PNG/APNG, WebP, GIF, HEIC/HEIF, TIFF, AVIF, BMP and self-contained SVG are supported. Read acceptedMimeTypes, acceptedExtensions and imageHandling for frame/page selection, transparency, and limits. Use application/octet-stream when MIME type is unavailable. Unsupported encodings must be converted before upload.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| crop | No | ||
| productId | No | ||
| guestToken | No | Private guest credential; omit when Authorization Bearer is present. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| method | Yes | ||
| artwork | No | ||
| headers | Yes | ||
| helpUrl | Yes | ||
| uploadUrl | Yes | ||
| maxFileBytes | Yes | ||
| authorization | Yes | ||
| imageHandling | Yes | ||
| maxInputPixels | Yes | ||
| acceptedMimeTypes | Yes | ||
| responseSchemaUrl | Yes | ||
| acceptedExtensions | Yes |