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.
GET /api/v1/photo-mockups/{mockup_id}

The coordinate space

Every point on a mockup is in source photo pixels, the space described by source_width and source_height. A print area is exactly four [x, y] points, ordered top left, top right, bottom right, bottom left, and the shape they describe has to be convex and sit inside the photograph. sort_order starts at zero and follows the photograph rather than your array: areas are ordered by their leftmost point, then top to bottom, so index zero is the leftmost area on the image. Read the order off the response instead of assuming it.

Supply your own areas at create time

If you already know where artwork belongs, send the areas with the create call. SudoMock uses them exactly and skips detection, which keeps a bulk import deterministic.
POST /api/v1/photo-mockups

Replace the areas later

The areas prepared at creation are ready to render as they are. Reach for this endpoint only when you want your own placement. It replaces the whole list in the order you send, so include every area you mean to keep. PUT print areas
The response returns the saved areas with the ids you render against.
200 OK
Sending an empty array removes every bounded zone. The product surface stays, so the mockup still renders as a whole item.
Clear the zones

Limits worth knowing

A mockup currently 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. Print areas can only be written 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. See Errors.
Points are validated against the source image, not against the product. A convex quad that falls outside source_width or source_height is rejected with 400 rather than clamped, so you find the mistake at setup instead of in a render.

Reviewing placement by eye

Numbers are the fast path, and a photograph sometimes needs a look. The mockup editor at Dashboard, Photo mockups opens the prepared result, lets you drag the corners, and saves the same areas this endpoint writes. Its Code tab prints a ready to run 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.
From the PSD upload response
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.

Next

Render artwork

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

Print areas endpoint

The write contract, with examples.