> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sequenzy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Approve Migration Plan

> Approve provider-neutral migration resources for execution.

# Approve Migration Plan

Approves resources from discovery and freezes the provider-neutral plan. Execution is still queued by `start`.

## Request

<ParamField path="runId" type="string" required>
  Migration run ID.
</ParamField>

<ParamField body="resourceIds" type="string[]" required>
  Discovery resource IDs to import.
</ParamField>

<ParamField body="resourceOptions" type="object">
  Optional per-resource filters, such as automation names.
</ParamField>

```bash theme={null}
curl -X POST "https://api.sequenzy.com/api/v1/migrations/run_123/approve-plan" \
  -H "Authorization: Bearer SEQUENZY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"resourceIds":["subscribers","tags","custom_fields","automations"],"resourceOptions":{"automations":{"names":["Budget Worksheet","Mini Budget Binder Flow"]}}}'
```

## Responses

<ResponseExample>
  ```json 200 theme={null}
  {"success":true,"data":{"id":"run_123","status":"awaiting_execution","approvedPlan":{"resources":[]}}}
  ```

  ```json 400 theme={null}
  {"error":"Migration discovery is required before approval"}
  ```

  ```json 401 theme={null}
  {"error":"Invalid API key"}
  ```

  ```json 500 theme={null}
  {"success":false,"error":"Failed to approve migration plan"}
  ```
</ResponseExample>
