---
title: "Get deployment plan"
method: GET
path: "/v1/workspaces/{workspaceId}/deployments/{deploymentId}/plan/{planId}"
---

# Get deployment plan

`GET /v1/workspaces/{workspaceId}/deployments/{deploymentId}/plan/{planId}`

Retrieve the status and results of a previously created deployment plan.

## Path parameters

- `workspaceId` string, required
- `deploymentId` string, required
- `planId` string, required

## Response `200`

OK response

- DeploymentPlan
  - `id` string, required
  - `status` 'computing' | 'completed' | 'failed', required
  - `summary` DeploymentPlanSummary
    - `changed` integer, required
    - `errored` integer, required
    - `total` integer, required
    - `unchanged` integer, required
    - `unsupported` integer
  - `targets` DeploymentPlanTarget[], required
    - `environmentId` string, required
    - `environmentName` string, required
    - `hasChanges` boolean, required — True if any result for this target has changes
    - `resourceId` string, required
    - `resourceName` string, required
    - `results` DeploymentPlanTargetResult[], required
      - `contentHash` string, required — Hash of the rendered output for change detection
      - `current` string, required — Full rendered output of the currently deployed state
      - `hasChanges` boolean, required
      - `id` string, required
      - `message` string, required — Agent message (e.g. error explanation or summary)
      - `proposed` string, required — Full rendered output of the proposed version
      - `status` 'computing' | 'completed' | 'errored' | 'unsupported', required

## Other responses

- `400` — Invalid request
- `404` — Resource not found

## Changes

> 50 revisions in range; 1 could not be searched.

- **2026-04-09** `dad57e35a328` — 1 breaking, 3 warning, 2 info
  - removed the required property `targets/items/status` from the response with the `200` status
  - removed the optional property `targets/items/contentHash` from the response with the `200` status
  - removed the optional property `targets/items/current` from the response with the `200` status
  - removed the optional property `targets/items/proposed` from the response with the `200` status
  - …2 more
- **2026-03-14** `17bf3874d418` — 1 info
  - endpoint added
- **2026-02-19** `e61389fc98ac` — 1 breaking
  - api path removed without deprecation

[Change history](https://skmtc.dev/ctrlplanedev/apis/ctrlplane-api/changes/v1/workspaces/:workspaceId/deployments/:deploymentId/plan/:planId/get.md)

---

[API](https://skmtc.dev/ctrlplanedev/apis/ctrlplane-api.md) · [All operations](https://skmtc.dev/ctrlplanedev/apis/ctrlplane-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/ctrlplanedev/ctrlplane-api/revisions/156e0d264995/schema)
