# Move businesses between stages

`businesses.move_stage`

Move one or up to 100 businesses to the reviewed stage. Read businesses.review_stage_move first. Bulk moves require two separate user confirmations: selection/count including archived records and destination; then all reviewed effects, difficult restoration of individual stages, and final approval. Set both flags true only after those replies; flags attest the conversation, not independent proof of approval. Never split a bulk request into single calls to avoid confirmation. Re-review and re-confirm if state or selection changes. Retry identical arguments with the same idempotency key. Application statuses and submissions are unchanged. Use application status-change tools for lifecycle decisions. Read the resource afterwards to verify.

[Businesses guide](https://docs.levr.ai/mcp/resources/businesses.md)

Availability depends on live discovery and your access to the record. Do not infer MCP calls from REST paths.

Operation: write. Required OAuth scopes: mcp.

## Input schema

```json
{
  "additionalProperties": false,
  "properties": {
    "destination_stage_id": {
      "description": "Copy the destination stage id from businesses.get_stage_configuration for the selected pipeline.",
      "pattern": "^bstg_[a-z0-9]+$",
      "type": "string"
    },
    "effects_confirmed": {
      "description": "Bulk only: true after a separate second user confirmation of effects, difficult undo, and final go-ahead. Never infer either confirmation.",
      "type": "boolean"
    },
    "idempotency_key": {
      "format": "uuid",
      "type": "string"
    },
    "provider_slug": {
      "description": "Copy provider_slug from providers.list; named slugs are valid.",
      "pattern": "^[a-zA-Z0-9_-]{1,64}$",
      "type": "string"
    },
    "record_ids": {
      "description": "Copy id from businesses.list. One record for a single move; 2–100 for bulk. Never infer an unreviewed selection.",
      "items": {
        "pattern": "^biz_[a-z0-9]+$",
        "type": "string"
      },
      "maxItems": 100,
      "minItems": 1,
      "type": "array",
      "uniqueItems": true
    },
    "review_token": {
      "maxLength": 4096,
      "minLength": 1,
      "type": "string"
    },
    "scope_confirmed": {
      "description": "Bulk only: true after the user first confirms the exact records, count including archived records, and destination.",
      "type": "boolean"
    }
  },
  "required": [
    "provider_slug",
    "record_ids",
    "destination_stage_id",
    "review_token",
    "idempotency_key"
  ],
  "type": "object"
}
```

## Output schema

```json
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false,
  "oneOf": [
    {
      "not": {
        "required": [
          "error"
        ]
      },
      "properties": {
        "ok": {
          "const": true
        }
      },
      "required": [
        "data"
      ]
    },
    {
      "not": {
        "required": [
          "data"
        ]
      },
      "properties": {
        "ok": {
          "const": false
        }
      },
      "required": [
        "error"
      ]
    }
  ],
  "properties": {
    "data": {
      "additionalProperties": false,
      "properties": {
        "destination": {
          "additionalProperties": false,
          "properties": {
            "id": {
              "type": "string"
            },
            "name": {
              "type": "string"
            },
            "pipeline_name": {
              "type": "string"
            }
          },
          "required": [
            "id",
            "name",
            "pipeline_name"
          ],
          "type": "object"
        },
        "moved_count": {
          "maximum": 100,
          "minimum": 0,
          "type": "integer"
        },
        "record_ids": {
          "items": {
            "type": "string"
          },
          "maxItems": 100,
          "type": "array"
        },
        "unchanged_count": {
          "maximum": 100,
          "minimum": 0,
          "type": "integer"
        }
      },
      "required": [
        "moved_count",
        "unchanged_count",
        "destination",
        "record_ids"
      ],
      "type": "object"
    },
    "error": {
      "additionalProperties": false,
      "properties": {
        "code": {
          "type": "string"
        },
        "details": {
          "additionalProperties": true,
          "description": "Optional bounded, agent-safe correction or recovery facts.",
          "type": "object"
        },
        "message": {
          "type": "string"
        },
        "retryable": {
          "type": "boolean"
        }
      },
      "required": [
        "code",
        "message",
        "retryable"
      ],
      "type": "object"
    },
    "meta": {
      "additionalProperties": false,
      "properties": {
        "request_id": {
          "type": "string"
        }
      },
      "required": [
        "request_id"
      ],
      "type": "object"
    },
    "ok": {
      "description": "Whether the tool completed successfully.",
      "type": "boolean"
    }
  },
  "required": [
    "ok",
    "meta"
  ],
  "type": "object"
}
```

Check the result, then read the affected record to confirm your change.
