---
title: "Get Excellence Catalogue"
method: GET
path: "/excellence-courses"
tags: ["excellence-courses"]
---

# Get Excellence Catalogue

`GET /excellence-courses`

## Request

- Base URL: `https://api.excellence-ai.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.excellence-ai.com/excellence-courses`
- Auth: OAuth 2 (password, token URL `api/login`)

The Cours Excellence of a level and subject, with the courses the
caller already made from each, then the chapters of the programme that
have none yet (`coming_soon`, in the programme's order). Also the level
and subject used (`grade_key` null: the caller has no known level, the
lists are empty) and, for each of the caller's levels, the number of
courses per subject (`levels`): what the app reads to decide whether to
show the Cours Excellence at all.

## Query parameters

- `grade_key` string, nullable: Level, as in `programmes`. Default: the caller's first level (a student's level, a teacher's most frequent class level this year)
- `subject` string, nullable: Subject, as in `programmes` (`maths`…). Default: all

## Response `200`

Successful Response

- ExcellenceCatalogueResponse
  - `available` ExcellenceCourseCard[], required
    - `key` string, required
    - `title` string, required
    - `grade_key` string, required
    - `subject` string, required
    - `programme_chapter` string, required
    - `pitch` string, required
    - `reading_minutes` integer, required
    - `video_count` integer, required
    - `interactive_count` integer, required
    - `flashcard_count` integer, required
    - `qcm_count` integer, required
    - `unit_count` integer, required
    - `sort_order` integer, required
    - `my_copy_course_ids` string[], required
  - `coming_soon` ComingSoonChapterResponse[], required
    - `programme_chapter` string, required
    - `title` string, required
  - `chapters` CatalogueChapterResponse[], required
    - `programme_chapter` string, required
    - `title` string, required
    - `course_key` string, nullable, required
  - `grade_key` string, nullable, required
  - `subject` string, nullable, required
  - `levels` LevelAvailabilityResponse[], required
    - `grade_key` string, required
    - `counts` object, required

## Other responses

- `422`: Validation Error

## Changes

> 55 revisions in range; 1 not diffed.

- **2026-10-15** `7925dd21e4d0`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/excellence-ai/apis/excellence-learning/changes/excellence-courses/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/379e4a57dee8?raw)
