---
title: "List Schools"
method: GET
path: "/admin/csm/schools"
tags: ["Admin - Suivi CSM"]
---

# List Schools

`GET /admin/csm/schools`

## Query parameters

- `school_year` string, nullable

## Response `200`

Successful Response

- CsmSchoolListResponse
  - `school_year` string, required
  - `tasks_availability` 'ok' | 'disabled' | 'unauthorized' | 'error', required
  - `checklist` ChecklistDefinitionResponse[], required
    - `key` string, required
    - `label` string, required
    - `short_label` string, required
    - `group` 'contract' | 'lists' | 'quote' | 'billing' | 'trainings' | 'documents', required
  - `schools` CsmSchoolRowResponse[], required
    - `school` CsmSchoolResponse, required
      - `id` string, required
      - `name` string, required
      - `city` string, nullable
      - `email_domain` string, nullable
      - `uai` string, nullable
      - `attio_company_id` string, nullable
      - `attio_web_url` string, nullable
      - `logo_data_url` string, nullable
    - `year_contracts` CsmContractResponse[], required
      - `id` string, required
      - `contract_type` 'pilot' | 'paid', required
      - `start_date` string, date, required
      - `end_date` string, date, nullable
      - `billed_students` integer, nullable
      - `price_per_student_monthly_eur` number, nullable
      - `free_months` integer
      - `levels` string[], required
      - `covered_levels` string[], required
      - `billing_rhythm` 'quarterly' | 'annual', required
      - `contract_months` integer, nullable
      - `billed_months` integer, nullable
      - `amount_eur` number, nullable
      - `school_year` string, required
      - `owner_admin_id` string, nullable
      - `referent_name` string, nullable
      - `referent_email` string, nullable
      - `referent_role` string, nullable
      - `pennylane_url` string, nullable
    - `owner` SchemasSchoolCsmAdminAccountResponse
      - `id` string, required
      - `name` string, required
      - `email` string, nullable
    - `arr` number, nullable
    - `previous_arr` number, nullable
    - `billed_students` integer, nullable
    - `item_states` object, required
    - `item_entries` object, required
    - `done` integer, required
    - `applicable` integer, required
    - `billing_chips` BillingChipResponse[], required
      - `key` string, required
      - `status` 'signed' | 'paid' | 'sent' | 'upcoming' | 'missing', required
    - `health_override` HealthOverrideResponse
      - `value` 'good' | 'watch' | 'risk', required
      - `reason` string, required
      - `valid_until` string, date, required
      - `set_by_name` string, required
      - `set_at` string, date-time, required
    - `upsell_status` 'none' | 'discussion' | 'in_progress' | 'won' | 'lost', required
    - `upsell_potential_eur` number, required
    - `next_task` CsmTaskResponse
      - `id` string, required
      - `content` string, required
      - `deadline` string, date-time, nullable
      - `is_completed` boolean, required
      - `completed_at` string, date-time, nullable
      - `assignees` TaskAssigneeResponse[], required
        - `member_id` string, required
        - `name` string, required
        - `email` string, nullable
      - `school_id` string, nullable
      - `school_name` string, nullable
    - `pending_recap_1m` boolean, required

## Other responses

- `422` — Validation Error

## Changes

> 33 revisions in range; 1 not diffed.

- **2026-10-06** `59dba414f8ae` — 1 info
  - endpoint added

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