---
title: "Edit a card, move it between decks, or flag it for rewriting"
method: PATCH
path: "/revise/cards/{id}"
tags: ["revise"]
---

# Edit a card, move it between decks, or flag it for rewriting

`PATCH /revise/cards/{id}`

## Request

- Base URL: `https://api.focusbear.io` (the document declares no server; this is the origin it was published from)
- URL: `https://api.focusbear.io/revise/cards/{id}`
- Auth: HTTP bearer

## Path parameters

- `id` string, required

## Request body

- UpdateReviseCardDto
  - `front` string
  - `back` string
  - `deck_id` string, uuid, nullable: null moves the card out of its deck
  - `needs_rewrite` boolean: true flags the card for rewriting; false is the same as keep
  - `expected_updated_at` string: The card's updated_at the edit was based on; a mismatch returns 409

## Response `200`

- ReviseCardResponseDto
  - `id` string, required
  - `deck_id` string, nullable, required
  - `front` string, required
  - `back` string, required
  - `source_type` 'manual' | 'note' | 'pdf' | 'anki' | 'algoapp' | 'file', required
  - `source_note_id` string, nullable, required
  - `source_label` string, nullable, required
  - `created_by` 'user' | 'ai', required
  - `needs_rewrite` boolean, required
  - `rewrite_flagged_at` string, nullable, required
  - `rewrite_resolved_at` string, nullable, required
  - `state` 'learning' | 'review' | 'relearning', required
  - `step` number, nullable, required
  - `stability` number, nullable, required
  - `difficulty` number, nullable, required
  - `due_at` string, required
  - `last_reviewed_at` string, nullable, required
  - `first_reviewed_at` string, nullable, required
  - `review_count` number, required
  - `lapse_count` number, required
  - `is_new` boolean, required: Never reviewed
  - `preview_due_at` RevisePreviewDueAtDto, required
    - `no_idea` string, required
    - `again` string, required
    - `hard` string, required
    - `good` string, required
    - `easy` string, required
  - `created_at` string, required
  - `updated_at` string, required
  - `deleted_at` string, nullable, required

## Other responses

- `409`: expected_updated_at did not match; the body carries the current card

---

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