---
title: "Batch archive customer instances."
method: POST
path: "/app/{app_id}/instances/archive"
tags: ["instances"]
---

# Batch archive customer instances.

`POST /app/{app_id}/instances/archive`

## Request

- Base URL: `https://api.replicated.com/vendor/v3`
- URL: `https://api.replicated.com/vendor/v3/app/{app_id}/instances/archive`
- Auth: API key in header `Authorization`

Archives multiple customer instances in a single request. Only development,
airgap, or inactive instances are eligible. Instances that cannot be archived
(e.g., active production instances or instances the caller lacks permission
for) are skipped and returned in the skipped array with a reason.

Required RBAC Policy: kots/app/[:appid]/license/[:licenseid]/update

## Path parameters

- `app_id` string, required

## Request body

- object
  - `instances` BatchArchiveInstance[]
    - `clusterId` string
    - `instanceId` string
    - `licenseId` string

## Response `200`

BatchArchiveCustomerInstancesResponse contains the bulk archive response.

- object
  - `archived` integer
  - `error` string
  - `skipped` SkippedInstance[]
    - `clusterId` string
    - `instanceId` string
    - `licenseId` string
    - `reason` string
  - `total` integer

## Other responses

- `400`: Returned on bad input
- `401`: Return if the caller is not authorized
- `403`: Returned if the caller does not have the needed permission
- `404`: Returned on resource not found

## Changes

- **2026-11-03** `a36c6aead22f`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/replicated/apis/vendor-api-v3-2/changes/app/:app_id/instances/archive/post.md)

---

[API](https://skmtc.dev/replicated/apis/vendor-api-v3-2.md) - [All operations](https://skmtc.dev/replicated/apis/vendor-api-v3-2/llms.txt) - [OpenAPI document](https://skmtc.dev/replicated/apis/vendor-api-v3-2/revisions/a36c6aead22f?raw)
