---
title: "Get Student Recommendations"
method: GET
path: "/student-practice/recommendations"
tags: ["student_practice"]
---

# Get Student Recommendations

`GET /student-practice/recommendations`

## Query parameters

- `subject` 'maths' | 'physique-chimie', nullable — Scope recommendations to ONE matière (teacher-in-student-mode / legacy scoped surfaces). Omitted → unified: every matière the student has history in gets at least one card, with the three kinds kept distinct whenever the buckets allow.

## Response `200`

Successful Response

- StudentRecommendationsResponse — `eligible=false` → the student has no exercise history yet; the frontend shows the explanatory empty state ("fais un premier exercice ou discute avec le chat"). `subjects` lists the matières the student has history in (primary = most recently worked first); `sessions` holds up to three cards, aiming at the three kinds (three colors) with the matières alternating so every matière with history gets at least one.
  - `eligible` boolean, required
  - `subjects` string[]
  - `sessions` RecommendedSessionOut[]
    - `id` string, required
    - `kind` 'resume' | 'consolidate' | 'stretch', required
    - `subject` 'maths' | 'physique-chimie', required
    - `recent_chapter` string, nullable
    - `exercises` RecommendedExerciseOut[], required
      - `id` string, required
      - `title` string
      - `content` string
      - `category_path` string[]
      - `chapter` string, nullable
      - `difficulty` string
      - `estimated_minutes` integer

## Other responses

- `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/8d495ed916c6/schema)
