Grade a flashcard
Records one review of a card from the review queue and schedules its next due time. Only a card the queue would serve now can be graded. Sending the same reviewId again grades nothing and returns status 200 with replayed: true and the card's current schedule, even when the card is no longer due. Reviews count toward the user's streak like reviews in the app.
Required scopes: activity:create
In: header
Header Parameters
A client-generated key (1 to 255 visible ASCII characters) that makes this POST safe to retry. A retry with the same key and body replays the original response; the same key with a different body returns 409 idempotency_conflict. Stored for 24 hours.
^[\x21-\x7E]{1,255}$1 <= length <= 255Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/reviews" \ -H "Content-Type: application/json" \ -d '{ "reviewId": "341516c7-7748-4edf-830d-9d7fcae997b7", "cardId": "f16ba382-eb42-481a-b08f-c57bdc9aae24", "rating": "again", "durationMs": 0 }'{ "data": { "reviewId": "9d8c7b6a-5f4e-4d3c-9b2a-1f0e9d8c7b6a", "cardId": "3e2d1c0b-9a8f-4e7d-8c6b-5a4f3e2d1c0b", "replayed": false, "queue": "review", "due": "2026-02-05T12:00:00.000Z", "suspended": false }}