---
title: "Close a template's working life"
method: POST
path: "/dashboards/v3/templates/admin/{slug}/retire"
tags: ["Dashboard v3 Template Admin"]
---

# Close a template's working life

`POST /dashboards/v3/templates/admin/{slug}/retire`

## Request

- Base URL: `https://app.mammoth.io/api/v2`
- URL: `https://app.mammoth.io/api/v2/dashboards/v3/templates/admin/{slug}/retire`
- Auth: one of:
  - HTTP bearer
  - API key in header `X-API-KEY` and API key in header `X-API-SECRET` and API key in header `X-WORKSPACE-ID`

Keeps the row and everything behind it — the dashboard, the canvas, the apply count — and stops the catalog offering it or asking about it. The third state beside draft and live, for the row that had no exit: `discard` is permanent and takes the template, its preview board and the record that anyone used it — the boards people built from it are their own copies and keep working — so a curated row that will never be fixed and that nobody wants deleted reported the same fault on every audit run forever, and a check that is always red stops being read.

Reversible: `unpublish` returns a retired row to draft, which is the same door that means “return this row to draft” from live. Refused on a row the catalog does not own, and on one that is already retired.

## Path parameters

- `slug` string, required

## Response `200`

The affected template row, and what else the change did

- AdminRowResponse
  - `template` object, required
  - `notes` string[]

## Other responses

- `201`: Document created, URL follows
- `400`: Bad request syntax or unsupported method
- `403`: Request forbidden -- authorization will not help

---

[API](https://skmtc.dev/mammoth/apis/mammoth-analytics.md) · [All operations](https://skmtc.dev/mammoth/apis/mammoth-analytics/llms.txt) · [OpenAPI document](https://skmtc.dev/mammoth/apis/mammoth-analytics/revisions/fe078afe239b?raw)
