- Personalise a run: one template, a list of names, a finished image for each.
- Localise a design: the same layout carrying the wording each market reads.
- Refresh a campaign: a new price or date without reopening the file.
Find the text layers
Create a mockup from a PSD returns every live type layer it found undertext_layers. Each entry carries
the layer’s current values, the UUID you address it by, and the highlighted
signals that decide what your integration can change on it. Text inside a smart
object is listed under that smart object’s own text_layers, and a render
fills it by UUID like any other entry, as
Smart objects
shows.
Upload response
font_available: false when the layer’s own typeface is not in your catalogue, so the render falls back to a default. See Fonts.is_editable: false when the layer keeps its original appearance in this version. The routes are under Limitations.segment_count: above 1 marks a layer that mixes styles, which takessegmentsrather thantext.has_stroke_effectandstroke_count: the outlines the layer owns, whichstroke_colorrecolours front to back.has_color_overlay: true when the visible colour comes from a colour effect rather than the fill.
group_layers array lists each editable enclosing outline group,
and appearing in that list is the editability signal for a group.
Override text at render time
Render a PSD mockup takes atext_layers array naming only the layers you want to change. The highlighted
lines are the whole override: layers you leave out keep their authored wording,
so a template with six lines and one variable line takes a one-entry request.
string
required
The text layer UUID from the upload response.
string
The replacement wording, 1 to 500 characters. Send this or
segments, and
exactly one of the two.array
Per-run overrides for a layer that mixes styles, sent instead of
text.
Fitting and colour carries the shape and the
per-render caps.string
A catalogue font
uuid, or its PostScript name from
Retrieve a list of fonts.
Defaults to the layer’s authored typeface.number
Type size in points. Defaults to the layer’s authored size.
string
Hex colour for the type. Defaults to the layer’s authored colour.
fit, vertical_align and stroke_color ride on the same entry and are
covered in Fitting and colour.
A render needs at least one entry across smart_objects, text_layers,
group_layers or hidden_layers, which means a text-only personalisation
renders without any smart object at all.
What renders
Point text, multi-line point text and paragraph, or box, text all render with your wording, matched to the original font, size and colour. Manual line breaks and leading render true to the original on every line. Area text wraps to its box as designed, and text past the box renders clipped. Character styling carries over as authored: faux bold and italic, underline and strikethrough, letter spacing, all caps and small caps, superscript and subscript, baseline shift, horizontal and vertical scale, the fill opacity the designer set, and all five anti-alias settings. A layer that mixes styles stays editable run by run, and each run keeps its own styling. Outlines, including stacked ones, render faithfully and recolour individually. Rotated text renders live at its exact angle, skewed point text renders live at its exact slant, and ten warp styles render live with your new wording: Arc, Arc Lower, Arc Upper, Arch, Bulge, Flag, Wave, Fish, Rise and Squeeze. Type on a path sets your wording along the same path, between the same start and end points, with the alignment the designer chose. Latin, Cyrillic and Greek scripts, including Turkish and accented characters, render exactly as designed. Arabic and Hebrew render right to left, with a fallback that keeps them readable when the chosen font lacks those glyphs. Every render draws on the built-in catalogue, and on your own uploaded typefaces where you have them, which Fonts covers. A template uploaded before skewed point text and type on a path rendered live picks them up once the PSD is uploaded again, as a separate template with its own UUIDs.Limitations
Some layers render with their original appearance rather than your wording. Each one has a route:- Vertical text is not editable in this version. Convert the layer to horizontal point text in Photoshop before upload.
- Justified alignment is not editable in this version. Switch the paragraph to left, centre or right alignment before upload.
- CJK text renders live with your wording, and the families are in the catalogue. For spacing exactly as designed, rasterise the layer before upload, or render the text as an image placed in a smart object slot.
- Warp styles outside the ten listed above render as authored. Render your text as an image and place it in a warped smart object slot.
- Rotation combined with mixed styles or a text box renders with the layer’s original appearance.
- A multi-line edit that would overflow its slot renders the original rather than breaking the composition. Shorten the replacement text, or design the slot with more room.
One render carries up to 50
text_layers entries, counting text inside smart
objects at every depth, and one layer’s text is capped at 500 characters.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 rather than on message text. These block the render:TEXT_LAYER_NOT_FOUND, 400: the text layer uuid in your request does not belong to this mockup.FONT_NOT_FOUND, 422: the font you explicitly requested is not in your catalogue. Upload it, pick a catalogue font, or omitfont.FONT_AMBIGUOUS, 422: the font name matches more than one font available to you. The response carries acandidateslist of uuids; send one asfont.TEXT_SEGMENTS_REQUIRED, 422: this mixed-style layer needssegmentsrather than onetextvalue.SEGMENT_INDEX_OUT_OF_RANGE, 422: the segment index is outside this layer’s range. Read valid indexes from the upload response.TEXT_SEGMENTS_UNSUPPORTED, 422: this single-style layer needs onetextvalue rather than segment overrides.TEXT_SEGMENTS_LIMIT, 422: the request carries more than 200 segment overrides across its text layers.TEXT_TOO_LONG, 422: the effective combined segment text is longer than 500 characters for this layer.
code and
message:
TEXT_FONT_FALLBACK: the font for this layer was unavailable, so a default font was used. Upload the font or pick an available one, then render again.TEXT_FONT_AMBIGUOUS: the layer’s font name matches more than one available font, so a default was used. Send an explicitfontuuid for this layer.TEXT_FONT_MISSING_GLYPHS: the selected font lacks some characters in the replacement text. Choose a font that supports the text.TEXT_WARP_BAKED: the layer uses one of the remaining warp styles, so it rendered with its original appearance.TEXT_LAYER_NOT_EDITABLE: this layer uses a structure or style not editable in this version, so it kept its original appearance.TEXT_FIT_SHRUNK: you selectedshrinkand the text was scaled down to fit its area.TEXT_OVERRIDE_NOT_APPLIED: the change could not be applied to this layer, so it kept its original content.TEXT_STROKE_NOT_PRESENT: you sentstroke_colorfor a layer with no outline of its own. Usegroup_layersfor an enclosing group outline.TEXT_COLOR_HIDDEN_BY_EFFECT: a gradient effect covers the text, so the requested colour may not be visible.
API reference
For the complete field contract and a live playground, see Render a PSD mockup and Create a mockup from a PSD.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.