REST API untuk mengelola short link dan bio link secara terprogram. Base URL: https://linkpro.id/api/v1
Semua request memerlukan API key yang dikirim lewat header Authorization. API key hanya dapat dibuat oleh akun admin, di menu API Keys.
Authorization: Bearer sk_xxxxxxxxxxxxxxxxxxxxxxxx
Setiap key punya rate limit (default 100 request/menit). Request tanpa key valid akan mendapat 401 Unauthorized; jika melebihi limit, 429.
curl -X POST https://linkpro.id/api/v1/links \
-H "Authorization: Bearer sk_xxx" \
-H "Content-Type: application/json" \
-d '{
"targetUrl": "https://example.com/promo",
"customSlug": "promo",
"redirectType": 302,
"expiryAt": null,
"password": null
}'curl -X PUT https://linkpro.id/api/v1/links/{id} \
-H "Authorization: Bearer sk_xxx" \
-H "Content-Type: application/json" \
-d '{ "targetUrl": "https://example.com/destinasi-baru" }'curl -X PUT https://linkpro.id/api/v1/links/{id} \
-H "Authorization: Bearer sk_xxx" \
-H "Content-Type: application/json" \
-d '{ "isActive": false }'{
"data": {
"id": "clx123...",
"slug": "promo",
"targetUrl": "https://example.com/promo",
"isActive": true,
"redirectType": 302,
"expiryAt": null,
"shortUrl": "linkpro.id/r/promo"
}
}curl -X POST https://linkpro.id/api/v1/profiles \
-H "Authorization: Bearer sk_xxx" \
-H "Content-Type: application/json" \
-d '{
"slug": "toko-saya",
"displayName": "Toko Saya",
"bio": "Belanja mudah & cepat",
"themeId": "sunset",
"links": [
{ "linkLabel": "Instagram", "linkUrl": "instagram.com/tokosaya", "icon": "instagram" },
{ "linkLabel": "WhatsApp", "linkUrl": "wa.me/6281234567890", "icon": "whatsapp" }
]
}'Catatan: linkUrl tanpa https:// akan otomatis dilengkapi. Tema tersedia: default, sunset, ocean, midnight, minimal.
Cek status blokir domain terhadap DNS Nawala/Komdigi (Indonesia) secara massal. Base URL: https://nawala-api.linkpro.id
curl -X POST https://nawala-api.linkpro.id/api/v1/check/bulk \
-H "Authorization: Bearer sk_nawala_<client>_<random>" \
-H "Content-Type: application/json" \
-d '{
"domains": ["google.com", "asiatogel.com"],
"method": "both"
}'{
"ok": true,
"total": 2,
"results": [
{
"domain": "google.com",
"checks": {
"sdk": { "status": "CLEAR", "blocked": false },
"python": { "status": "CLEAR", "reason": "Nawala resolve IP valid" }
}
},
{
"domain": "asiatogel.com",
"checks": {
"sdk": { "status": "BLOCKED", "blocked": true, "server": "180.131.144.144" },
"python": { "status": "BLOCKED", "reason": "CNAME blokir Kominfo/Nawala terdeteksi (lamanlabuh.aduankonten.id)" }
}
}
]
}method opsional: sdk (Go SDK resmi, cepat) · python (checker custom, DNS deep) · both (default). Rate limit: 30 req/menit per key + 60 req/menit per IP.
• 🔵 SDK BLOCKED + 🐍 PY BLOCKED → 100% diblokir
• 🔵 SDK BLOCKED + 🐍 PY SUSPECTED → diblokir (SDK konfirmasi, PY mendukung)
• 🔵 SDK CLEAR + 🐍 PY SUSPECTED → kemungkinan diblokir pola tersembunyi (NXDOMAIN) — sarankan re-check
• 🔵 SDK CLEAR + 🐍 PY CLEAR → aman ✅
💡 SDK = cek cepat (sinyal langsung resolver Nawala) · Python = cek teliti (CNAME blokir + IP blackhole + perbandingan 4 resolver). Hasil beda antar metode itu normal — pola deteksinya beda, bukan error.