---
title: "Run the diagnostics checks the caller may run"
method: POST
path: "/v1/org/diagnostics/check"
tags: ["Diagnostics"]
---

# Run the diagnostics checks the caller may run

`POST /v1/org/diagnostics/check`

## Request

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

Starts, in the background, every live check the caller's sections allow: provider model listings with organization-held credentials (never a model request or a member's credential), the Slack assistant token, the caller's own Google API check, and installation services for installation administrators. Shares the rate limits of background checks (one per organization, or per member for connectors, every 30 seconds). Answers with the current diagnostics; poll GET /v1/org/diagnostics until `checking` is false.

## Response `202`

Checks started, already running, or nothing to check.

- OrgDiagnostics
  - `version` 1, required
  - `generatedAt` string, date-time, required
  - `deployment` 'cloud' | 'self_hosted', required
  - `checking` boolean, required
  - `attention` object[], required
    - `section` 'desktop' | 'providers' | 'connectors' | 'installation' | 'network', required
    - `targetId` string, required
    - `severity` 'warning' | 'error', required
    - `code` 'provider_key_rejected' | 'provider_unreachable' | 'provider_model_missing' | 'provider_misconfigured' | 'desktop_startup_failures' | 'connector_slack_token_rejected' | 'connector_slack_not_installed' | 'connector_google_api_disabled' | 'service_misconfigured' | 'service_unreachable', required
    - `subject` string, required
    - `count` integer, nullable, required
    - `detail` string, nullable, required
  - `desktop` union, required
    - object
      - `access` 'granted', required
      - `windowHours` 24, required
      - `startups` integer, required
      - `connected` integer, required
      - `failed` integer, required
      - `people` integer, required
      - `typicalMs` integer, nullable, required
      - `slowestMs` integer, nullable, required
      - `steps` object[], required
        - `step` 'window' | 'engine' | 'signed_in' | 'org_tools', required
        - `typicalMs` integer, nullable, required
      - `failures` object[], required
        - `step` 'window' | 'engine' | 'signed_in' | 'org_tools', required
        - `reason` 'certificate' | 'dns' | 'offline' | 'timeout' | 'connection_refused' | 'server_error' | 'signed_out' | 'session_expired' | 'engine_failed' | 'org_unavailable' | 'unknown', required
        - `count` integer, required
        - `people` integer, required
        - `lastSeenAt` string, date-time, required
      - `versions` object[], required
        - `version` string, required
        - `startups` integer, required
    - object
      - `access` 'locked', required
      - `permission` string, required
  - `providers` union, required
    - object
      - `access` 'granted', required
      - `checkedAt` string, date-time, nullable, required
      - `checking` boolean, required
      - `items` object[], required
        - `id` string, required
        - `source` 'gateway' | 'legacy' | 'openwork', required
        - `providerId` string, required
        - `name` string, required
        - `credentialName` string, nullable, required
        - `state` 'ready' | 'key_rejected' | 'unreachable' | 'model_missing' | 'misconfigured' | 'member_credentials' | 'managed' | 'not_checked', required
        - `reason` 'models_listed' | 'key_accepted' | 'no_live_check' | 'member_sign_in' | 'endpoint_not_found' | 'network_error' | 'timeout' | 'configuration_error' | 'credential_missing' | 'sync_error' | 'managed_by_openwork' | 'not_checked_yet' | 'credential_rejected' | 'credential_expired' | 'unexpected_response', required
        - `httpStatus` integer, nullable, required
        - `durationMs` integer, nullable, required
        - `checkedAt` string, date-time, nullable, required
        - `lastSuccessAt` string, date-time, nullable, required
        - `models` object, required
          - `configured` integer, required
          - `served` integer, nullable, required
          - `missing` string[], required
        - `members` object, nullable, required
          - `connected` integer, required
          - `needsAttention` integer, required
    - object
      - `access` 'locked', required
      - `permission` string, required
  - `connectors` union, required
    - object
      - `access` 'granted', required
      - `checkedAt` string, date-time, nullable, required
      - `items` object[], required
        - `id` string, required
        - `kind` 'slack_assistant' | 'google_workspace', required
        - `name` string, required
        - `state` 'ready' | 'attention' | 'off' | 'not_checked', required
        - `reason` 'slack_token_accepted' | 'slack_token_rejected' | 'slack_not_installed' | 'slack_assistant_off' | 'slack_runner_missing' | 'google_apis_enabled' | 'google_api_disabled' | 'google_sign_in_required' | 'not_checked_yet', required
        - `checkedAt` string, date-time, nullable, required
        - `lastEventAt` string, date-time, nullable, required
        - `completed24h` integer, nullable, required
        - `apis` object[], required
          - `id` string, required
          - `name` string, required
          - `status` 'enabled' | 'disabled' | 'unknown', required
    - object
      - `access` 'locked', required
      - `permission` string, required
  - `installation` union, required
    - object
      - `access` 'operator', required
      - `server` DenServerFacts, required
        - `version` string, required
        - `startedAt` string, date-time, required
        - `startupMs` integer, nullable, required
      - `services` DeploymentServiceReadiness, required
        - `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
    - object
      - `access` 'managed', required
    - object
      - `access` 'locked', required
      - `reason` 'installation_admin_required', required
  - `network` union, required
    - object
      - `access` 'granted', required
      - `canRun` boolean, required
    - object
      - `access` 'locked', required
      - `permission` string, required

## Other responses

- `401`: The caller must be signed in.
- `404`: No active organization.
- `429`: Every requested check ran recently; Retry-After says when another may start. Same body.

## Changes

- **2026-10-20** `352faa73c6a2`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/openworklabs/apis/den-api/changes/v1/org/diagnostics/check/post.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)
