List 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
Number of records to skip.
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
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
}
List Avatars
GET /v1/case-study-avatars
Returns a paginated list of reusable avatars.
Authentication
Requires a valid access token (any role).
Query parameters
Number of records to skip.
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
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
}