Langsung ke konten utama
Seluruh request pada halaman ini membutuhkan Bearer API Key.

Endpoint pendaftaran

Parameter

Contoh request

Contoh response

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 melaporkan locked_reason: "no_session".
Ujian yang sudah dikunci (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

Status 201.
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

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

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_url tetap dikembalikan walaupun tes belum dapat dikerjakan. Periksa can_start sebelum mengarahkan peserta. Link untuk tes dengan can_start: false tidak 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 message pada respons menjelaskan bahwa peserta sedang nonaktif.
  • Jika return_url dikirim, halaman Tes Selesai menampilkan tombol Lanjutkan yang membawa peserta ke URL tersebut setelah tes terakhir dalam pengerjaan itu selesai. Tanpa return_url, halaman tersebut tetap menampilkan tombol Kembali ke Daftar Tes.
Link akses dirancang untuk alur redirect dari aplikasi Anda, misalnya tombol “Mulai Ujian”. Buat link tepat saat peserta menekan tombol dengan expires_in_minutes yang singkat (misalnya 5–15 menit), lalu langsung redirect peserta. Jangan menyimpan link atau mengirimkannya melalui email atau chat: beberapa aplikasi chat dan email membuka link secara otomatis untuk pratinjau, sehingga link sudah terpakai sebelum peserta mengkliknya.

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.
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.
Status 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.

Contoh request

Contoh response