---
title: "Get School Students"
method: GET
path: "/admin/schools/{school_id}/students"
tags: ["Admin - Schools"]
---

# Get School Students

`GET /admin/schools/{school_id}/students`

Get all linked students for a school by traversing the associated teachers'
classes of one school year. Students are grouped so each student appears at
most once with all associated class names.

## Path parameters

- `school_id` string, required — The ID of the school

## Query parameters

- `school_year` string, nullable

## Response `200`

Successful Response

- SchoolStudentsResponse
  - `school_name` string, required
  - `email_domain` string, nullable
  - `school_year` string
  - `available_school_years` string[]
  - `student_count` integer, required
  - `students` SchoolStudentRow[], required
    - `student_id` string, required
    - `student_name` string, required
    - `email` string, nullable
    - `class_names` string[], required
    - `class_name` string, required

## Other responses

- `422` — Validation Error

## Changes

- **2026-09-09** `e75413b9576a` — 3 info
  - added the new optional `query` request parameter `school_year`
  - added the optional property `available_school_years` to the response with the `200` status
  - added the optional property `school_year` to the response with the `200` status
- **2026-09-02** `8d495ed916c6` — 2 breaking
  - the response property `email_domain` became optional for the status `200`
  - response property `email_domain` list-of-types was widened by adding types `null` to media type `application/json` of response `200`

[Change history](https://skmtc.dev/excellence-ai/apis/excellence-learning/changes/admin/schools/:school_id/students/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/2a0c1636fd3b?raw)
