Answer a practice card
Records the user's answer to one card from the session as an FSRS review, schedules the card's next due time, and counts toward the daily goal and the streak, exactly like an answer in the app. Show the term, let the user answer, reveal the definition, then send how well they recalled it. Answering the same itemId again with the same rating records nothing and returns replayed: true, so a retry is safe. remaining says how many cards from the last read are left; at 0, call getPracticeSession.
Required scopes: activity:create
AuthorizationBearer <token>sessionId*stringPractice session id from startPracticeSession, scoped to the key's user.
^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$uuidIdempotency-Key?stringA 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 <= 255application/json- body
itemId*stringitemId of a card from getPracticeSession.
^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$uuidrating*stringHow well the user recalled the card: again (forgot), hard, good or easy. Ask the user, or judge their answer against the definition.
"again""hard""good""easy"durationMs*integerTime the user spent on the card, 0-600000 ms. Stored in whole seconds, and counted by the daily minutes goal.
0 <= value <= 600000This item was already answered. The body has replayed: true.
application/json- response
data*curl -X POST 'https://workroad.app/api/v1/practice-sessions/497f6eca-6276-4993-bfeb-53cbbbba6f08/answers' \ -H 'Authorization: Bearer $WORKROAD_API_KEY' \ -H 'Content-Type: application/json' \ -d '{ "itemId": "f11b669d-7201-4c21-88af-d85092f0c005", "rating": "again", "durationMs": 0}'{ "data": { "itemId": "1e2d3c4b-5a69-4788-9a0b-1c2d3e4f5a6b", "cardId": "3e2d1c0b-9a8f-4e7d-8c6b-5a4f3e2d1c0b", "recorded": "review", "replayed": false, "queue": "review", "due": "2026-02-05T12:00:00.000Z", "suspended": false, "remaining": 0 }}