Referensi Developer · v1

API Publik MASKI

Direktori KJSB dan Surveyor Berlisensi, lengkap dengan data wilayah Indonesia — dokumentasi ini masih dalam tahap pengembangan tapi dapat digunakan untuk pengujian dev environment.

https://api.maski.cloud

GETDaftar KJSB

/api/kjsb kjsb:read

Filter tambahan

ParameterKeterangan
kode_wilayah_kerjaKode provinsi wilayah kerja KJSB, mis. 11. Lihat endpoint wilayah

Contoh dasar

bash
curl -s -H "X-API-Key: $MASKI_API_KEY" "https://api.maski.cloud/api/kjsb"

Dengan paginasi

bash
curl -s -H "X-API-Key: $MASKI_API_KEY" "https://api.maski.cloud/api/kjsb?page=2&per_page=5"

Filter berdasarkan wilayah kerja

bash
curl -s -H "X-API-Key: $MASKI_API_KEY" "https://api.maski.cloud/api/kjsb?kode_wilayah_kerja=11&per_page=10"

Urut nama dari Z ke A

bash
curl -s -H "X-API-Key: $MASKI_API_KEY" "https://api.maski.cloud/api/kjsb?sort=DESC&per_page=10"

Gabungan filter

bash
curl -s -H "X-API-Key: $MASKI_API_KEY" -G "https://api.maski.cloud/api/kjsb" \
  --data-urlencode "kode_wilayah_kerja=31" \
  --data-urlencode "sort=ASC" \
  --data-urlencode "per_page=25" \
  --data-urlencode "page=1"
Tip

-G dengan --data-urlencode lebih aman daripada menempel query di URL: nilai yang mengandung spasi atau karakter khusus ikut di-encode otomatis.

Contoh response

json
{
  "status": true,
  "message": "success",
  "data": [
    {
      "id": "01m21q833phxh58aqshxy13qhf",
      "no_anggota": "KJSB-2026-0142",
      "nama": "KJSB Bumi Sejahtera Mandiri",
      "email": "kontak@kjsb-bsm.id",
      "no_telepon": "081234567890",
      "nomor_izin_menteri": "123/IZIN/2024",
      "npwp": "01.234.567.8-901.000", // hanya dgn scope data:sensitif
      "wilayah_kerja": { "kode": "11", "nama": "Aceh" },
      "alamat": {
        "id": 2782,
        "alamat": "Jl. Contoh No. 1",
        "latitude": -6.2088, // hanya dgn scope data:sensitif
        "longitude": 106.8456,
        "provinsi":  { "kode": "11", "nama": "Aceh" },
        "kota":      { "kode": "11.01", "nama": "Kabupaten Aceh Selatan" },
        "kecamatan": { "kode": "11.01.01", "nama": "Bakongan" },
        "kelurahan": { "kode": "11.01.01.2001", "nama": "Keude Bakongan" }
      }
    }
  ],
  "pagination": { "count": 1, "total": 63, "per_page": 1, "current_page": 1, "total_pages": 63, "has_next": true }
}

alamat diambil dari alamat kantor pusat KJSB. Bila KJSB belum mengisinya, field ini bernilai null.

Penting

npwp serta latitude/longitude pada contoh di atas hanya muncul bila kunci Anda punya scope data:sensitif. Tanpa scope itu, ketiganya tidak ada di response — tulis kode Anda agar tidak menganggap ketiadaannya sebagai galat.


GETDaftar Surveyor Berlisensi

/api/sb sb:read

Filter tambahan

ParameterKeterangan
kjsb_idTampilkan hanya surveyor pada satu KJSB. Isi dengan id dari /api/kjsb
kode_wilayah_kerjaKode provinsi wilayah kerja KJSB tempat surveyor bernaung

Contoh dasar

bash
curl -s -H "X-API-Key: $MASKI_API_KEY" "https://api.maski.cloud/api/sb?per_page=10"

Surveyor pada satu KJSB

bash
curl -s -H "X-API-Key: $MASKI_API_KEY" "https://api.maski.cloud/api/sb?kjsb_id=01m21q833phxh58aqshxy13qhf"

Filter wilayah + urut

bash
curl -s -H "X-API-Key: $MASKI_API_KEY" -G "https://api.maski.cloud/api/sb" \
  --data-urlencode "kode_wilayah_kerja=31" \
  --data-urlencode "sort=ASC" \
  --data-urlencode "per_page=50"

Contoh response

