---
title: "Restore an archived card"
method: POST
path: "/cards/{id}/restore"
---

# Restore an archived card

`POST /cards/{id}/restore`

## Request

- Base URL: `https://craaft.io/api/v1`
- URL: `https://craaft.io/api/v1/cards/{id}/restore`
- Auth: HTTP bearer

Puts an archived card back on its board, in the column and position
it was archived from. Restoring a card that isn't archived returns
404.

## Response `200`

The restored card

- Card
  - `id` string, uuid, required
  - `projectId` string, uuid, required
  - `column` string, required
  - `title` string, required
  - `description` string: Full body on GET /cards/{id}, PATCH, create, and /detail. Omitted from GET /projects/{id}/cards and lean SSE card.updated events (position-only moves).
  - `position` number, required
  - `dueDate` string, date-time, nullable
  - `assignedUserId` string, uuid, nullable
  - `assignedUserName` string, nullable
  - `size` integer, nullable: Optional integer size estimate; null when unset
  - `priority` 'low' | 'medium' | 'high' | 'urgent' | 'null', nullable
  - `createdBy` string, uuid, nullable
  - `createdByName` string, nullable
  - `updatedBy` string, uuid, nullable
  - `updatedByName` string, nullable
  - `attachmentCount` integer
  - `checklistDone` integer: Completed checklist items (denormalized count)
  - `checklistTotal` integer: Total checklist items (denormalized count)
  - `tags` string[]
  - `following` boolean: Whether the authenticated caller follows this card
  - `createdAt` string, date-time, required
  - `updatedAt` string, date-time, required

## Other responses

- `404`: Resource doesn't exist or caller isn't a member of its workspace

---

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