Override a question's marks
curl --request PATCH \
--url https://api.evalezy.com/v1/submissions/{submissionId}/questions/{questionId} \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"awarded": 2.5,
"feedback": "Mentions mucus briefly; half credit for the third point.",
"reviewer": {
"ref": "TCH-031",
"name": "Mrs. Kavita Rao"
},
"reason": "Re-checked on student request"
}
'import requests
url = "https://api.evalezy.com/v1/submissions/{submissionId}/questions/{questionId}"
payload = {
"awarded": 2.5,
"feedback": "Mentions mucus briefly; half credit for the third point.",
"reviewer": {
"ref": "TCH-031",
"name": "Mrs. Kavita Rao"
},
"reason": "Re-checked on student request"
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
awarded: 2.5,
feedback: 'Mentions mucus briefly; half credit for the third point.',
reviewer: {ref: 'TCH-031', name: 'Mrs. Kavita Rao'},
reason: 'Re-checked on student request'
})
};
fetch('https://api.evalezy.com/v1/submissions/{submissionId}/questions/{questionId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{}{
"error": {
"code": "invalid_api_key",
"message": "The API key is not valid.",
"request_id": "req_4f9c2a7e1b3d4c8a9e6f0b2d5a7c1e3f"
}
}{
"error": {
"code": "insufficient_scope",
"message": "This API key lacks the evaluation:write scope.",
"request_id": "req_4f9c2a7e1b3d4c8a9e6f0b2d5a7c1e3f",
"details": {
"required_scope": "evaluation:write"
}
}
}{
"error": {
"code": "not_found",
"message": "The resource was not found.",
"request_id": "req_4f9c2a7e1b3d4c8a9e6f0b2d5a7c1e3f"
}
}{
"error": {
"code": "conflict",
"message": "The request conflicts with the current state.",
"request_id": "req_4f9c2a7e1b3d4c8a9e6f0b2d5a7c1e3f"
}
}{
"error": {
"code": "validation_failed",
"message": "questions[0].max_marks is required.",
"request_id": "req_4f9c2a7e1b3d4c8a9e6f0b2d5a7c1e3f",
"details": {
"errors": [
{
"field": "questions[0].max_marks",
"code": "required",
"message": "max_marks is required."
}
]
}
}
}{
"error": {
"code": "rate_limited",
"message": "Too many requests. Retry after 2 s.",
"request_id": "req_4f9c2a7e1b3d4c8a9e6f0b2d5a7c1e3f"
}
}Review
Override a question's marks
Sets a teacher’s marks and feedback for one question. awarded must be between 0 and the question’s max, in steps of 0.5 (422 invalid_marks). The reviewer and reason are shown in the dashboard. A finalized submission returns 409 submission_finalized.
Scope: evaluation:review
PATCH
/
submissions
/
{submissionId}
/
questions
/
{questionId}
Override a question's marks
curl --request PATCH \
--url https://api.evalezy.com/v1/submissions/{submissionId}/questions/{questionId} \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"awarded": 2.5,
"feedback": "Mentions mucus briefly; half credit for the third point.",
"reviewer": {
"ref": "TCH-031",
"name": "Mrs. Kavita Rao"
},
"reason": "Re-checked on student request"
}
'import requests
url = "https://api.evalezy.com/v1/submissions/{submissionId}/questions/{questionId}"
payload = {
"awarded": 2.5,
"feedback": "Mentions mucus briefly; half credit for the third point.",
"reviewer": {
"ref": "TCH-031",
"name": "Mrs. Kavita Rao"
},
"reason": "Re-checked on student request"
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
awarded: 2.5,
feedback: 'Mentions mucus briefly; half credit for the third point.',
reviewer: {ref: 'TCH-031', name: 'Mrs. Kavita Rao'},
reason: 'Re-checked on student request'
})
};
fetch('https://api.evalezy.com/v1/submissions/{submissionId}/questions/{questionId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{}{
"error": {
"code": "invalid_api_key",
"message": "The API key is not valid.",
"request_id": "req_4f9c2a7e1b3d4c8a9e6f0b2d5a7c1e3f"
}
}{
"error": {
"code": "insufficient_scope",
"message": "This API key lacks the evaluation:write scope.",
"request_id": "req_4f9c2a7e1b3d4c8a9e6f0b2d5a7c1e3f",
"details": {
"required_scope": "evaluation:write"
}
}
}{
"error": {
"code": "not_found",
"message": "The resource was not found.",
"request_id": "req_4f9c2a7e1b3d4c8a9e6f0b2d5a7c1e3f"
}
}{
"error": {
"code": "conflict",
"message": "The request conflicts with the current state.",
"request_id": "req_4f9c2a7e1b3d4c8a9e6f0b2d5a7c1e3f"
}
}{
"error": {
"code": "validation_failed",
"message": "questions[0].max_marks is required.",
"request_id": "req_4f9c2a7e1b3d4c8a9e6f0b2d5a7c1e3f",
"details": {
"errors": [
{
"field": "questions[0].max_marks",
"code": "required",
"message": "max_marks is required."
}
]
}
}
}{
"error": {
"code": "rate_limited",
"message": "Too many requests. Retry after 2 s.",
"request_id": "req_4f9c2a7e1b3d4c8a9e6f0b2d5a7c1e3f"
}
}Authorizations
Your institute's API key, vak_eval_ followed by 48 hex characters. An institute admin creates keys in the dashboard under Settings -> Integrations -> API keys.
Path Parameters
Submission id (UUID).
Question id (UUID).
Body
application/json
Response
OK