Skip to content

Create a rubric

client.rubrics.create(RubricCreateParams { title, criteria, tags } body, RequestOptionsoptions?): RubricResponse { id, created_at, created_by, 7 more }
POST/v5/rubrics

Create a rubric, optionally with its initial criteria in the same request.

The rubric is created for the caller’s account at version 1. If the optional criteria field is supplied it must contain at least one entry, and each entry is created as a criterion attached to the new rubric; omit it to create an empty rubric and add criteria later via the criteria endpoint. The response returns the created rubric together with the full detail of any criteria created in this call.

ParametersExpand Collapse
body: RubricCreateParams { title, criteria, tags }
title: string

The rubric title

minLength1
criteria?: Array<RubricCriteriaInput { title, annotations, weight } >

Initial criteria to create with the rubric

title: string

The Criteria text

minLength1
annotations?: Record<string, unknown>

Free-form metadata for the Criteria

weight?: number

Weight multiplier for scoring

minimum0
tags?: Array<string>

The tags associated with the entity

ReturnsExpand Collapse
RubricResponse { id, created_at, created_by, 7 more }
id: string
created_at: string
formatdate-time
created_by: Identity { id, type, object }

The identity that created the entity.

id: string
type: "user" | "service_account"
One of the following:
"user"
"service_account"
object?: "identity"
tags: Array<string> | null

The tags associated with the entity

title: string
version: number
archived_at?: string
formatdate-time
criteria?: Array<RubricCriteriaResponse { id, created_at, rubric_id, 5 more } | RubricCriteriaSummaryResponse { title, weight } >

Full criteria on get, summary (title + weight) on list

One of the following:
RubricCriteriaResponse { id, created_at, rubric_id, 5 more }
id: string
created_at: string
formatdate-time
rubric_id: string
title: string
version: number
annotations?: Record<string, unknown>
object?: "rubric_criteria"
weight?: number
RubricCriteriaSummaryResponse { title, weight }

Slim criteria projection for list endpoints (title + weight only).

title: string
weight?: number
object?: "rubric"
updated_at?: string
formatdate-time

Create a rubric

import SGPClient from 'scale-gp';

const client = new SGPClient({
  accountID: 'My Account ID',
  apiKey: process.env['SGP_API_KEY'], // This is the default and can be omitted
});

const rubricResponse = await client.rubrics.create({ title: 'x' });

console.log(rubricResponse.id);
{
  "id": "id",
  "created_at": "2019-12-27T18:11:19.117Z",
  "created_by": {
    "id": "id",
    "type": "user",
    "object": "identity"
  },
  "tags": [
    "string"
  ],
  "title": "title",
  "version": 0,
  "archived_at": "2019-12-27T18:11:19.117Z",
  "criteria": [
    {
      "id": "id",
      "created_at": "2019-12-27T18:11:19.117Z",
      "rubric_id": "rubric_id",
      "title": "title",
      "version": 0,
      "annotations": {
        "foo": "bar"
      },
      "object": "rubric_criteria",
      "weight": 0
    }
  ],
  "object": "rubric",
  "updated_at": "2019-12-27T18:11:19.117Z"
}
Returns Examples
{
  "id": "id",
  "created_at": "2019-12-27T18:11:19.117Z",
  "created_by": {
    "id": "id",
    "type": "user",
    "object": "identity"
  },
  "tags": [
    "string"
  ],
  "title": "title",
  "version": 0,
  "archived_at": "2019-12-27T18:11:19.117Z",
  "criteria": [
    {
      "id": "id",
      "created_at": "2019-12-27T18:11:19.117Z",
      "rubric_id": "rubric_id",
      "title": "title",
      "version": 0,
      "annotations": {
        "foo": "bar"
      },
      "object": "rubric_criteria",
      "weight": 0
    }
  ],
  "object": "rubric",
  "updated_at": "2019-12-27T18:11:19.117Z"
}