---
title: "Undo the latest review (Markdown)"
method: POST
path: "/dev/cards/{cardId}/undo-review"
---

# Undo the latest review (Markdown)

`POST /dev/cards/{cardId}/undo-review`

## Request

- Base URL: `https://fluidrecall.com/api/v1`
- URL: `https://fluidrecall.com/api/v1/dev/cards/{cardId}/undo-review`
- Auth: one of:
  - HTTP bearer
  - HTTP dpop

Write. Same undo as POST /api/v1/cards/{cardId}/undo-review. Body may be {} or { reviewId }. Unknown keys are rejected. Restores dueAt. alreadyUndone is true on a second undo of that review. nothingToUndo is true when no active review remains. A retired card and a card in an archived deck are 404. The Markdown includes the prompt and does not include the answer.

## Path parameters

- `cardId` string, uuid, required

## Request body

- object
  - `reviewId` string, uuid

## Response `200`

Markdown receipt with dueAt, reviewId, alreadyUndone, and nothingToUndo. No answer.

## Other responses

- `400`: reviewId is not a uuid, or the body has extra fields.
- `401`: Missing or wrong token.
- `404`: No active card in an active deck for this token, or reviewId is not a review of that card.
- `409`: reviewId is not the latest active review, or the prior schedule cannot be restored.

---

[API](https://skmtc.dev/fluidrecall/apis/fluid-recall.md) · [All operations](https://skmtc.dev/fluidrecall/apis/fluid-recall/llms.txt) · [OpenAPI document](https://skmtc.dev/fluidrecall/apis/fluid-recall/revisions/7bf2563c3d2a?raw)
