---
title: "Exclui uma categoria (com confirmação)"
method: DELETE
path: "/api/v1/categories/{id}"
tags: ["Categorias", "Escrita e desfazer"]
---

# Exclui uma categoria (com confirmação)

`DELETE /api/v1/categories/{id}`

## Request

- Base URL: `https://snabber.com.br`
- URL: `https://snabber.com.br/api/v1/categories/{id}`
- Auth: HTTP bearer

Com transações, exige `reassign_to` (nome da categoria que as recebe). Com subcategorias, exige `unparent_children=true`. Categorias especiais do app não podem ser excluídas.

## Path parameters

- `id` integer, required

## Query parameters

- `workspace_id` integer
- `reassign_to` string
- `unparent_children` boolean

## Headers

- `X-Confirmation-Token` string

## Response `200`

Feito

- DeleteResult
  - `status` string
  - `undo_id` integer
  - `deleted` integer

## Other responses

- `401`: Chave de API ausente, inválida, revogada ou expirada
- `403`: `INSUFFICIENT_SCOPE` (chave sem a permissão de escrita/exclusão), `WORKSPACE_READ_ONLY` (seu papel no workspace é somente leitura) ou `TRANSACTION_QUOTA_EXCEEDED` (cota mensal de transações)
- `409`: Nada foi gravado: a ação precisa de confirmação. O corpo traz `preview` e `confirmation_token`; repita a mesma requisição com o header `X-Confirmation-Token` (vale 5 minutos, uma vez). Também usado para `INVALID_CONFIRMATION`, `STALE_CONFIRMATION` (os dados mudaram desde o preview) e conflitos como duplicata.
- `422`: Dados inválidos (`details.field` diz qual), conta inexistente no workspace (`details.available`), etc.
- `429`: Limite de requisições ou teto diário de escrita da chave (`DAILY_WRITE_LIMIT`)
- `503`: Escrita pela API temporariamente desativada (`WRITES_DISABLED`)

---

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