---
title: "Latest active service recovery snapshot"
method: GET
path: "/api/stacks/{stackName}/services/{serviceName}/recovery"
tags: ["Stacks"]
---

# Latest active service recovery snapshot

`GET /api/stacks/{stackName}/services/{serviceName}/recovery`

Returns the newest active, unexpired recovery row for one service, or
`recovery: null` when none is available. Used so Restore stays
discoverable when Deploy Progress is disabled or dismissed.
Requires `stack:deploy`.

## Path parameters

- `stackName` string, required
- `serviceName` string, required

## Headers

- `x-node-id` integer

## Response `200`

Recovery lookup completed.

- object
  - `recovery` object, nullable, required
    - `id` string, required
    - `status` string, required
    - `healthGateId` string, nullable
    - `expiresAt` integer, required
    - `createdAt` integer, required
    - `majorityImageId` string
    - `declaredImageRef` string

## Other responses

- `400` — Capability unavailable.
- `401` — Authentication required. Provide a valid Bearer token.
- `403` — Insufficient permissions or license tier.

---

[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)
