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

# Get Class Summary

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

The Résultats block (moyenne générale, médiane, the five most recent
activities) and the Élèves table (one row per student plus the CLASSE
aggregate), from one read of the class's activities.

Read WITHIN the period, unlike the mastery endpoint: "what did we do this
trimester" means the trimester. Table rows come back in roster order; the
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

- ClassSummaryResponse — The two blocks keep their own shapes, nested, so each section of the page reads the same object it did when they were separate endpoints.
  - `overview` ClassOverviewResponse, required — `weights` carries the coefficients so the frontend can render the "évaluations ×4, DM ×1, C.C. ×½" tooltip from the same constant the average was computed with, instead of restating the formula in French in a component. It is not there for the client to recompute anything.
    - `class_name` string, required
    - `period` string, required
    - `total_students` integer, required
    - `general_average` number, nullable
    - `general_median` number, nullable
    - `recent` SchemasClassDashboardOverviewRecentActivityResponse[], required
      - `activity_id` string, required
      - `activity_type` 'evaluation' | 'devoir' | 'cours' | 'controle', required
      - `title` string, required
      - `occurred_at` string, date-time, required
      - `starts_at` string, date-time, nullable
      - `ends_at` string, date-time, nullable
      - `target_id` string, nullable
      - `class_average` number, nullable
      - `reference_average` number, nullable
      - `trend` string, nullable
      - `completed_count` integer, required
      - `total_students` integer, required
    - `weights` object, required
  - `students` ClassStudentsTableResponse, required — 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

## Changes

> 24 revisions in range; 1 not diffed.

- **2026-09-25** `a8ae0e0c0570` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/excellence-ai/apis/excellence-learning/changes/teacher/classes/:class_id/dashboard/summary/get.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/b9758ca4fea6?raw)
