---
title: "Recommend newCardsPerDay from a deadline (Markdown)"
method: POST
path: "/dev/plan/new-cards"
---

# Recommend newCardsPerDay from a deadline (Markdown)

`POST /dev/plan/new-cards`

## Request

- Base URL: `https://fluidrecall.com/api/v1`
- URL: `https://fluidrecall.com/api/v1/dev/plan/new-cards`
- Auth: one of:
  - HTTP bearer
  - HTTP dpop

Routine read. Markdown plan. Does not write. recommendedNewCardsPerDay is ceil(remaining / study days), not a default of 20. Call this before create when they have a deadline, and again after bulk card adds. Choose newCardsPerDay with the person for this deck. There is no default of 20. When they have a deadline, call previewDeadlinePlan first: it returns ceil(remaining new cards / study days) as a floor. Weigh study time (more time, a higher number), that deadline floor, and card complexity (tiny facts such as times tables can be higher; a beefy card such as the five steps of a cycle must be lower). You may raise N above the floor or negotiate more study time. Send that integer. After bulk card adds, re-run previewDeadlinePlan with that deckId and consider applyDeadlinePlan or updateDeck. 0 introduces no new cards unless the caller asks for extras.

## Request body

- object
  - `deadline` string, required
  - `asOf` string
  - `timezone` string
  - `dayBoundaryHour` integer
  - `remainingNewCards` integer
  - `totalCards` integer
  - `alreadyLearned` integer
  - `skipWeekends` boolean
  - `studyDaysPerWeek` integer
  - `bufferStudyDays` integer
  - `currentNewCardsPerDay` integer, nullable
  - `deckId` string, uuid

## Response `200`

Markdown deadline plan. No cards.

## Other responses

- `400`: Invalid JSON or fields.
- `401`: Missing or wrong token.
- `404`: No deck with that id for this token.

---

[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)
