---
title: "Plan project deletion"
method: POST
path: "/v1/projects/{project_id}:delete-plan"
---

# Plan project deletion

`POST /v1/projects/{project_id}:delete-plan`

## Request

- Base URL: `https://app.ohmyho.st`
- URL: `https://app.ohmyho.st/v1/projects/{project_id}:delete-plan`
- Auth: HTTP bearer

Produces a non-mutating project deletion plan and a ten-minute action-bound confirmation token.

## Path parameters

- `project_id` string, required

## Headers

- `X-Request-Id` string

## Response `200`

A non-mutating project deletion plan.

- union: Non-mutating guarded-action plan with a confirmation token that expires exactly ten minutes after creation.
  - object
    - `action` 'rollback', required
    - `project_id` string, required
    - `target_deployment_id` string, required
    - `target_artifact_digest` string, required
    - `source_deployment_id` string
    - `source_artifact_digest` string
    - `source_environment` 'dev'
    - `target_environment` 'prod'
    - `resource_etag` string, required: Send as If-Match with this plan's confirmation token.
    - `effects` string[], required
    - `risks` string[], required
    - `confirmation_token` string, required: Opaque, single-action token bound to the planned action, project, target resource, and resource ETag.
    - `created_at` string, date-time, required
    - `expires_at` string, date-time, required
  - object
    - `action` 'promote', required
    - `project_id` string, required
    - `target_deployment_id` string
    - `target_artifact_digest` string
    - `source_deployment_id` string, required
    - `source_artifact_digest` string, required
    - `source_environment` 'dev', required
    - `target_environment` 'prod', required
    - `resource_etag` string, required: Send as If-Match with this plan's confirmation token.
    - `effects` string[], required
    - `risks` string[], required
    - `confirmation_token` string, required: Opaque, single-action token bound to the planned action, project, target resource, and resource ETag.
    - `created_at` string, date-time, required
    - `expires_at` string, date-time, required

## Other responses

- `400`: The request failed.
- `401`: The request failed.
- `403`: The request failed.
- `404`: The resource does not exist or is not visible to the authenticated principal.
- `429`: The request failed.
- `503`: The request failed.

---

[API](https://skmtc.dev/ohmyho/apis/ohmyho-st-api.md) · [All operations](https://skmtc.dev/ohmyho/apis/ohmyho-st-api/llms.txt) · [OpenAPI document](https://skmtc.dev/ohmyho/apis/ohmyho-st-api/revisions/d069888c0017?raw)
