---
title: "Promote (or merge) an Agent Smith review candidate (admin console)."
method: POST
path: "/smith/review/{id}/promote"
tags: ["Dojo"]
---

# Promote (or merge) an Agent Smith review candidate (admin console).

`POST /smith/review/{id}/promote`

## Request

- Base URL: `https://api.mnemom.ai/v1`
- URL: `https://api.mnemom.ai/v1/smith/review/{id}/promote`
- Auth: HTTP bearer

Moves an experimental candidate to `test` or `stable`, optionally renaming/retagging it. When `merge_into` is set the candidate is a DUPLICATE: it is deprecated and a `supersedes` edge (candidate → canonical) is recorded instead of being promoted. 400 when `to_status` is missing/invalid. Admin-only. MNE-817.

## Path parameters

- `id` string, required

## Request body

- object
  - `to_status` 'test' | 'stable', required: The terminal status to promote the candidate to.
  - `name` string: Optional rename.
  - `tactic` 'pretext' | 'authority-spoof' | 'injection' | 'rationalized-destruction' | 'exfiltration': Optional re-tactic.
  - `atlas_tags` string[]
  - `owasp_tags` string[]
  - `merge_into` string: When set, the candidate is a duplicate of this canonical technique id: deprecate + record a supersedes edge instead of promoting.

## Response `200`

The candidate's new status (promoted, or deprecated when merged).

- object
  - `id` string, required
  - `status` 'experimental' | 'test' | 'stable' | 'deprecated' | 'retired' | 'rejected', required
  - `merged_into` string: The canonical technique id, present only on a merge.

## Other responses

- `400`: Bad request
- `401`: Authentication required
- `403`: Forbidden
- `429`: Rate-limit exceeded. The global per-IP limiter (100 requests/minute, applied to every `/v1/*` route) rejected this request. Back off until the window resets — `Retry-After` carries the cooldown in seconds and `X-RateLimit-Reset` the absolute reset time.
- `500`: Server error — request was well-formed but the server failed to fulfill it. Typically a downstream dependency (DB / RPC / external API) returned an unexpected error.

---

[API](https://skmtc.dev/mnemom/apis/mnemom-api.md) · [All operations](https://skmtc.dev/mnemom/apis/mnemom-api/llms.txt) · [OpenAPI document](https://skmtc.dev/mnemom/apis/mnemom-api/revisions/274b7a6ea182?raw)
