Errors & status codes

Emboss uses conventional HTTP status codes. 2xx means success; 4xx means the request was rejected and shouldn't be retried unchanged; 5xx means a server-side problem you can retry. Errors carry a JSON body with a human-readable message.

CodeMeaning
200OK — the request succeeded.
201Created — a new resource (e.g. a session) was created.
202Accepted — an async job (detection or fill) started.
400Bad request — malformed input, missing file, or invalid JSON.
401Unauthorized — missing or invalid API key.
404Not found — no such resource, or it belongs to another owner.
409Conflict — resource not ready (detection pending) or terminal (session completed).
429Too many requests — rate limited; back off and retry.
500Server error — an unexpected failure; safe to retry.