---
title: "Retire evaluations"
method: POST
path: "/v0/admin/subscriptions/evaluation-retirements"
tags: ["Admin"]
---

# Retire evaluations

`POST /v0/admin/subscriptions/evaluation-retirements`

## Request

- Base URL: `https://docs.quivr.thevibecompany.co` (the document declares no server; this is the origin it was published from)
- URL: `https://docs.quivr.thevibecompany.co/v0/admin/subscriptions/evaluation-retirements`
- Auth: HTTP bearer

Explicitly abandon a bounded batch of pending evaluations pinned to the named evaluator whose latest error is evaluator_unavailable. Only the key's Organization and granted Corpora are considered. Live leases and withdrawals are left alone. Never migrate an intent, run another evaluator, create a Match or Delivery, or declare no_match. The terminal outcome is evaluator_retired. Each real retirement emits evaluation.retired in the intent's Corpus, with resource.kind=evaluation_retirement and resource.id=retirement_id. The immutable receipt records the reason, original identities and event ids, and is readable at the Location. A real key replay returns the original batch, including its original counts; another request or Corpus scope using that key is 409 idempotency_conflict. An empty real batch also reserves its key. dry_run selects without writes or reserving the key, and remaining reports how many unavailable intents would remain after that selection. Use new real keys for further batches and recheck live backlog counts after dispatch and leases settle. This action does not establish a policy for future intents. It deliberately discards potential alerts; restore the exact old implementation to drain without losing judgments. Requires plugins:admin.

## Request body

- EvaluationRetirementRequest
  - `key` string, required
  - `plugin_id` string, required
  - `version` string, required
  - `reason` string, required: The operator's explanation for deliberately abandoning these evaluations.
  - `dry_run` boolean, required
  - `limit` integer

## Response `200`

The dry-run preview or committed audit receipt

- EvaluationRetirement
  - `key` string, required
  - `plugin_id` string, required
  - `version` string, required
  - `reason` string, required
  - `dry_run` boolean, required
  - `limit` integer, required
  - `retirement_id` string, required
  - `created_at` string, date-time
  - `outcome` 'evaluator_retired', required
  - `items` RetiredEvaluation[], required
    - `subscription_id` string, required
    - `subscription_version_id` string, required
    - `sequence` integer, required: The original trigger's Organization journal position.
    - `corpus_id` string, required
    - `record_id` string, required
    - `record_version_id` string, required
    - `event_id` string: The evaluation.retired event; absent for a dry run.
  - `remaining` integer, required: Unavailable pending evaluations remaining in this request's scope, including leased ones.
  - `leased` integer, required: Unavailable pending evaluations skipped because their leases have not expired.

## Other responses

- `default`: Structured error; 400 malformed, 401 unauthenticated, 403 without plugins:admin, 404 not configured, 409 idempotency_conflict, 422 invalid_schema, invalid_input or invalid_limit, 503 storage unavailable.

---

[API](https://skmtc.dev/thevibecompany/apis/quivr-http-api.md) - [All operations](https://skmtc.dev/thevibecompany/apis/quivr-http-api/llms.txt) - [OpenAPI document](https://skmtc.dev/thevibecompany/apis/quivr-http-api/revisions/4f4e30ba8f4e?raw)