json
{
  "status": true,
  "message": "success",
  "data": [
    {
      "id": "01m21q833t7sgrwyfatapgyy61",
      "no_anggota": "SB-2026-0871",
      "nama": "Ir. Bagas Nurwahyudi, S.T.",
      "email": "bagas@kjsb-bsm.id",
      "no_telepon": "081298765432",
      "jenis_surveyor": "surveyor_kadastral",
      "npwp": "01.234.567.8-901.000",
      "no_lisensi": "LIS-2024-001",
      "masa_berlaku_lisensi": "2026-01-15",
      "kjsb": {
        "id": "01m21q833phxh58aqshxy13qhf",
        "no_anggota": "KJSB-2026-0142",
        "nama": "KJSB Bumi Sejahtera Mandiri",
        "email": "kontak@kjsb-bsm.id",
        "no_telepon": "081234567890"
      },
      "wilayah_kerja": { "kode": "11", "nama": "Aceh" }
    }
  ],
  "pagination": { "count": 1, "total": 63, "per_page": 1, "current_page": 1, "total_pages": 63, "has_next": true }
}

jenis_surveyor bernilai surveyor_kadastral atau asisten_surveyor_kadastral. masa_berlaku_lisensi berformat YYYY-MM-DD, dan bisa null bila belum diisi.


GETRingkasan jumlah

/api/kjsb-summary kjsb:read

Untuk kartu statistik di halaman depan; tidak menerima parameter.

bash
curl -s -H "X-API-Key: $MASKI_API_KEY" "https://api.maski.cloud/api/kjsb-summary"
json
{
  "status": true,
  "message": "success",
  "data": { "total_member": 63, "total_province": 12, "total_city": 48 }
}

GETNama & logo KJSB

/api/kjsb/{id}/branding branding:read

bash
curl -s -H "X-API-Key: $MASKI_API_KEY" "https://api.maski.cloud/api/kjsb/01m21q833phxh58aqshxy13qhf/branding"
json
{
  "status": true,
  "message": "success",
  "data": {
    "id": "01m21q833phxh58aqshxy13qhf",
    "nama": "KJSB Bumi Sejahtera Mandiri",
    "logo_url": "https://api.maski.cloud/api/kjsb/01m21q833phxh58aqshxy13qhf/logo"
  }
}

logo_url menunjuk GET /api/kjsb/{id}/logo, yang membalas berkas gambar (bukan JSON) dan boleh dipakai langsung sebagai src pada <img>:

bash
curl -s -H "X-API-Key: $MASKI_API_KEY" "https://api.maski.cloud/api/kjsb/01m21q833phxh58aqshxy13qhf/logo" -o logo.png

GETReferensi wilayah

/api/wilayah/* wilayah:read

Dipakai untuk mendapatkan nilai kode_wilayah_kerja, atau mengisi dropdown alamat bertingkat. Empat level, masing-masing menyaring dari induknya.

EndpointParameter indukContoh kode
/api/wilayah/provinsi—11
/api/wilayah/kotakode_provinsi11.01
/api/wilayah/kecamatankode_kota11.01.01
/api/wilayah/kelurahankode_kecamatan11.01.01.2001

Semuanya menerima search (cocokkan sebagian nama) selain page, per_page, dan sort.

bash
# Semua provinsi
curl -s -H "X-API-Key: $MASKI_API_KEY" "https://api.maski.cloud/api/wilayah/provinsi?per_page=50"

# Kota/kabupaten di Aceh
curl -s -H "X-API-Key: $MASKI_API_KEY" "https://api.maski.cloud/api/wilayah/kota?kode_provinsi=11&per_page=50"

# Cari kecamatan berdasarkan nama
curl -s -H "X-API-Key: $MASKI_API_KEY" -G "https://api.maski.cloud/api/wilayah/kecamatan" \
  --data-urlencode "kode_kota=11.01" \
  --data-urlencode "search=Bakongan"

Mulai level kota, tiap baris membawa induknya:

json
{
  "status": true,
  "message": "success",
  "data": [
    {
      "kode": "11.01",
      "nama": "Kabupaten Aceh Selatan",
      "provinsi": { "kode": "11", "nama": "Aceh" }
    }
  ],
  "pagination": { "count": 1, "total": 23, "per_page": 1, "current_page": 1, "total_pages": 23, "has_next": true }
}

Alur khas: cari KJSB di satu provinsi

  1. Temukan kode provinsinya.

    bash
    curl -s -H "X-API-Key: $MASKI_API_KEY" -G "https://api.maski.cloud/api/wilayah/provinsi" \
      --data-urlencode "search=Jawa Barat"
    #    → { "kode": "32", "nama": "Jawa Barat" }
  2. Ambil KJSB dengan wilayah kerja tersebut.

    bash
    curl -s -H "X-API-Key: $MASKI_API_KEY" "https://api.maski.cloud/api/kjsb?kode_wilayah_kerja=32&per_page=50"
  3. Ambil surveyor pada salah satu KJSB-nya.

    bash
    curl -s -H "X-API-Key: $MASKI_API_KEY" "https://api.maski.cloud/api/sb?kjsb_id=<id-dari-langkah-2>"