Skip to main content
The Students Operational Control Panel lists students across programmes with their overall case-study count, status, and last-seen activity, and drills into a single student’s per-case-study attempt history. Granting and revoking attempts reuse the Attempts endpoints; transcripts and reports reuse the Student Performance endpoints.

List Students

GET /v1/console/students
Returns one row per student, enriched with programme(s), the number of case studies assigned via the student’s programme(s), account status, and the most recent session activity (“last seen”).

Authentication

Requires USER_MANAGEMENT.can_view permission.

Query parameters

Search by first name, last name, full name, or email (case-insensitive, partial match).
programme
string
Filter by programme code (matches students enrolled in that programme).
status
string
Filter by account status: active or inactive.
start_date
datetime
Filter by last-seen activity from this date (ISO 8601). Students with no activity are excluded when a date range is applied.
end_date
datetime
Filter by last-seen activity up to this date (ISO 8601).
sort_by
string
default:"last_seen"
Sort field: name, last_seen, programme, or status.
sort_order
string
default:"desc"
asc or desc.
skip
integer
default:"0"
Number of records to skip.
limit
integer
default:"10"
Max records to return (1-100).

Example request

curl "https://staging-be.mind.miva.university/v1/console/students?search=abdul&programme=MBA1234&status=active&sort_by=last_seen&sort_order=desc&limit=10" \
  -H "Authorization: Bearer <access_token>"

Response

{
  "success": true,
  "data": [
    {
      "user_id": "6650a1b2c3d4e5f6a7b8c9d0",
      "student_name": "Abdulwahab Umar",
      "student_email": "abdulwahabumar@miva.university",
      "programmes": [
        { "code": "MBA1234", "name": "Masters in Business Administration" }
      ],
      "programme_label": "Masters in Business Administration",
      "overall_case_studies": 10,
      "status": "active",
      "last_seen": "2026-06-04T09:00:00Z"
    }
  ],
  "total": 137,
  "page": 1,
  "page_size": 10,
  "total_pages": 14,
  "message": null
}

Notes

  • overall_case_studies is the count of active case studies assigned to the student through their programme(s) (programme-code overlap).
  • last_seen is derived from the student’s most recent session activity. A student who has never started a session returns null.
  • programmes is a list — a student enrolled in more than one programme returns each, and programme_label is the human-readable join of their names.

Export Students

GET /v1/console/students/export
Download the current filtered student list as a CSV or XLSX file. Uses the same filters, search, and sort as the list endpoint.

Authentication

Requires USER_MANAGEMENT.can_export permission.

Query parameters

format
string
default:"csv"
Export format: csv or xlsx.
Plus the same parameters as List Students: search, programme, status, start_date, end_date, sort_by, sort_order.

Example request

curl "https://staging-be.mind.miva.university/v1/console/students/export?format=xlsx&programme=MBA1234" \
  -H "Authorization: Bearer <access_token>" \
  -o students.xlsx

Response

Returns a file download.
FormatMedia typeFilename
csvtext/csvstudents_{tenant_slug}_{YYYY-MM-DD}.csv
xlsxapplication/vnd.openxmlformats-officedocument.spreadsheetml.sheetstudents_{tenant_slug}_{YYYY-MM-DD}.xlsx
Columns: Student Name, Email, Programme, Status, Overall Case Studies, Last Seen.

Limits

Hard cap of 50,000 rows per export. If exceeded, narrow your filters.

Get Student Details

GET /v1/console/students/{user_id}
Operational profile for a single student: identity, programme, status, last seen, and — unless disabled — a per-case-study card for every case study the student has attempted, with overall/extra attempts, best score, and the full attempt list.

Authentication

Requires USER_MANAGEMENT.can_view permission.

Path parameters

user_id
string
required
The student’s user ID.

Query parameters

include_case_studies
boolean
default:"true"
When false, omits the case_study_details array for a lighter header-only response.

Example request

curl "https://staging-be.mind.miva.university/v1/console/students/6650a1b2c3d4e5f6a7b8c9d0" \
  -H "Authorization: Bearer <access_token>"

Response

{
  "success": true,
  "data": {
    "user_id": "6650a1b2c3d4e5f6a7b8c9d0",
    "student_number": "6650a1b2c3d4e5f6a7b8c9d0",
    "student_name": "Abdulwahab Umar",
    "student_email": "abdulwahabumar@miva.university",
    "programmes": [
      { "code": "MBA1234", "name": "Masters in Business Administration" }
    ],
    "programme_label": "Masters in Business Administration",
    "cohort": null,
    "status": "active",
    "last_seen": "2026-06-04T09:00:00Z",
    "overall_case_studies": 10,
    "case_studies_attempted": 2,
    "total_attempts": 2,
    "total_sessions": 4,
    "created_at": "2026-01-15T08:00:00Z",
    "case_study_details": [
      {
        "case_study_id": "6650c3d4e5f6a7b8c9d0e1f2",
        "case_study_title": "Fuel Subsidy removal in Nigeria: Economic impact and social impact",
        "programme_codes": ["MBA1234"],
        "programme_label": "Masters in Business Administration",
        "attempts_used": 1,
        "attempts_allowed": 2,
        "extra_attempts": 0,
        "best_score": 75.0,
        "attempts": [
          {
            "session_id": "6650d4e5f6a7b8c9d0e1f2a3",
            "attempt_label": "Attempt 2",
            "score": 75.0,
            "status": "ended",
            "transcript_status": "available",
            "grading_status": "complete",
            "used_for_final_score": true,
            "started_at": "2025-04-03T15:00:00Z",
            "ended_at": "2025-04-03T15:09:00Z"
          },
          {
            "session_id": "6650d3e4f5a6b7c8d9e0f1a2",
            "attempt_label": "Attempt 1",
            "score": null,
            "status": "ended",
            "transcript_status": "missing",
            "grading_status": "pending",
            "used_for_final_score": false,
            "started_at": "2025-04-03T15:00:00Z",
            "ended_at": "2025-04-03T15:05:00Z"
          }
        ]
      }
    ]
  },
  "message": null
}

Field reference

FieldDescription
student_numberCurrently the student’s user ID. Will map to the SIS/Campus identifier once the Campus integration lands.
cohortReserved; returns null until a cohort source is wired in.
overall_case_studiesCase studies assigned via the student’s programme(s). Powers “No. of Case Studies”.
case_studies_attemptedDistinct case studies the student has started at least one session for.
case_study_details[]One card per attempted case study.
attempts_used / attempts_allowedOverall attempts consumed vs. total allowed (e.g. “1/2”).
extra_attemptsExtra attempts granted on top of the base allowance.
best_scoreHighest score across the student’s attempts for this case study, or null if none graded.
attempts[].transcript_statusavailable, partial, processing, missing, or failed.
attempts[].grading_statuspending, complete, or failed.
attempts[].session_idUse with the Student Performance attempt endpoints to load the transcript and full report.
  • Grant / revoke attempts: POST /v1/console/attempts/grant and …/revoke (single), or …/grant/bulk for multi-select.
  • Transcript & report: GET /v1/console/student-performance/attempts/{session_id} and its /transcript / /grade sub-resources.

Error responses

StatusCodeCondition
404NOT_FOUNDStudent not found in the current tenant.