---
title: "Get Followup"
method: GET
path: "/admin/csm/schools/{school_id}/followup"
tags: ["Admin - Suivi CSM"]
---

# Get Followup

`GET /admin/csm/schools/{school_id}/followup`

## Path parameters

- `school_id` string, required

## Query parameters

- `school_year` string, nullable

## Response `200`

Successful Response

- SchoolFollowupResponse
  - `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
  - `school_year` string, required
  - `is_pilot` boolean, required
  - `billing_rhythm` 'quarterly' | 'annual', required
  - `subjects` string[], required
  - `items` ChecklistItemResponse[], required
    - `key` string, required
    - `label` string, required
    - `short_label` string, required
    - `group` 'contract' | 'lists' | 'quote' | 'billing' | 'trainings' | 'documents', required
    - `state` 'done' | 'todo' | 'not_applicable', required
    - `entry` ChecklistEntryResponse
      - `key` string, required
      - `checked_at` string, date-time, required
      - `checked_by_id` string, required
      - `checked_by_name` string, required
    - `due_date` string, date, nullable
  - `done` integer, required
  - `applicable` integer, required
  - `contracts` ContractViewResponse[], required
    - `contract` 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
    - `enrolled` integer, nullable
    - `documents` ExpectedDocumentResponse[], required
      - `kind` string, required
      - `label` string, required
      - `covers` string, nullable
      - `status` 'signed' | 'paid' | 'sent' | 'upcoming' | 'missing', required
      - `issue_date` string, date, nullable
      - `due_date` string, date, nullable
      - `sent_at` string, date, nullable
      - `settled_at` string, date, nullable
      - `amount_eur` number, nullable
      - `extra_students` integer, nullable
  - `year_contract_ids` string[], required
  - `arr` number, nullable
  - `previous_arr` number, nullable
  - `owner` SchemasSchoolCsmAdminAccountResponse
    - `id` string, required
    - `name` string, required
    - `email` string, nullable
  - `enrolled` integer, required
  - `enrolled_by_segment` object, 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` UpsellResponse, required
    - `status` 'none' | 'discussion' | 'in_progress' | 'won' | 'lost', required
    - `leads` UpsellLeadBody[], required
      - `id` string, required
      - `kind` 'subjects' | 'classes' | 'levels' | 'other', required
      - `description` string, required
      - `amount_eur` number, nullable
      - `status` 'idea' | 'discussion' | 'won' | 'lost'
    - `potential_eur` number, required
    - `in_discussion_eur` number, required
  - `overage_opened_on` string, date, nullable
  - `overage_grace_until` string, date, nullable

## Other responses

- `400` — Malformed identifier
- `404` — Resource not found
- `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/:school_id/followup/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)
