Dokumentasi API Publikasi Dokumen di Nakhoda
API baca-saja (read-only) untuk mengambil data dokumen kebijakan (Policy Brief, Policy Paper, Makalah Kebijakan) yang sudah dipublikasikan di Nakhoda. API ini dimaksudkan untuk pengembangan lebih lanjut bagi developer, misalnya untuk integrasi ke portal/sistem instansi lain yang membutuhkan data riset kebijakan.
Tentang API
API ini hanya mengeluarkan dokumen yang berstatus published dan tidak disembunyikan dari pembaca, dokumen yang masih dalam proses telaah, revisi, atau draf tidak akan pernah muncul lewat API ini, apa pun parameter yang dikirim.
Semua endpoint bersifat baca-saja: tidak ada cara untuk membuat, mengubah, atau menghapus data lewat API ini.
Cara Mendapatkan Akses
Akses API diberikan lewat API Key yang dibuat oleh admin Nakhoda, tidak ada pendaftaran mandiri. Untuk mendapatkan key:
- Hubungi admin (lihat kontak di bawah) dan sebutkan: nama instansi/organisasi, nama sistem/aplikasi yang akan mengakses, dan tujuan penggunaan datanya.
- Admin akan membuatkan Klien API baru dan men-generate key.
- Key diserahkan lewat kanal komunikasi yang aman (bukan lewat halaman ini), simpan baik-baik, jangan disebar/dipublikasikan di kode sumber publik.
Kalau key Anda tidak sengaja bocor atau ingin diganti, hubungi admin lagi untuk digenerate ulang, key lama otomatis tidak berlaku begitu key baru dibuat.
Autentikasi
Sertakan key di header Authorization pada setiap permintaan, dengan format Bearer Token:
Semua endpoint di bawah ini butuh header ini. Permintaan tanpa header atau dengan key yang salah/dicabut akan ditolak dengan status 401 Unauthorized.
Coba Langsung
Uji endpoint API di sini pakai API key Anda sendiri, langsung dari browser ini, key hanya dikirim langsung ke Nakhoda (permintaan dibuat dari browser Anda sendiri, bukan lewat server lain), tidak disimpan atau dicatat di mana pun oleh laman ini.
Endpoint: Dokumen
Daftar dokumen published, bisa disaring & dipaginasi.
| Parameter | Tipe | Keterangan |
|---|---|---|
type | string | Saring jenis: policy_brief, policy_paper, atau makalah_kebijakan. |
category_id | integer | Saring berdasarkan ID kategori. |
topic_id | integer | Saring berdasarkan ID topik. |
bidang_urusan_id | integer | Saring berdasarkan ID Bidang Urusan, lihat endpoint Bidang Urusan utk daftar ID-nya. |
year | integer | Saring berdasarkan tahun. |
q | string | Cari judul yang mengandung teks ini (cocok substring, bukan full-text, lihat endpoint Pencarian utk full-text). |
per_page | integer | Jumlah data per halaman, maks. 50 (default 20). |
page | integer | Nomor halaman. |
Detail satu dokumen berdasarkan slug (didapat dari field slug pada respons daftar). 404 kalau tidak ditemukan/belum published.
Endpoint: Instansi
Daftar instansi/OPD. Parameter: q (cari nama), is_pemda (true/false), per_page, page.
Detail satu instansi + daftar dokumen published dari instansi tersebut (dipaginasi lewat parameter per_page/page).
Endpoint: Bidang Urusan
Daftar bidang urusan (RPJMD). Parameter: q (cari nama/kode), per_page, page.
Detail satu bidang urusan + daftar dokumen published yang terkait dengannya.
Endpoint: Penulis
Penulis diagregasi dari data penulis yang tercatat di tiap dokumen published (bukan akun login), identitas penulis di URL berupa slug hasil dari nama penulis.
Daftar penulis beserta jumlah dokumennya. Parameter: q (cari nama), per_page, page.
Detail satu penulis + daftar dokumen published yang ditulisnya.
Endpoint: Pencarian
Pencarian teks penuh (full-text) di judul, abstrak, dan nama penulis, mesin yang sama dengan fitur pencarian di situs publik, bukan sekadar cocok substring.
| Parameter | Tipe | Keterangan |
|---|---|---|
q | string | Wajib. Kata kunci pencarian, minimal 2 karakter. |
type | string | Saring jenis dokumen (sama seperti endpoint Dokumen). |
bidang_urusan_id | integer | Saring berdasarkan ID bidang urusan. |
institution_id | integer | Saring berdasarkan ID instansi. |
year | integer | Saring berdasarkan tahun. |
sort | string | relevance (default), newest, popular, atau download. |
per_page, page | integer | Paginasi, sama seperti endpoint lain. |
Format Respons & Paginasi
Daftar (list) selalu berbentuk objek dengan data (array hasil), links, dan meta (info halaman: current_page, last_page, total, dst).
Endpoint detail (Instansi/Bidang Urusan/Penulis) mengembalikan data (info entitasnya) dan documents (daftar dokumen terkait, berbentuk paginasi yang sama seperti di atas).
Kode Error & Rate Limit
| Status | Arti |
|---|---|
401 | Header Authorization tidak ada atau key tidak valid. |
403 | Key valid tapi klien API-nya sedang dinonaktifkan admin. |
404 | Data tidak ditemukan (slug salah, atau dokumen belum/tidak lagi published). |
422 | Parameter yang dikirim tidak valid, lihat detail di field errors. |
429 | Terlalu banyak permintaan, batas 60 permintaan/menit per key. Tunggu sejenak lalu coba lagi. |
Manual Book API
Butuh panduan yang lebih lengkap dari sekadar referensi endpoint di laman ini? Buka Manual Book khusus developer/pengembang, berisi penjelasan autentikasi, seluruh endpoint, skema data, kode error, sampai contoh implementasinya.
Panduan teknis API Nakhoda bagi developer/pengembang sistem: autentikasi, referensi lengkap endpoint, skema data, kode error, dan contoh implementasi.
Buka Manual Book APIKontak
Untuk permintaan API key, pertanyaan teknis, atau melaporkan masalah: