---
title: "Get Class Rework"
method: GET
path: "/teacher/classes/{class_id}/dashboard/rework"
tags: ["class_dashboard"]
---

# Get Class Rework

`GET /teacher/classes/{class_id}/dashboard/rework`

The savoir-faire from the period most worth a class-wide revision,
most widely missed first.

Windowed, not cumulative: the block is about recent work. An empty list is
a real answer — no class-level priority has emerged — not an error, and
`evaluated_students` is what lets the client say whether that is because
nothing was evaluated yet.

## Path parameters

- `class_id` string, required

## Query parameters

- `period` string, nullable — Selected period: t1 / t2 / t3 / this_week / this_month / vacances_ete / school_year. An unrecognised value falls back to the full school year rather than erroring, so a stale bookmark still renders.

## Response `200`

Successful Response

- ClassReworkResponse — An empty `skills` list means "no class-level priority has emerged yet", NOT "all is well" — most often the period simply has not been evaluated on enough students. `evaluated_students` is what lets the UI tell those two apart and say so. `students` indexes the strips exactly as in the mastery payload, so the same strip component renders both.
  - `period` string, required
  - `students` MasteryStudentResponse[], required
    - `student_id` string, required
    - `display_name` string, required
  - `skills` ReworkSkillResponse[], required
    - `savoir_faire_id` string, required
    - `name` string, required
    - `chapter` string, required
    - `class_mastery` number, required
    - `evaluated_count` integer, required
    - `struggling_count` integer, required
    - `priority` number, required
    - `cells` MasteryCellResponse[], required
      - `mastery` number, nullable
      - `bucket` 'a_reprendre' | 'en_progres' | 'maitrise' | 'non_traite', required
      - `correct` integer, required
      - `partial` integer, required
      - `wrong` integer, required
  - `mastery_threshold` number, required
  - `evaluated_students` integer, required

## Other responses

- `400` — Malformed identifier
- `403` — Not authorized for this resource
- `404` — Resource not found
- `422` — Validation Error

---

[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/a8ae0e0c0570?raw)
