---
title: "Approve migration plan"
method: POST
path: "/migrations/{runId}/approve-plan"
tags: ["Migrations"]
---

# Approve migration plan

`POST /migrations/{runId}/approve-plan`

Approves provider-neutral resources and freezes the execution plan for a migration run.

## Path parameters

- `runId` string, required

## Request body

- object
  - `resourceIds` string[], required
  - `resourceOptions` object

## Response `200`

Plan approved

- object
  - `success` boolean
  - `data` object

## Other responses

- `400` — Invalid approval
- `401` — Unauthorized
- `500` — Approval failed

## Changes

- **2026-08-19** `ba3a29c6eb33` — 3 info
  - added the optional property `retryable` to the response with the `400` status
  - added the optional property `retryable` to the response with the `401` status
  - added the optional property `retryable` to the response with the `500` status
- **2026-08-16** `6fd2903b91ce` — 3 info
  - added the optional property `code` to the response with the `400` status
  - added the optional property `code` to the response with the `401` status
  - added the optional property `code` to the response with the `500` status
- **2026-08-02** `36f92fc0caa2` — 3 breaking
  - the response property `success` became optional for the status `400`
  - the response property `success` became optional for the status `401`
  - the response property `success` became optional for the status `500`
- **2026-06-18** `7510100bfe08` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/sequenzy/apis/sequenzy-api/changes/migrations/:runId/approve-plan/post.md)

---

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