Endpoint pendaftaran
POST /exams/{exam}/participants — Mendaftarkan peserta ke ujian
POST /exams/{exam}/participants — Mendaftarkan peserta ke ujian
Request ini aman untuk diulang. Peserta yang sudah terdaftar tidak didaftarkan dua kali, tetapi dilaporkan pada
already_registered. Setiap pendaftaran baru mengirim webhook exam_participant.registered.Saat peserta didaftarkan:- Peserta mendapat kode peserta (
participant_code) dan satu data hasil untuk setiap tes dalam ujian. - Pada ujian berjenjang, hanya tes pada jenjang pertama yang langsung aktif. Tes pada jenjang berikutnya terbuka setelah jenjang sebelumnya selesai.
- Jika ujian memakai pembagian sesi otomatis (
is_auto_assign_session: true), peserta ditempatkan pada sesi yang paling awal dibuat untuk setiap tes. Jika tidak, admin perlu menempatkan peserta ke sesi melalui panel sebelum peserta dapat mengerjakan tes. Sampai saat itu, link akses melaporkanlocked_reason: "no_session".
is_locked: true) menolak pendaftaran dengan status 409. ID peserta yang tidak ditemukan pada projek dilaporkan pada rejected, misalnya { "participant_id": 999, "reason": "Peserta tidak ditemukan pada projek ini." }.Parameter
Contoh request
Contoh response
Status201.GET /exams/{exam}/participants/{participant} — Status pendaftaran peserta
GET /exams/{exam}/participants/{participant} — Status pendaftaran peserta
Respons memuat
results, yaitu satu data hasil untuk setiap tes dalam ujian. Struktur setiap item sama dengan API Hasil Ujian.Parameter
Contoh request
Contoh response
DELETE /exams/{exam}/participants/{participant} — Membatalkan pendaftaran
DELETE /exams/{exam}/participants/{participant} — Membatalkan pendaftaran
Permintaan ditolak dengan status
409 apabila peserta sudah menyelesaikan salah satu tes atau sudah memiliki nilai pada ujian ini. Pembatalan menghapus kode peserta beserta seluruh data tes peserta pada ujian tersebut, lalu mengirim webhook exam_participant.unregistered.Parameter
Contoh request
Contoh response
POST /exams/{exam}/participants/{participant}/access-links — Membuat link akses ujian
POST /exams/{exam}/participants/{participant}/access-links — Membuat link akses ujian
Menghasilkan satu link untuk setiap tes dalam ujian. Link tersebut membuat peserta langsung masuk tanpa mengetik kata sandi, lalu membuka halaman persiapan tes.Perilaku link:
- Setiap link hanya dapat dipakai satu kali, dan harus dipakai sebelum
expires_at. Masa berlaku default 1.440 menit (24 jam), maksimal 10.080 menit (7 hari). Link yang sudah dipakai atau sudah kedaluwarsa menampilkan pesan bahwa link tidak berlaku lagi. - Jika peserta perlu masuk kembali, misalnya setelah menutup tab, berpindah perangkat, atau koneksi terputus, buat link baru. Link baru untuk tes yang sedang dikerjakan melanjutkan pengerjaan yang sama, bukan memulai ulang.
- Link yang dibuat sebelumnya tetap berlaku sampai dipakai atau kedaluwarsa.
exam_urltetap dikembalikan walaupun tes belum dapat dikerjakan. Periksacan_startsebelum mengarahkan peserta. Link untuk tes dengancan_start: falsetidak membuka tes; peserta diarahkan ke dashboard CBT atau mendapat halaman tidak ditemukan.- Satu peserta hanya dapat memiliki satu sesi login aktif. Membuka link di perangkat lain mengakhiri sesi di perangkat sebelumnya.
- Peserta nonaktif tidak dapat masuk melalui link. Link tetap dibuat, dan
messagepada respons menjelaskan bahwa peserta sedang nonaktif. - Jika
return_urldikirim, halaman Tes Selesai menampilkan tombol Lanjutkan yang membawa peserta ke URL tersebut setelah tes terakhir dalam pengerjaan itu selesai. Tanpareturn_url, halaman tersebut tetap menampilkan tombol Kembali ke Daftar Tes.
Parameter
Daftarkan domain
return_url pada kolom Domain Redirect Setelah Ujian di Pengaturan Aplikasi → Integrasi API. Tulis nama domain saja tanpa https:// dan tanpa path, pisahkan dengan koma, misalnya portal.smanusantara.example.com, ujian.smanusantara.example.com. Domain dicocokkan persis: mendaftarkan smanusantara.example.com tidak otomatis mengizinkan subdomainnya, jadi daftarkan setiap subdomain yang dipakai. Port pada return_url tidak ikut dicocokkan.Field respons per link
Nilai
locked_reason:finished— tes sudah selesai dikerjakan.unavailable— ujian di luar jadwal atau diarsipkan, pendaftaran peserta ditangguhkan atau sudah selesai, atau tes ditolak.payment— tes menunggu pembayaran.pending— jenjang tes belum terbuka, atau pendaftaran masih menunggu verifikasi.order— tes harus dikerjakan berurutan dan tes sebelumnya belum selesai.no_session— peserta belum ditempatkan pada sesi, atau sesinya belum memiliki paket soal.no_questions— paket soal pada sesi belum berisi soal.outside_session— waktu saat ini berada di luar jadwal sesi.
404 dikembalikan jika ujian atau peserta tidak ditemukan, atau peserta belum terdaftar pada ujian. Status 422 dikembalikan jika ujian belum memiliki tes, atau jika return_url tidak memakai https:// atau domainnya belum terdaftar.
