---
title: "Retrieve course student"
method: GET
path: "/course_students/{id}"
tags: ["Course students"]
---

# Retrieve course student

`GET /course_students/{id}`

Retrieves the details of an existing course student.

Required permissions:
 - `courses:read`
 - `course_analytics:read`

## Path parameters

- `id` string, required

## Response `200`

A successful response

- CourseStudent — An enrollment record for a student in a course, including progress and completion metrics.
  - `completed_lessons_count` integer, required — The total number of lessons this student has marked as completed in the course.
  - `completion_rate` number, required — The percentage of available lessons the student has completed, as a value from 0 to 100 rounded to two decimal places.
  - `course` object, required — The course this student is enrolled in.
    - `experience` object, required — The parent experience that this course belongs to.
      - `id` string, required — The unique identifier for the experience.
    - `id` string, required — The unique identifier for the course.
    - `title` string, nullable, required — The display name of the course shown to students. Null if no title has been set.
  - `first_interaction_at` string, date-time, required — The timestamp when the student first interacted with this course, as a Unix timestamp.
  - `id` string, required — The unique identifier for the course student type.
  - `last_interaction_at` string, date-time, required — The timestamp when the student most recently interacted with this course, as a Unix timestamp.
  - `total_lessons_count` integer, required — The total number of visible lessons available to this student in the course.
  - `user` object, required — The user profile of the enrolled student.
    - `id` string, required — The unique identifier for the user.
    - `name` string, nullable, required — The user's display name shown on their public profile.
    - `username` string, required — The user's unique username shown on their public profile.

## Other responses

- `400` — Bad request
- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not found
- `422` — Verification required
- `429` — Too many requests
- `500` — Internal server error

---

[API](https://skmtc.net/whop/apis/whop-api.md) · [All operations](https://skmtc.net/whop/apis/whop-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/whop/whop-api/versions/866821546d67/schema)
