---
title: "Create Exercise Rubric"
method: POST
path: "/teacher/exercises/{exercise_id}/rubric"
tags: ["rubrics"]
---

# Create Exercise Rubric

`POST /teacher/exercises/{exercise_id}/rubric`

## Request

- Base URL: `https://api.excellence-ai.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.excellence-ai.com/teacher/exercises/{exercise_id}/rubric`
- Auth: OAuth 2 (password, token URL `api/login`)

## Path parameters

- `exercise_id` string, required

## Response `201`

Successful Response

- RubricResponse: Minimal: drops `exercise_id` (lives in the URL) and `exercise_collection` / `created_at` (frontend doesn't read them today). `author` is flattened to a Literal to avoid leaking prompt ids / user ids. `scoring_scheme` is appended last and is derived, never stored — a new bundle reads it to decide which shape to render; an old one ignores it.
  - `id` string, required
  - `questions` RubricQuestionResponse[], required
    - `question_text` string, required
    - `skills` SkillRef[], required
      - `savoir_faire_id` string, required
      - `name` string, required
      - `description` string, required
    - `criteria` string[], required
    - `points` number, nullable
    - `expected_result` string, nullable
  - `author_type` 'ai' | 'human', required
  - `scoring_scheme` 'criteria' | 'points'

## Other responses

- `400`: Malformed identifier
- `403`: Not authorized for this resource
- `404`: Resource not found
- `409`: Business rule violated
- `422`: Validation Error

## Changes

> 55 revisions in range; 1 not diffed.

- **2026-09-22** `05e048df94c6`: 3 info
  - added the optional property `questions/items/expected_result` to the response with the `201` status
  - added the optional property `questions/items/points` to the response with the `201` status
  - added the optional property `scoring_scheme` to the response with the `201` status

[Operation history](https://skmtc.dev/excellence-ai/apis/excellence-learning/changes/teacher/exercises/:exercise_id/rubric/post.md)

---

[API](https://skmtc.dev/excellence-ai/apis/excellence-learning.md) - [All operations](https://skmtc.dev/excellence-ai/apis/excellence-learning/llms.txt) - [OpenAPI document](https://skmtc.dev/excellence-ai/apis/excellence-learning/revisions/379e4a57dee8?raw)
