Skip to main content
POST
Add a rubric criterion
Step 2 of 3 in Create a rubric. Call it once per criterion.

Rules

  • name, maxScore, minScore, and scoringLogic are required. description is optional.
  • maxScore and minScore are strings, not numbers, and each holds at most 10 characters. "5 Star", "Level 4", and "10" are all valid.
  • scoringLogic is a list of bands. Every band needs both a score label and a scoringLogic sentence. Write one band for each score the criterion can award.
  • Keep the trailing slash on the path. Without it the API redirects, and most HTTP clients drop the request body when they follow a redirect.
  • A rubric holds at most 20 criteria. The 21st returns 400 with Maximum rubric criteria limit reached.
The response is the whole rubric, not the criterion you just added. Your new criterion is the last item in rubricCriteria; read its id from there.
The grading model reads your band labels and reports one of them back as the student’s level, so keep the wording conventional and consistent: 5 Star down to 1 Star, or Level 4 down to Level 1. Describe what a student did to earn a band, not what the grader should do.

Next step

Add a rubric to an assignment

Attach the finished rubric to an assignment’s model answer sheet with rubricId.

Authorizations

Authorization
string
header
required

Access token from Get an access token.

Path Parameters

id
string<uuid>
required

Unique ID of the rubric, from Create a rubric or List rubrics.

Body

application/json
name
string
required

What this criterion measures.

Example:

"Grammar and mechanics"

maxScore
string
required

Highest score this criterion can award. A string, not a number, so 5 Star and 10 are both valid. At most 10 characters.

Maximum string length: 10
Example:

"5 Star"

minScore
string
required

Lowest score this criterion can award. A string, not a number. At most 10 characters.

Maximum string length: 10
Example:

"1 Star"

scoringLogic
object[]
required

One band per score the criterion can award, from maxScore down to minScore. Every band needs both score and scoringLogic.

description
string

Optional longer explanation of the criterion.

Example:

"Spelling, punctuation, and sentence construction."

Response

The criterion was added. The body is the whole rubric, with the new criterion last in rubricCriteria.

A rubric and all of its criteria.

id
string<uuid>

Unique ID of the rubric. Send it as rubricId when you attach the rubric to an assignment.

Example:

"2b973c83-2830-4712-87b7-64a8c0a99035"

name
string

Name of the rubric.

Example:

"Grade 5 English homework"

description
string | null

Longer explanation of the rubric. null if you did not send one.

Example:

"Grades handwritten English homework on grammar and clarity."

rubricCriteria
object[]

Every criterion on this rubric, oldest first. Empty until you add one.

createdAt
string<date-time>
Example:

"2026-03-27T11:30:18.402117Z"

modifiedAt
string<date-time>
Example:

"2026-03-27T11:30:18.402145Z"