> ## Documentation Index
> Fetch the complete documentation index at: https://sudomock.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> The base URL is https://api.sudomock.com.
> Authenticate every request with the x-api-key header. Keys begin with sm_.
> A render returns the finished image at data.print_files[0].export_path. A request sent with is_async true returns a job_id to poll at GET /api/v1/jobs/{job_id}.
> Prefer the official SDKs over hand-written HTTP calls: npm install sudomock for Node, pip install sudomock for Python.

# PSD compatibility

> Which Photoshop features render, and what to send instead.

A feature is listed as supported here only when its output is verified against
Photoshop's own render. Where faithful reproduction is not possible, the row
says so and points at the mechanism that gets you the same look.

<Info>
  **Recommendation:** keep supported features live rather than baking them into
  pixels. A live feature stays accurate for every design you send.
</Info>

## What renders as authored

| Feature                                                                              | Notes                                                                                                                                                                                                                                                               |
| ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Smart objects, embedded                                                              | Artwork replacement, nested smart objects, and several smart objects per template.                                                                                                                                                                                  |
| Smart objects, linked                                                                | Rendered from their placement geometry, so Embed Linked is not required before upload.                                                                                                                                                                              |
| Layer masks                                                                          | Honoured and rendered to match Photoshop.                                                                                                                                                                                                                           |
| Blend modes, all 27                                                                  | Photoshop-accurate compositing. Pass Through is additionally accepted as a group blending mode.                                                                                                                                                                     |
| Smart object warps, mesh                                                             | Warp meshes render to match Photoshop's own output, verified pixel for pixel.                                                                                                                                                                                       |
| Perspective transforms                                                               | Four-point perspective placement on smart objects.                                                                                                                                                                                                                  |
| Layer effects: Drop Shadow, Stroke, Inner and Outer Glow, Bevel and Emboss, Blend If | Rendered to match Photoshop, verified against Photoshop 2026 exports. Bevel covers the inner, outer, emboss and pillow emboss styles.                                                                                                                               |
| Text layers                                                                          | Point, multi-line and area text render with editable wording, font, size and colour. Rotated text and ten warp styles render live with your new text; the remaining warp styles and vertical text render as authored.                                               |
| International scripts                                                                | Latin-based scripts, including Turkish and accented characters, render as designed. Arabic and Hebrew render right-to-left, with a readable fallback when the chosen font lacks those glyphs. CJK families are in the catalogue with layout still being calibrated. |
| Smart filters                                                                        | Perspective Warp, Curves, Gaussian Blur, Box Blur, Brightness/Contrast, Invert, Displace, Find Edges and the one-click filters render with no extra parameters in the request body.                                                                                 |

Colour modes other than RGB are converted on upload. Duotone and Multichannel
currently render in grayscale, so convert those files to RGB in Photoshop while
you still hold the ink values.

Every row above renders as authored without a parameter in the render request.
The verified result for each supported filter is on
[Smart filters](/docs/concepts/smart-filters), and the call itself is on
[Render a PSD mockup](/docs/api-reference/psd-mockups/render-a-psd-mockup).

## What to send as pixels instead

| Feature                                                     | What to send instead                                                                                                                                                                                                    |
| ----------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Bevel set to Stroke Emboss                                  | Rasterize the styled layer. The other four bevel styles render as authored.                                                                                                                                             |
| 3D layers                                                   | Render the 3D pass to pixels in Photoshop and keep it as a static layer.                                                                                                                                                |
| Video layers                                                | Export the frame you want and place it as a pixel layer.                                                                                                                                                                |
| Adjustment layers outside a smart object                    | Clip the adjustment to the smart object, or send the values as `adjustment_layers` at render time.                                                                                                                      |
| Camera Raw Filter, Filter Gallery, Liquify, Lens Correction | Not rendered: they rely on proprietary Adobe algorithms. Rebuild the geometry with Warp or Perspective Warp and the tone with Curves or Brightness/Contrast clipped to the smart object, or rasterize the styled layer. |
| Clouds, other randomized filters, and Average               | Not rendered: the PSD does not store the result they drew, and a randomized filter draws a different one on every pass. Rasterize the texture into a static pixel layer.                                                |

Every unsupported row routes to something that does render. A texture that is
the same on every design belongs above the print area as its own layer, tinted
at render time through `color.blending_mode` on the smart object rather than
flattened into the artwork. The modes and what each one does are on
[Fit and blend modes](/docs/concepts/fit-and-blend-modes).

## Hidden layers and linked content

How a hidden layer behaves depends on its type, and the two rules point in
opposite directions. A smart object that is hidden in Photoshop is not exposed
as a slot and is not rendered, so make the layer visible and upload the file
again. The upload still succeeds and comes back carrying the advisory code
`PSD_HIDDEN_SMART_OBJECTS`, so you find out before your first render. A text
layer that is hidden is kept as a fillable slot instead: it renders when you
send a [`text_layers`](/docs/text/text-layers) entry for it and stays hidden when
you leave that entry out. One template can therefore carry optional lines,
personalized fields or language variants that appear only on the renders you
choose to fill. Both cases are worked through on
[Hidden layers](/docs/faq/why-did-my-hidden-layer-not-render).

Linked content renders from its placement geometry, which is why linked
[smart objects](/docs/psd-mockups/smart-objects) sit on the supported side above.
When a linked smart object carries no usable placement geometry, the render
returns a permanent `422` with the error code
`LINKED_SMART_OBJECT_CONTENT_MISSING`, and retrying the same file returns it
again. Run **Layer > Smart Objects > Embed Linked** and upload the file again,
or send the artwork in the render body. The retry rule for every code is on
[Errors](/docs/errors).

## Learn more

<CardGroup cols={2}>
  <Card title="Smart filters" icon="wand-sparkles" href="/docs/concepts/smart-filters">
    Read the verified result for every filter we render.
  </Card>

  <Card title="Hidden layers" icon="eye-off" href="/docs/faq/why-did-my-hidden-layer-not-render">
    See why a hidden text layer fills and a hidden smart object does not.
  </Card>
</CardGroup>

## Next steps

<CardGroup cols={2}>
  <Card title="Preparing a PSD" icon="file-check" href="/docs/psd-mockups/preparing-a-psd">
    Author a template that keeps these rows on the supported side.
  </Card>

  <Card title="Render a PSD mockup" icon="code" href="/docs/api-reference/psd-mockups/render-a-psd-mockup">
    Call the render endpoint in the language you already use.
  </Card>
</CardGroup>
