Upload an exam answer sheet
Attach a student’s answer sheet pages, then submit them so the AI grades them against the model answers.
isFinal to submit.Rules
- Send exactly one of
documents,fileUrl, orisFinalper request. - Files must be
.pdf,.jpg,.jpeg, or.png, and at most 20 MB each. - Declare each file’s type in its multipart part:
application/pdf,image/jpeg, orimage/png. The API reads the part’sContent-Type, not the file name. Most other values are rejected with400 Invalid file type, but the Word.docxtype is not, so do not send one by accident. - A PDF can have at most 50 pages, and a sheet takes one PDF. You cannot mix a PDF with images.
- Upload images in page order. You can send them in one call or across several, and each call adds to what is there.
- Every uploaded file goes through a readability check. A page the checker cannot read is rejected with
400, so scan or photograph pages in good light. The400occasionally arrives with an empty message: treat it as a rejected file and upload the page again. AfileUrlskips the check. - Send
{"isFinal": true}once all the pages are uploaded. That starts evaluation.
200 and quietly ignores the files. Submitting a sheet with no files returns 404 No documents found for this answer sheet, not 400.How to know when it’s done
The response has nostatus field of its own. Two things tell you where evaluation is:
exam_evaluation_student_answer_sheet_evaluation. See Async jobs and webhooks.
Next step
Get exam scores for review
Authorizations
Access token from Get an access token. A missing, invalid, or expired token returns 403.
Path Parameters
The exam id returned by Create an exam. Write it in lowercase: this path only matches lowercase hexadecimal characters and hyphens.
"d19e6868-98dd-4274-a2a5-4a616dd93ea7"
The answer sheet id returned by Create an exam answer sheet.
"8a2f4c1e-5b3d-4e6f-9a7b-0c1d2e3f4a5b"
Body
Scans or photos of the student's answer sheet. One .pdf of up to 50 pages, or any number of .jpg and .png images, in page order. Up to 20 MB per file. Each part's Content-Type decides the file type, so declare application/pdf, image/jpeg, or image/png. No mixing a PDF with images, and one PDF per sheet.
Public HTTPS link to a PDF instead of an upload. The API fetches it and rejects anything that does not start with %PDF.
"https://example.com/sheets/s-2043.pdf"
Send true to submit the sheet for evaluation. Send it on its own. In a multipart request any value, including false, submits the sheet, so leave the field out until you mean it.
Response
The answer sheet was updated. With isFinal=true, evaluation has started.
One student's answer sheet. It never reports a status of its own.
The answer sheet ID.
Files attached to the answer sheet, oldest first.
Your own student reference.
Your own school or institute reference.
Your own teacher reference.
Your own parent reference.