---
title: "Restore one Compose service from a recovery snapshot"
method: POST
path: "/api/stacks/{stackName}/services/{serviceName}/restore"
tags: ["Stacks"]
---

# Restore one Compose service from a recovery snapshot

`POST /api/stacks/{stackName}/services/{serviceName}/restore`

Retags the captured majority image onto the declared tag and recreates
only that service. Body must include `recoveryId` from a prior service
update. Requires `stack:deploy`.

## Path parameters

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

## Headers

- `x-node-id` integer

## Request body

- object
  - `recoveryId` string, required

## Response `200`

Service restore completed.

- object
  - `serviceName` string, required
  - `healthGateId` string, nullable, required
  - `observing` boolean, required
  - `recoveryId` string, nullable
  - `recoveryAvailable` boolean, required

## Other responses

- `400` — Restore rejected (missing recoveryId or invalid binding).
- `403` — Insufficient permissions or license tier.
- `500` — Service restore failed.

---

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