---
title: "Apply a customer-reviewed saved deployment idempotently"
method: POST
path: "/platform/deployments/custom/prepared/{execution_id}/apply"
tags: ["Platform"]
---

# Apply a customer-reviewed saved deployment idempotently

`POST /platform/deployments/custom/prepared/{execution_id}/apply`

## Request

- Base URL: `https://api.imprezahost.com/v1`
- URL: `https://api.imprezahost.com/v1/platform/deployments/custom/prepared/{execution_id}/apply`
- Auth: API key in header `X-API-Key` and API key in header `X-API-Secret`

Deploy scope. Send only configuration_digest after reviewing. Atomically commits one app, job and acceptance receipt. Retry the same ID/digest after uncertain responses; an accepted receipt replays after expiry or app removal without recreating work. First acceptance revalidates source, rules, expiry and target. Acceptance means queued, not healthy. External DNS is not transactional and may remain after an interrupted attempt.

## Path parameters

- `execution_id` string, required

## Request body

- object
  - `configuration_digest` string, required: Digest from the customer-reviewed saved configuration.

## Response `200`

Original receipt, replayed=true.

## Other responses

- `201`: New receipt with execution_id, configuration_digest, deployment_id, command_id, status=accepted, accepted_at; replayed=false.
- `400`: Invalid digest or forbidden overrides.
- `404`: Owned prepared deployment not found.
- `409`: Pending execution, digest mismatch, changed configuration or failed preconditions.

---

[API](https://skmtc.dev/imprezahost/apis/impreza-host-public-api.md) · [All operations](https://skmtc.dev/imprezahost/apis/impreza-host-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/imprezahost/apis/impreza-host-public-api/revisions/db86511f604f?raw)
