Skip to main content
Errors use standard HTTP status codes and one JSON shape. Every response, successful or not, carries an X-Request-Id header; include it when you contact support.
code is a stable, machine readable string you can switch on. message is for people and can change. request_id matches the X-Request-Id header.

Status codes

Handling errors

Check the status first, then code. Retry 429 and 5xx with backoff, and use an Idempotency-Key on POST /v1/printjobs so a retry cannot print twice (see Rate limits and idempotency). Fix the request for any other 4xx.
A print job that was accepted can still fail later. Its state becomes error and stateMessage holds the reason from the operating system. Watch for printjob.error in webhooks.