Skip to main content
A photo mockup carries two kinds of render target, and every render names exactly one of them per artwork.
  • A print area is a bounded zone drawn on a product, a chest panel or a poster face. It is four corner points, and it is addressed by print_area_id.
  • A surface is a whole printable product in the photograph. It is addressed by surface_uuid, and it is how you print across the entire item.
Drawing a print area on a product does not take its surface away. The same t-shirt can hold a logo zone and still accept an all over print, which is why a mockup usually returns both lists.
The areas prepared when a mockup is created are ready to render as they are. Reach for the write endpoint only when you want your own placement.

What a mockup returns

Both lists come back on the create response and on Retrieve a single photo mockup. A quad has to be convex and sit inside the photograph. sort_order follows the photograph rather than your array: areas are ordered row by row from the top, and left to right inside each row, so index zero is the leftmost area of the top row. Read the order off the response instead of assuming it.

Set your own areas

Two calls write a print_areas array, and the choice between them is timing. Each entry carries its four points and an optional name. Send the array with Create a mockup from a product photo when you already know where artwork belongs. SudoMock uses those areas exactly and skips detection, which keeps a bulk import deterministic. Send it to Replace the print areas of a photo mockup when a prepared mockup needs moving. That call replaces the whole list, so include every area you mean to keep. It answers with a print_areas list rather than quads, and each saved area carries the print_area_id you render against alongside its points, name and sort_order. An empty array removes every bounded zone. The product surface stays, so the mockup still renders as a whole item. A mockup holds at most eight print areas, and a single render names at most eight targets. Split a product that needs more into a second mockup of the same photograph. Areas can be written only once the mockup reports status: "ready". A write sent earlier returns 409 with MOCKUP_NOT_SETTABLE; wait for the create job to finish and send it again. Points are validated against the source image, so a quad falling outside source_width or source_height is rejected with 400 rather than clamped, at setup instead of in a render. An area whose centre falls outside every product in the photograph is rejected with 422. These statuses are listed in Errors.

Review placement by eye

Pick the photo mockup in My mockups and the mockup editor opens the prepared result. Choose Edit areas to drag the corners, then Done to save the areas the endpoint writes. Its Code tab prints a request carrying the real mockup_id and target id. A PSD mockup marks placement differently. A smart object can carry print_area_presets, named boxes returned with the upload response that you apply instead of measuring bounds yourself. A preset is a marker on the artboard, not a division of it. It tells you where a design is meant to sit; it does not cut the smart object into pieces.

Learn more

Photo mockups

Follow a product photograph from create call to finished render.

Smart objects

Address a design area inside a Photoshop template.

Next steps

Render artwork

Place a design on a target and get a finished image.

Replace print areas

Read the write contract and run it against your own mockup.