---
title: "Build compensating rollback plan"
method: POST
path: "/controlled-action/rollback-plan"
---

# Build compensating rollback plan

`POST /controlled-action/rollback-plan`

## Request

- Base URL: `https://api.gravityads.dev` (the document declares no server; this is the origin it was published from)
- URL: `https://api.gravityads.dev/controlled-action/rollback-plan`
- Auth: HTTP bearer

Builds a rollback/revert plan for budget/status actions. This does not write ad platforms.

## Request body

- object
  - `action_id` string, required
  - `operator_id` string
  - `requested_by` string

## Response `200`

Rollback plan

- object
  - `status` 'rollback_plan_ready', required
  - `action_id` string, required
  - `requested_by` string
  - `supported` boolean, required
  - `rollback_action_packet` object
  - `rollback_boundary` object, required
    - `contract_schema_version` 'gravityads.controlled_rollback_boundary.v1', required
    - `phase_contract` 'phase2_rollback_draft_never_auto_executes', required
    - `stage` 'plan' | 'draft', required
    - `action_id_hash` string
    - `request_id_hash` string
    - `request_thread_platform_write_called` false, required
    - `platform_write_called` false, required
    - `rollback_plan_only` boolean
    - `rollback_draft_only` boolean
    - `draft_required_before_execute` boolean
    - `approval_required_before_execute` true, required
    - `execute_required_for_platform_write` true, required
    - `worker_required_for_hosted_live_write` boolean
    - `raw_platform_response_returned` false, required
    - `raw_customer_ids_returned` false, required

---

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