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

# Get Class Students Table

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

One row per student plus the CLASSE aggregate.

Rows come back in roster order; the table's column sorting is client-side,
so changing sort does not re-request.

## 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

- ClassStudentsTableResponse — Completion ratios are 0..1, null when nothing of that type was assigned — the strip renders "—" rather than "0 %", which would read as the class failing to do work nobody gave them.
  - `class_name` string, required
  - `period` string, required
  - `rows` StudentRowResponse[], required
    - `student_id` string, required
    - `display_name` string, required
    - `general` number, nullable
    - `by_type` object
    - `devoirs_done` integer, required
    - `devoirs_assigned` integer, required
    - `evaluations_done` integer, required
    - `evaluations_assigned` integer, required
    - `controles_done` integer, required
    - `controles_assigned` integer, required
    - `autonomy_exercises` integer, required
    - `last_activity` string, date-time, nullable
    - `flag` 'never' | 'stale', nullable
  - `class_row` ClassRowResponse
    - `general_mean` number, nullable
    - `general_median` number, nullable
    - `by_type_mean` object
    - `by_type_median` object
    - `devoirs_done_mean` number, nullable
    - `devoirs_assigned` integer, required
    - `controles_done_mean` number, nullable
    - `controles_assigned` integer, required
    - `autonomy_mean` number, nullable
    - `autonomy_median` number, nullable
  - `total_students` integer, required
  - `active_students` integer, required
  - `evaluation_completion` number, nullable
  - `devoir_completion` number, nullable
  - `controle_completion` number, nullable
  - `weights` object, 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-service-production.skmtc.workers.dev/v1/apis/excellence-ai/excellence-learning/revisions/ef67479ed898/schema)
