OpenPrinterOpenPrinter
REST API

Errors and limits

Understand the public REST error envelope, status codes, and delivery limits.

Error envelope

OpenPrinter Cloud returns structured JSON errors:

{
  "error": {
    "code": "forbidden",
    "message": "The project API key lacks the required scope."
  }
}

The API lowercases the server error code on the wire. Do not branch on the human-readable message; use the HTTP status and error.code.

Common statuses

StatusTypical codesMeaning
400bad_requestInvalid JSON shape, document, numeric field, state filter, or pairing request.
401unauthorizedMissing, malformed, invalid, or revoked API key.
402entitlement_limitThe managed project has reached a plan limit.
403forbiddenThe key does not have the route's required scope.
404not_foundThe project printer or requested resource does not exist.
409conflict, agent_offlineThe resource exists but cannot accept the requested transition or delivery.
500internalThe service could not complete the request.
503unavailableA temporary service or delivery dependency is unavailable.

The public service intentionally returns bounded, generic messages for unexpected failures. Treat unknown statuses as retryable only when your application's idempotency strategy makes the operation safe.

Retry safely

GET requests can be retried when the transport fails. POST job creation can also be retried when the same projectId and idempotencyKey are sent; the service returns the existing job instead of creating a duplicate.

Do not retry a pairing request blindly: pairing codes are single-use and the response may have succeeded even if the client lost the connection.

On this page