---
title: "Get post-update health gate result"
method: GET
path: "/api/stacks/{stackName}/health-gate"
tags: ["Stacks"]
---

# Get post-update health gate result

`GET /api/stacks/{stackName}/health-gate`

Returns a post-deploy health gate observation for the stack: the run
named by `gateId` (as returned in a deploy or update response), or the
most recent run when omitted. Status `never-run` means no observation
exists. Requires `stack:read` permission.

## Path parameters

- `stackName` string, required

## Query parameters

- `gateId` string

## Headers

- `x-node-id` integer

## Response `200`

Health gate report.

- object
  - `stack` string, required
  - `id` string, nullable
  - `status` 'observing' | 'passed' | 'failed' | 'unknown' | 'never-run', required
  - `trigger` 'update' | 'deploy' | 'service_update' | 'service_restore' | 'null', nullable
  - `reason` string, nullable
  - `windowSeconds` integer, nullable
  - `startedAt` integer, nullable
  - `endedAt` integer, nullable
  - `containers` object[]
    - `name` string, required
    - `state` string, required — Docker container state, or `missing` when it vanished mid-observation.
    - `health` string, nullable
    - `restarts` integer, required
    - `service` string, nullable
    - `role` 'primary' | 'collateral' | 'null', nullable
  - `targetScope` 'stack' | 'service' — Defaults to stack for legacy runs.
  - `serviceName` string, nullable
  - `failureSource` 'primary' | 'collateral' | 'null', nullable — Set on failed service-scoped runs; null for stack and successful runs.

## Other responses

- `401` — Authentication required. Provide a valid Bearer token.
- `403` — Insufficient permissions or license tier.
- `500` — Internal server error.

---

[API](https://skmtc.net/studio-saelix/apis/sencho-api.md) · [All operations](https://skmtc.net/studio-saelix/apis/sencho-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/studio-saelix/sencho-api/versions/f36f82acae1d/schema)
