Skip to main content
A text layer is live, editable type inside a PSD: a headline, a name, a price. SudoMock reads those layers on upload and lets you change the wording, font, size and colour at render time, so one template becomes a run of personalised images. Text output is checked side by side against Photoshop reference exports for the documented supported cases below. Validate each production template against that table before you ship it.

One template, an endless run of names. Each render swaps only the text.

What upload returns

Every POST /api/v1/psd/upload response lists the text layers it found under text_layers, each with its current values and the UUID you address it by.
Four of those fields decide what your integration can do with the layer. font_available is false when the layer’s font is not in your catalogue. is_editable is false when the layer keeps its original appearance in this version. segment_count above 1 marks a layer that mixes styles, which takes segments rather than text. has_color_overlay tells you the visible colour comes from a colour effect rather than the fill. The top-level group_layers array lists each editable enclosing outline group. Appearing in that list is the editability signal for a group.

Override at render time

Add up to 50 entries to text_layers, naming only the layers you want to change. Each entry needs the layer uuid and exactly one of text or segments. font, font_size and color are optional and fall back to the layer’s authored values.
The same call with cURL, which is the fastest way to confirm a layer UUID is the one you think it is.
text takes 1 to 500 characters. font is either a catalogue font uuid or its PostScript name from GET /api/v1/fonts; see Fonts. A render needs at least one entry across smart_objects, text_layers or group_layers, which means a text-only personalisation renders without any smart object at all.
Layers you leave out keep their authored text, so a template with six lines and one variable line takes a one-entry request.

Hidden layers are personalisation slots

Targeting a hidden text layer renders it. Keep the optional lines, a name, a date, a discount, hidden in the PSD and switch each one on only for the renders that need it.
Leave it out and the layer stays hidden, exactly as it was in the source file.

What renders (as of July 2026)

Optical kerning nuances and ligature toggles may differ slightly from the original.

Ten warp styles render live with your new text, matched to the curve the designer set.

Rotated text keeps its exact angle, and mixed-style layers stay editable segment by segment.

Errors and warnings

An error blocks the render so you can fix the request. A warning rides along with a successful render so you know what happened. Both codes are stable, so your integration can branch on them. Each item in warnings carries only code and message. Every other status code is in Errors.

Fitting and colour

Keep replacement text inside its box, and recolour text and outlines.

Fonts

The catalogue, custom uploads, and picking a font in a render.