## Create a rubric

**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.

### Body Parameters

- `title: string`

  The rubric title

- `criteria: optional array of RubricCriteriaInput`

  Initial criteria to create with the rubric

  - `title: string`

    The Criteria text

  - `annotations: optional map[unknown]`

    Free-form metadata for the Criteria

  - `weight: optional number`

    Weight multiplier for scoring

- `tags: optional array of string`

  The tags associated with the entity

### Returns

- `RubricResponse object { id, created_at, created_by, 7 more }`

  - `id: string`

  - `created_at: string`

  - `created_by: Identity`

    The identity that created the entity.

    - `id: string`

    - `type: "user" or "service_account"`

      - `"user"`

      - `"service_account"`

    - `object: optional "identity"`

      - `"identity"`

  - `tags: array of string`

    The tags associated with the entity

  - `title: string`

  - `version: number`

  - `archived_at: optional string`

  - `criteria: optional array of RubricCriteriaResponse or RubricCriteriaSummaryResponse`

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

    - `RubricCriteriaResponse object { id, created_at, rubric_id, 5 more }`

      - `id: string`

      - `created_at: string`

      - `rubric_id: string`

      - `title: string`

      - `version: number`

      - `annotations: optional map[unknown]`

      - `object: optional "rubric_criteria"`

        - `"rubric_criteria"`

      - `weight: optional number`

    - `RubricCriteriaSummaryResponse object { title, weight }`

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

      - `title: string`

      - `weight: optional number`

  - `object: optional "rubric"`

    - `"rubric"`

  - `updated_at: optional string`

### Example

```http
curl https://api.egp.scale.com/v5/rubrics \
    -H 'Content-Type: application/json' \
    -H "x-api-key: $SGP_API_KEY" \
    -d '{
          "title": "x"
        }'
```

#### Response

```json
{
  "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"
}
```
