---
title: "Read cached deployment service readiness"
method: GET
path: "/v1/admin/services"
tags: ["Admin"]
---

# Read cached deployment service readiness

`GET /v1/admin/services`

## Request

- Base URL: `https://api.openworklabs.com`
- URL: `https://api.openworklabs.com/v1/admin/services`
- Auth: one of:
  - API key in header `x-api-key`
  - HTTP bearer

Fixed deployment diagnostics and the answering Den replica's version and start time. Never waits for an outbound check. A stale snapshot remains explicitly stale.

## Response `200`

Cached deployment readiness.

- DeploymentServiceReadiness
  - `version` 2, required
  - `checkedAt` string, date-time, nullable, required
  - `checking` boolean, required
  - `server` DenServerFacts, required
    - `version` string, required
    - `startedAt` string, date-time, required
    - `startupMs` integer, nullable, required
  - `services` DeploymentServiceStatus[], required
    - `id` 'database' | 'gateway' | 'headlessRunner' | 'workbot' | 'email', required
    - `required` boolean, required
    - `configured` boolean, required
    - `state` 'ready' | 'not_configured' | 'misconfigured' | 'unreachable' | 'unknown', required
    - `reason` 'not_checked' | 'not_configured' | 'missing_configuration' | 'invalid_configuration' | 'health_verified' | 'database_verified' | 'authentication_failed' | 'unexpected_response' | 'request_failed' | 'timeout' | 'dependency_unavailable' | 'configuration_only' | 'incompatible_service' | 'email_verified' | 'email_key_verified' | 'email_sender_unverified' | 'resume_misconfigured', required
    - `missingSettings` string[], required
    - `dependencies` string[], required
    - `notes` string[], required
    - `durationMs` integer, nullable, required
    - `checkedAt` string, date-time, nullable, required
    - `lastSuccessAt` string, date-time, nullable, required
    - `stale` boolean, required

## Other responses

- `401`: Authentication required.
- `403`: Deployment operator access required.
- `503`: Diagnostic admission is unavailable; no upstream detail is exposed.

## Changes

- **2026-10-20** `352faa73c6a2`: 1 breaking, 4 warning, 12 info
  - the `version` response property const value changed from `1` to `2` for the status `200`
  - added the new `email_key_verified` enum value to the `services/items/reason` response property for the response status `200`
  - added the new `email_sender_unverified` enum value to the `services/items/reason` response property for the response status `200`
  - added the new `email_verified` enum value to the `services/items/reason` response property for the response status `200`
  - …13 more
- **2026-10-20** `aef4d1db5034`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/openworklabs/apis/den-api/changes/v1/admin/services/get.md)

---

[API](https://skmtc.dev/openworklabs/apis/den-api.md) · [All operations](https://skmtc.dev/openworklabs/apis/den-api/llms.txt) · [OpenAPI document](https://skmtc.dev/openworklabs/apis/den-api/revisions/e6eb4e5ce8a3?raw)
