Appearance
Complete REST API Specifications & Active Academic Year API
1. Global API Conventions
- Base URL:
https://[DOMAIN_PRODUKSI]/api/v1 - Authentication Header:
X-API-Key: <YOUR_API_KEY> - Response Format: JSON (
Content-Type: application/json).
2. Active Academic Year API Module
2.1 Fetch Active Academic Year
Retrieves the currently active academic year (Tahun Pelajaran) and semester configuration for the institution.
- Endpoint:
GET /api/v1/academic-year/active - Headers:
X-API-Key: <API_KEY> - Response (
200 OK):json{ "success": true, "data": { "id": "ay_99887766-5544-3322-1100", "name": "2026/2027", "is_active": true, "created_at": "2026-07-15T00:00:00Z" }, "meta": { "app_name": "CBT Exam App" } }
3. Member Identity API Module
3.1 Member Lookup
- Endpoint:
GET /api/v1/members/lookup - Query Parameters:
id,username,email,dapodik_id,nisn,nip, ornik - Headers:
X-API-Key: <API_KEY> - Response (
200 OK):json{ "success": true, "found": true, "data": { "id": "usr_uuid_12345", "nama": "Jane Doe", "role": "siswa", "dapodik_id": "dp_12345", "nisn": "12345678", "kelas": "XI-MIPA-1", "academic_year_name": "2026/2027", "google_email": "jane.doe@school.sch.id", "is_claimed": true }, "meta": { "app_name": "CBT Exam App" } }
3.2 List Members with Search & Academic Filtering
- Endpoint:
GET /api/v1/members - Query Parameters:
search,role,kelas,page,per_page - Headers:
X-API-Key: <API_KEY> - Response (
200 OK):json{ "success": true, "data": [ { "id": "usr_uuid_12345", "nama": "Jane Doe", "role": "siswa", "nisn": "12345678", "kelas": "XI-MIPA-1" } ], "meta": { "total": 450, "page": 1, "per_page": 50, "total_pages": 9 } }