Submit a practice test attempt
Ends the attempt and grades it. Multiple choice, true/false and fill-in answers are graded at once. Short answers go to AI grading, which counts as an AI use, and gradingJobId is its job. Grading never refuses a submit: when AI grading can't start, for example because the month's AI uses are spent, the attempt is still submitted with gradingQueued false and gradingStatus failed, and the user marks the short answers themselves in the app. Submitting again changes nothing and returns alreadySubmitted true.
Required scopes: tests:attempt
In: header
Path Parameters
Practice test attempt id, 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)$uuidHeader 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
curl -X POST "https://example.com/attempts/497f6eca-6276-4993-bfeb-53cbbbba6f08/submit" \ -H "Content-Type: application/json" \ -d '{}'{ "data": { "alreadySubmitted": false, "gradingQueued": true, "gradingJobId": "7d6c5b4a-3f2e-4d1c-8b0a-9f8e7d6c5b4a" }}