error_code where it is present,
and always keep a default case that surfaces message and
details.suggestion, so an unfamiliar code degrades into a readable failure
instead of a crash.
Every endpoint answers with the same error envelope, so the codes below apply
across the API rather than per endpoint. The reference pages show the success
response; this page is where the failures live.
Status codes
Error shapes
Most errors carry a human-readable message:Standard error
error_code and a details
object with a suggestion:
Structured error
Upload error codes
POST /api/v1/psd/upload returns these on error_code.
Render error codes
Render, text layer, font, artwork and photo mockup failures use the sameerror_code field. Take the HTTP status from the response rather than from this
table.
These are the codes integrations hit most often, not an exhaustive registry.
Rate limits and concurrency limits
Two ceilings answer429: a request rate, and a cap on how many long
operations run at once. Both report their state in response headers, and
error.type says which one you hit.
Usage limits
The numbers, the headers, and both
429 bodies.Retry strategy
Retry429, 500, 502, 503, 504 and network errors. Do not retry 400,
401, 402, 403, 404 or 422: fix the request or the billing state first.
Retry with backoff
Webhooks
Let long jobs call you back instead of polling them.
Plans and limits
Read the live concurrency and template ceilings for an account.