---
title: "Get All Schools Analytics"
method: GET
path: "/admin/schools/analytics/all"
tags: ["Admin - Schools"]
---

# Get All Schools Analytics

`GET /admin/schools/analytics/all`

Get aggregated analytics for all schools, for one school year.
Returns summary statistics and per-school breakdowns.
Only accessible by admin users.

## Query parameters

- `weeks` integer
- `school_year` string, nullable

## Response `200`

Successful Response

- AllSchoolsAnalyticsResponse — Aggregated analytics for all schools
  - `total_schools` integer, required
  - `total_schools_in_trial` integer, required
  - `total_schools_in_pilot` integer, required
  - `total_schools_paid` integer
  - `total_schools_expired` integer
  - `total_teachers` integer, required
  - `total_students` integer, required
  - `total_exercises_completed` integer, required
  - `total_homework_exercises` integer, required
  - `total_chat_words` integer, required
  - `total_active_students_last_month` integer, required
  - `total_active_teachers_last_month` integer
  - `total_billed_students` integer
  - `teachers_by_segment` object
  - `schools` AllSchoolsAnalyticsItem[], required
    - `school_id` string, required
    - `school_name` string, required
    - `school_domain` string, nullable
    - `school_city` string, nullable
    - `contract_type` 'free' | 'pilot' | 'paid' | 'expired', required
    - `contract_end_date` string, date-time, nullable
    - `billed_students` integer, nullable
    - `owner_name` string, nullable
    - `has_gesture` boolean
    - `segments` string[]
    - `total_teachers` integer, required
    - `total_classes` integer, required
    - `total_students` integer, required
    - `total_exercises_completed` integer, required
    - `total_homework_exercises` integer, required
    - `total_chat_words` integer, required
    - `active_students_last_month` integer, required
    - `active_teachers_last_month` integer
  - `school_year` string, required
  - `available_school_years` string[]
  - `weeks_analyzed` integer, required
  - `analysis_start_date` string, date-time, required
  - `analysis_end_date` string, date-time, 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 required property `school_year` to the response with the `200` status
- **2026-09-02** `8d495ed916c6` — 2 breaking
  - the response property `schools/items/school_domain` became optional for the status `200`
  - response property `schools/items/school_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/analytics/all/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)
