> ## 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.

# What PSD features are supported

> Check a Photoshop file against what renders today.

Smart objects, layer masks, clipping masks, all 27 blend modes, opacity, warps,
perspective transforms, Drop Shadow, Stroke, Blend If, and live text layers
render from your file as authored.
[PSD compatibility](/docs/psd-mockups/psd-compatibility) carries the row-by-row
table and [Smart filters](/docs/concepts/smart-filters) the per-filter verdicts.

For one specific file, upload it and read what came back.

## How to check your own file

[Create a mockup from a PSD](/docs/api-reference/psd-mockups/create-a-mockup-from-a-psd)
returns every slot the template holds. Each design area you meant to address
should be in `smart_objects`, under the name you gave it in Photoshop, and each
live type layer in `text_layers` beside the signals that decide what you can
change on it.

| What you read             | What it means, and what to do                                                                                                                                                      |
| ------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `is_editable` is false    | The layer renders with its original appearance. Vertical text and justified alignment are the usual causes, and each has a one-step fix on [Text layers](/docs/text/text-layers).       |
| `font_available` is false | The typeface is not in your catalogue, so the render falls back and attaches a `TEXT_FONT_FALLBACK` warning. Upload that font, or set `font` explicitly. See [Fonts](/docs/text/fonts). |
| A smart object is absent  | It is hidden in the PSD, so it is not exposed as a slot. Make it visible and upload again. [Hidden layers](/docs/faq/why-did-my-hidden-layer-not-render) covers both layer types.       |

<Info>
  A template you registered earlier needs no second upload.
  [Retrieve a single PSD mockup](/docs/api-reference/psd-mockups/retrieve-a-single-psd-mockup)
  returns the same arrays for a mockup UUID you already hold.
</Info>

## Read the warnings on a render

A render that succeeds still tells you what it had to work around. Its
`warnings` array names each one with a stable code, so your integration
branches on the code rather than on message text. `TEXT_WARP_BAKED`, for one,
means the layer uses one of the remaining warp styles and kept its original
appearance. The full list is on [Text layers](/docs/text/text-layers), the error
codes are in [Errors](/docs/errors), and
[Render a PSD mockup](/docs/api-reference/psd-mockups/render-a-psd-mockup) shows
where the array sits.

## Where a feature is not rendered

Nothing leaves you at a dead end. Geometric effects rebuild as a warp on the
smart object, tonal effects rebuild as adjustment layers, and decorative or
random textures rasterise into a static layer, which costs nothing because they
were never going to change per render. Every row has its own route on
[PSD compatibility](/docs/psd-mockups/psd-compatibility).

Type that is not editable in this version still renders. Rasterise it when it
never changes, or place it as an image in a smart object slot when it does,
sending that slot an `asset` the way any other design area takes one.

<Tip>
  Keep what is supported live rather than baking it into pixels. A rasterised
  layer is frozen at the moment you flattened it, while a live one stays
  accurate for every design you upload afterwards.
</Tip>

## If a feature still is not rendering

1. Find the layer's row on
   [PSD compatibility](/docs/psd-mockups/psd-compatibility). An unsupported row
   names what to send instead.
2. Re-read the upload response. A slot absent there will not appear in a
   render.
3. Read the `warnings` array. A supported feature that changed appearance names
   itself.
4. Walk the file through [Preparing a PSD](/docs/psd-mockups/preparing-a-psd), the
   checklist that keeps every text layer taking overrides.
5. [Contact support](https://sudomock.com/contact) with the mockup UUID and the
   layer name.
