---
title: "Retire the old failover pair"
method: POST
path: "/platform/failover-cutovers/{id}/retire-pair"
tags: ["Platform"]
---

# Retire the old failover pair

`POST /platform/failover-cutovers/{id}/retire-pair`

## Request

- Base URL: `https://api.imprezahost.com/v1`
- URL: `https://api.imprezahost.com/v1/platform/failover-cutovers/{id}/retire-pair`
- Auth: API key in header `X-API-Key` and API key in header `X-API-Secret`

Retire a verified failover pair only after the old service is already Terminated. Requires its positive integer old_service_id, the reviewed digest and confirm: true. Keeps the primary running and recovery copies retained; revokes the old agent and tombstones the old application. Does not terminate billing or erase backups. Manage scope; account credential without confinement. Available only when the failover_enabled feature gate is enabled. Resources must belong to the authenticated account; confined credentials are rejected. A disabled gate returns 404. Review validity, same-account pairing and current state are checked again by the server.

## Path parameters

- `id` string, required

## Request body

- FailoverRetireFailoverPairInput
  - `confirm` true, required
  - `old_service_id` integer, required
  - `review_digest` string, required

## Response `200`

Saved failover state

- FailoverRetirementResponse
  - `success` true, required
  - `data` FailoverRetirement, required
    - `retirement` object, required
      - `cutover_id` string, required
      - `status` 'retired', required
      - `old_service_id` integer, required
      - `old_service_status` 'Terminated', required
      - `old_deployment_id` string, required
      - `primary_deployment_id` string, required
      - `primary_kept_running` true, required
      - `old_agent_revoked` true, required
      - `old_application_tombstoned` true, required
      - `recovery_backup_ids` string[], required
      - `recovery_copies_retained` true, required
      - `billing_changed` false, required
      - `retired_at` string, required
    - `replayed` boolean, required
  - `meta` Meta, required
    - `request_id` string
    - `timestamp` string, date-time

## Other responses

- `400`: Malformed arguments, missing explicit confirmation, or invalid digest
- `401`: Authentication required
- `403`: Insufficient scope, account ownership, or unsupported credential confinement
- `404`: Gate disabled or resource not found on this account
- `409`: State, replay, concurrency, or review conflict
- `422`: Unsupported deployment or unmet workflow prerequisite
- `503`: Failover service unavailable

---

[API](https://skmtc.dev/imprezahost/apis/impreza-host-public-api.md) · [All operations](https://skmtc.dev/imprezahost/apis/impreza-host-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/imprezahost/apis/impreza-host-public-api/revisions/db86511f604f?raw)
