Skip to main content
When a request fails, the Overwatch API returns a JSON body alongside an appropriate HTTP status code. Your client should check the status code first, then inspect the body for a human-readable message and any machine-readable codes.

Error object shape

All error responses include at minimum an error field:
Some errors include additional fields:

HTTP status codes

Common errors in detail

401 Unauthorized

Returned when the Authorization header is missing, malformed, or contains a key that does not exist or has expired.
Check that you are passing the header as Authorization: Bearer ow_live_sk_... and that the key has not expired.

402 Payment Required

Returned when your organization lacks an active subscription and the endpoint requires one. This occurs on POST /api/v1/monitors and POST /api/v1/alerts, which are write operations gated behind billing.

403 Forbidden

Returned when your API key’s role is insufficient for the requested operation. For example, a viewer key cannot create or delete resources; an admin key cannot manage API keys.
See Authentication for a full breakdown of what each role can do.

404 Not Found

Returned when the resource ID in the URL does not match any resource in your organization. Overwatch returns 404 rather than exposing whether a resource exists in a different organization.

422 Unprocessable Entity

Returned for two distinct situations: Validation errors — the request body is missing required fields or contains invalid values (for example, an unsupported monitor type or alert channel type).
Plan limit reached — you have hit the maximum number of monitors or alert channels allowed on your current plan. These responses include "upgrade": true.
When you receive a 422 with upgrade: true, the only way to proceed is to upgrade your plan from the Overwatch dashboard.