Skip to main content

List Case Studies

GET /v1/case-studies
Returns a paginated list of active case studies. Students use this to browse available scenarios.

Authentication

Requires a valid access token (any role).

Query parameters

skip
integer
default:"0"
Number of records to skip.
limit
integer
default:"20"
Max records to return (1-100).

Example request

curl "https://mind-be.staging.miva.university/v1/case-studies?limit=10" \
  -H "Authorization: Bearer <access_token>"

Response

{
  "success": true,
  "data": [
    {
      "id": "6650e5f6a7b8c9d0e1f2a3b4",
      "title": "Diabetic Patient Consultation",
      "slug": "diabetic-patient-consultation",
      "description": "Practice a consultation with a Type 2 diabetic patient...",
      "avatar_id": "6650a1b2c3d4e5f6a7b8c9d0",
      "avatar": {
        "id": "6650a1b2c3d4e5f6a7b8c9d0",
        "name": "Maria Rodriguez",
        "image_url": "https://cdn.example.com/avatars/maria.png",
        "bio": null,
        "role": "Patient",
        "tags": ["diabetes", "chronic-care"],
        "is_active": true
      },
      "media_url": null,
      "document_url": null,
      "instructions": [],
      "time_limit_minutes": 30,
      "is_active": true,
      "created_at": "2025-06-01T14:00:00Z"
    }
  ],
  "total": 1,
  "page": 1,
  "page_size": 10,
  "total_pages": 1,
  "message": null
}

Get Case Study

GET /v1/case-studies/{case_study_id}
Returns the full case study detail.

Authentication

Requires a valid access token (any role).

Path parameters

case_study_id
string
required
The case study’s ID.

Example request

curl https://mind-be.staging.miva.university/v1/case-studies/6650e5f6a7b8c9d0e1f2a3b4 \
  -H "Authorization: Bearer <access_token>"

Response

{
  "success": true,
  "data": {
    "id": "6650e5f6a7b8c9d0e1f2a3b4",
    "title": "Diabetic Patient Consultation",
    "slug": "diabetic-patient-consultation",
    "description": "Practice a consultation with a Type 2 diabetic patient...",
    "avatar_id": "6650a1b2c3d4e5f6a7b8c9d0",
    "avatar": {
      "id": "6650a1b2c3d4e5f6a7b8c9d0",
      "name": "Maria Rodriguez",
      "image_url": "https://cdn.example.com/avatars/maria.png",
      "bio": "Maria is a 54-year-old teacher recently diagnosed with Type 2 diabetes.",
      "role": "Patient",
      "tags": ["diabetes", "chronic-care"],
      "is_active": true
    },
    "media_url": null,
    "document_url": null,
    "instructions": [],
    "time_limit_minutes": 30,
    "system_prompt": null,
    "first_message": null,
    "llm_model": null,
    "tts_voice": null,
    "stt_language": null,
    "knowledge_base_id": "6650d4e5f6a7b8c9d0e1f2a3",
    "is_active": true,
    "created_at": "2025-06-01T14:00:00Z",
    "updated_at": null,
    "knowledge_base_document_count": 3
  },
  "message": null
}
For admin CRUD operations on case studies, see the Console Case Studies endpoints.

List Avatars

GET /v1/case-study-avatars
Returns a paginated list of reusable avatars.

Authentication

Requires a valid access token (any role).

Query parameters

skip
integer
default:"0"
Number of records to skip.
limit
integer
default:"20"
Max records to return (1-100).

Example request

curl "https://mind-be.staging.miva.university/v1/case-study-avatars?limit=10" \
  -H "Authorization: Bearer <access_token>"

Response

{
  "success": true,
  "data": [
    {
      "id": "6650a1b2c3d4e5f6a7b8c9d0",
      "name": "Maria Rodriguez",
      "image_url": "https://cdn.example.com/avatars/maria.png",
      "role": "Patient",
      "tags": ["diabetes", "chronic-care"],
      "is_active": true,
      "created_at": "2025-06-01T14:00:00Z"
    }
  ],
  "total": 1,
  "page": 1,
  "page_size": 10,
  "total_pages": 1,
  "message": null
}

Get Avatar

GET /v1/case-study-avatars/{avatar_id}
Get a specific avatar’s full details.

Authentication

Requires a valid access token (any role).

Path parameters

avatar_id
string
required
The avatar’s ID.

Example request

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

Response

{
  "success": true,
  "data": {
    "id": "6650a1b2c3d4e5f6a7b8c9d0",
    "name": "Maria Rodriguez",
    "image_url": "https://cdn.example.com/avatars/maria.png",
    "bio": "Maria is a 54-year-old teacher recently diagnosed with Type 2 diabetes.",
    "role": "Patient",
    "tags": ["diabetes", "chronic-care"],
    "is_active": true,
    "created_at": "2025-06-01T14:00:00Z",
    "updated_at": null
  },
  "message": null
}