Answer feedback

Warm, specific feedback on up to 20 learners' own-words answers, without marks.

  • Price1 credit (10p) per answer
  • Typical time10 s to 2 min
  • Scopelearning:write
  • Runs asA background job
Try it

Run answer feedback in the sandbox

No key and nothing to pay. The sandbox returns a realistic example in a couple of seconds; no AI runs and no data is kept.

  1. Queued202 and a job id, straight away
  2. ProcessingPoll, stream or wait for a webhook
  3. SucceededResult and files on the job
Every AI request runs as a background job, so nothing times out.

For each answer: a verdict (confident, nearly_there or keep_going), a short message and next_step, the key points covered (with the learner's exact words as evidence) and missing, any issues with a correction, an optional follow_up_question and a model_answer. Give expected answers or source_text to judge against your material; otherwise answers are judged against accepted knowledge of the topic. This is formative feedback: no marks are proposed and official_result is always false.

Requires learning:write. Costs 1 credit per answer. Send a unique Idempotency-Key; reuse it with the identical body when retrying. Returns 202 with a job: poll GET /jobs/{job_id}, stream GET /jobs/{job_id}/events, or use a signed webhook.

Answer feedback

POST/v1/answers/feedback

Scope learning:write

Headers

Answer feedback: headers
FieldDetails
Idempotency-KeystringRequiredA unique key per new operation; reuse it with the identical body when retrying.
EduMark-VersionenumAPI version. Defaults to the latest.One of 2026-10-21

Request body

Answer feedback: request body
FieldDetails
itemsarray of AnswerItemRequiredUp to 20 answers to check.1 to 20 items
iditems[].idstring, optionalYour id for this answer, echoed back. Defaults to its position ("1", "2", …).Up to 100 charactersPattern ^[A-Za-z0-9_.:-]+$
questionitems[].questionstringRequiredThe question the learner answered.Up to 4,000 characters
answeritems[].answerstringRequiredThe learner's answer, in their own words.Up to 12,000 characters
expecteditems[].expectedstring, optionalA model answer or the points you expect. Feedback is then judged against it.Up to 6,000 characters
topicstring, optionalWhat the questions are about.Up to 200 characters
source_textstring, optionalTeaching text the answers should agree with (at most 10,000 words).Up to 120,000 characters
standardenumHow strictly to judge. beginner: the main idea in everyday words is enough. intermediate: correct in substance. expert: accurate and precise, with the right terms.One of beginner, intermediate, expertDefault "intermediate"
languageenumThe language to write feedback in.One of English, Welsh, Irish, Gaelic, French, Spanish, German, Italian, Portuguese, Dutch, Polish, Arabic, Urdu, Hindi, Punjabi, Bengali, Chinese, Mandarin, Cantonese, Japanese, Korean, Russian, Turkish, Greek, Swedish, Norwegian, Danish, Finnish, Romanian, Hungarian, Czech, Ukrainian, Farsi, Persian, Hebrew, Swahili, Somali, Tamil, Gujarati, Vietnamese, Thai, Indonesian, Malay, Tagalog, LatinDefault "English"

Responses

StatusMeaning
202Successful Response
400Request rejected. Inspect error.code and request_id; failed work is not billed.
401Request rejected. Inspect error.code and request_id; failed work is not billed.
402Request rejected. Inspect error.code and request_id; failed work is not billed.
403Request rejected. Inspect error.code and request_id; failed work is not billed.
404Request rejected. Inspect error.code and request_id; failed work is not billed.
409Request rejected. Inspect error.code and request_id; failed work is not billed.
410Request rejected. Inspect error.code and request_id; failed work is not billed.
413Request rejected. Inspect error.code and request_id; failed work is not billed.
415Request rejected. Inspect error.code and request_id; failed work is not billed.
422Validation Error
429Request rejected. Inspect error.code and request_id; failed work is not billed.
503Request rejected. Inspect error.code and request_id; failed work is not billed.

Files and errors

Product errors

  • ANSWER_IDS_NOT_UNIQUEHTTP 422. Give every answer a different id, or leave the ids out.
  • INPUT_TOO_LARGEHTTP 422. Questions, answers and expected answers together support at most 10,000 words.
  • MODEL_RESULT_INVALIDOn the finished job. The generated material did not pass EduMark's checks. No charge was applied.
  • PROCESSING_UNAVAILABLEOn the finished job. Processing could not complete safely. No complete result was issued.