Skip to main content
The Scribe API uses conventional HTTP status codes and returns a consistent JSON error envelope, so you can handle failures the same way across every endpoint.

Error format

Every error response contains an error object:
{
  "error": {
    "type": "validation_error",
    "code": "blank",
    "message": "Name can't be blank."
  }
}
FieldDescription
typeThe category of error, such as validation_error or not_found.
codeA short, stable identifier for the specific error.
messageA human-readable explanation.

Validation errors

When a request fails validation, the response also includes a details array that pinpoints each invalid field:
{
  "error": {
    "type": "validation_error",
    "code": "invalid",
    "message": "The teammate could not be saved."
  },
  "details": [
    { "field": "email", "code": "invalid", "message": "Address is invalid." }
  ]
}

Status codes

StatusMeaning
200 OKThe request succeeded.
201 CreatedThe resource was created.
204 No ContentThe request succeeded with no response body, for example after a delete.
401 UnauthorizedThe API key is missing or invalid. See Authentication.
403 ForbiddenThe key lacks the required scope, or the feature is not available on your plan.
404 Not FoundThe resource does not exist, or it belongs to another workspace.
409 ConflictThe request conflicts with the current state, for example deleting a folder that still contains signatures.
422 Unprocessable EntityThe request was understood but failed validation. Check the details array.
Scribe returns 404 rather than 403 when a resource belongs to another workspace, so a key can never confirm whether a resource it cannot access exists.

Handle errors gracefully

  • Treat any non-2xx status as a failure, and read error.type and error.code to decide what to do.
  • For 422, surface the details array so the cause can be corrected field by field.
  • For 401 and 403, check that the key is valid and carries the scopes the endpoint requires.
  • For 409, resolve the conflicting state first, for example empty a folder before deleting it.