Skip to main content
Sapient uses standard HTTP status codes. Every error body carries a machine-readable error code and a human message:
{ "error": "unauthorized", "message": "Missing, invalid, or revoked API key." }
StatuserrorMeaning
400bad_requestMalformed body: bad input, or an invalid webhook_url.
401unauthorizedMissing, invalid, or revoked API key.
402insufficient_balanceOut of credits. The first $5.00/month is free; add a prepaid deposit in Settings → API.
403plan_required / no_ownerA paid plan is required to use the API, or the key isn’t tied to a user.
404not_foundNo such scan, or it belongs to another org.
405method_not_allowedWrong HTTP verb for the endpoint.
429rate_limitedToo many requests. Retry with backoff.
500internal_errorSomething went wrong on our end.
502submit_failedThe scan couldn’t be dispatched to the model.