API Reference · v1

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:

  1. Hubungi admin (lihat kontak di bawah) dan sebutkan: nama instansi/organisasi, nama sistem/aplikasi yang akan mengakses, dan tujuan penggunaan datanya.
  2. Admin akan membuatkan Klien API baru dan men-generate key.
  3. 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:

# Contoh dengan curl curl -H "Authorization: Bearer <API_KEY_ANDA>" \ "https://nakhoda.beltim.go.id/api/v1/documents"

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.

Format query string, lihat tabel parameter di tiap endpoint di bawah.

Endpoint: Dokumen

GET/api/v1/documents

Daftar dokumen published, bisa disaring & dipaginasi.

ParameterTipeKeterangan
typestringSaring jenis: policy_brief, policy_paper, atau makalah_kebijakan.
category_idintegerSaring berdasarkan ID kategori.
topic_idintegerSaring berdasarkan ID topik.
bidang_urusan_idintegerSaring berdasarkan ID Bidang Urusan, lihat endpoint Bidang Urusan utk daftar ID-nya.
yearintegerSaring berdasarkan tahun.
qstringCari judul yang mengandung teks ini (cocok substring, bukan full-text, lihat endpoint Pencarian utk full-text).
per_pageintegerJumlah data per halaman, maks. 50 (default 20).
pageintegerNomor halaman.
GET/api/v1/documents/{slug}

Detail satu dokumen berdasarkan slug (didapat dari field slug pada respons daftar). 404 kalau tidak ditemukan/belum published.

Endpoint: Instansi

GET/api/v1/institutions

Daftar instansi/OPD. Parameter: q (cari nama), is_pemda (true/false), per_page, page.

GET/api/v1/institutions/{slug}

Detail satu instansi + daftar dokumen published dari instansi tersebut (dipaginasi lewat parameter per_page/page).

Endpoint: Bidang Urusan

GET/api/v1/bidang-urusan

Daftar bidang urusan (RPJMD). Parameter: q (cari nama/kode), per_page, page.

GET/api/v1/bidang-urusan/{slug}

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.

GET/api/v1/penulis

Daftar penulis beserta jumlah dokumennya. Parameter: q (cari nama), per_page, page.

GET/api/v1/penulis/{slug}

Detail satu penulis + daftar dokumen published yang ditulisnya.

Format Respons & Paginasi

Daftar (list) selalu berbentuk objek dengan data (array hasil), links, dan meta (info halaman: current_page, last_page, total, dst).

{ "data": [ ... ], "links": { "first": "...", "last": "...", "prev": null, "next": "..." }, "meta": { "current_page": 1, "last_page": 5, "per_page": 20, "total": 92 } }

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

StatusArti
401Header Authorization tidak ada atau key tidak valid.
403Key valid tapi klien API-nya sedang dinonaktifkan admin.
404Data tidak ditemukan (slug salah, atau dokumen belum/tidak lagi published).
422Parameter yang dikirim tidak valid, lihat detail di field errors.
429Terlalu 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.

Manual Book Nakhoda · Developer/Pengembang v2.0

Panduan teknis API Nakhoda bagi developer/pengembang sistem: autentikasi, referensi lengkap endpoint, skema data, kode error, dan contoh implementasi.

Buka Manual Book API

Kontak

Untuk permintaan API key, pertanyaan teknis, atau melaporkan masalah:

Disclaimer

Pernyataan Resmi Platform Nakhoda

Dokumen yang tersedia di platform ini merupakan karya intelektual dari penulis dan tidak mencerminkan pandangan resmi, kebijakan, maupun posisi Bapperida, Organisasi Perangkat Daerah (OPD), atau Pemerintah Kabupaten Belitung Timur. Seluruh analisis dan rekomendasi yang termuat bersifat alternatif kebijakan yang ditujukan semata-mata untuk mendukung pengambilan keputusan berbasis bukti.

Riwayat Pengeditan
Pengaduan, Kritik & Saran

Bantu kami menjadi lebih baik! Sampaikan pengaduan, kritik, atau saran Anda terkait Nakhoda. Tim kami akan menindaklanjutinya.

Terima Kasih