---
title: "Withdraw an approval request"
method: POST
path: "/v1/approvals/{id}/withdraw"
tags: ["approvals"]
---

# Withdraw an approval request

`POST /v1/approvals/{id}/withdraw`

## Request

- Base URL: `https://api.brixsignage.com`
- URL: `https://api.brixsignage.com/v1/approvals/{id}/withdraw`
- Auth: HTTP bearer

Cancel your own pending approval request. The content it was attached to returns to draft status.

**Notes.**
- The content's review state goes back to `draft`.

## Path parameters

- `id` string, required

## Response `200`

Success.

- object
  - `data` ApprovalRequest, required: A request to approve content before it can air.
    - `id` string, required: Approval request id.
    - `contentKind` string, required: `playlist`, `schedule`, `creative`, `layout`, `creative-override`, `media`, `app`, …
    - `contentId` string, required
    - `contentName` string, required
    - `thumbnailUrl` string, nullable, required
    - `nodeId` string, required: The content's home location; empty string for the workspace root.
    - `nodeName` string, required
    - `requestedByName` string, required
    - `requestedAt` string, required: ISO-8601 timestamp (UTC).
    - `note` string, nullable, required
    - `changes` unknown[], required: What changed since the last approved version: `{kind, label, detail, thumbnailUrl?}` items for kinds the server diffs; for other kinds, whatever the requester sent.
      - unknown
    - `state` 'pending' | 'approved' | 'rejected' | 'withdrawn', required
    - `requestedById` string, required: User id, or `apikey:<id>` for a key.
    - `levels` object[], required: The approval chain, one entry per tier.
      - `nodeId` string, required
      - `nodeName` string, required
      - `approverIds` string[], required
      - `approverNames` string[], required
    - `currentLevel` integer, required: Index into `levels` awaiting a decision while pending.
    - `decisions` object[], required
      - `level` integer, required
      - `decidedById` string, required
      - `decidedByName` string, nullable, required
      - `decidedAt` string, required: ISO-8601 timestamp (UTC).
      - `note` string, nullable, required
    - `decidedByName` string, nullable, required
    - `decidedAt` string, nullable, required: ISO-8601 timestamp (UTC).
    - `decisionNote` string, nullable, required

## Other responses

- `401`: Missing, expired or revoked bearer token.
- `403`: You are not the requester, and not an approver for the current level.
- `404`: No such request.
- `409`: `already_decided`: the request is no longer pending.
- `5XX`: Server error. The body carries a `requestId` to quote to support.

---

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