Check PTK & GTK Indonesian Teacher'ss
by RFour · Jul 27, 2026 ·javascript
Basically this checks the ptk and GTK stuff from uhh Indonesian teachers, I added this to my api, basically this gets a lot of infos from uhh stuff and easy to use, and uhh idk what to say, I added this because I saw someone using check ptk and GTK tool
PTKGTKTeacherLazy
simpkb.jsjavascript
1async function cari(body) {
2 const res = await fetch("https://app.simpkb.id/akun/ptk-solr", {
3 method: 'POST',
4 headers: {
5 'Accept': 'application/json, text/javascript, */*; q=0.01',
6 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
7 'Origin': 'https://app.simpkb.id',
8 'Referer': 'https://app.simpkb.id/akun/ptk',
9 'User-Agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Mobile Safari/537.36',
10 'X-Requested-With': 'XMLHttpRequest'
11 },
12 body: new URLSearchParams(body).toString()
13 });
14 return res.json();
15}
16
17async function provinsi() {
18 const res = await fetch("https://app.simpkb.id/asset/js/configs/propinsi.json?version=202309261116", {
19 headers: {
20 'Accept': 'application/json',
21 'User-Agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36',
22 'X-Requested-With': 'XMLHttpRequest',
23 'Referer': 'https://app.simpkb.id/akun/ptk'
24 }
25 });
26 return res.json();
27}
28
29async function kota() {
30 const res = await fetch("https://app.simpkb.id/asset/js/configs/kota.json?version=202309261116", {
31 headers: {
32 'Accept': 'application/json',
33 'User-Agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36',
34 'X-Requested-With': 'XMLHttpRequest',
35 'Referer': 'https://app.simpkb.id/akun/ptk'
36 }
37 });
38 return res.json();
39}
40
41export async function simpkb(req) {
42 const { searchParams: sp } = new URL(req.url);
43 const keyword = sp.get('keyword');
44 const prov = sp.get('prov') || '';
45 const kab = sp.get('kab') || '';
46 const paspor = sp.get('paspor') || '';
47 const dapodik = sp.get('dapodik') || '';
48 const page = sp.get('page') || '1';
49 const mode = sp.get('mode') || 'cari';
50
51 if (mode === 'provinsi') {
52 try {
53 const data = await provinsi();
54 return { status: true, data };
55 } catch (err) {
56 return { error: err.message };
57 }
58 }
59
60 if (mode === 'kota') {
61 try {
62 const data = await kota();
63 return { status: true, data };
64 } catch (err) {
65 return { error: err.message };
66 }
67 }
68
69 if (!keyword) {
70 return {
71 error: "keyword nya mana",
72 usage: {
73 cari: "/simpkb?keyword=Novy",
74 filter: "/simpkb?keyword=Novy&prov=15&kab=1502&dapodik=1&paspor=1",
75 semua: "/simpkb?keyword=Novy&prov=15&kab=1502",
76 provinsi: "/simpkb?mode=provinsi",
77 kota: "/simpkb?mode=kota"
78 },
79 params: {
80 keyword: "nama guru/ptk",
81 prov: "kode provinsi (dari /simpkb?mode=provinsi)",
82 kab: "kode kabupaten (dari /simpkb?mode=kota)",
83 dapodik: "0=belum terkoneksi, 1=sudah terkoneksi, kosong=semua",
84 paspor: "0=belum registrasi, 1=sudah registrasi, kosong=semua",
85 page: "halaman"
86 }
87 };
88 }
89
90 try {
91 const body = {
92 k_propinsi: prov,
93 k_kota: kab,
94 is_paspor: paspor,
95 is_dapodik: dapodik,
96 keyword,
97 page
98 };
99 const data = await cari(body);
100 return { status: true, params: { keyword, prov, kab, dapodik, paspor, page }, data };
101 } catch (err) {
102 return { error: err.message };
103 }
104}