Skip to content

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, or nik
  • 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
      }
    }