slink.xayz.my.id

API

Buat dan periksa tautan pendek dari aplikasimu sendiri. Format JSON, tanpa SDK, satu permintaan sudah cukup.

Mulai cepat

Base URL: {{BASE}}. Kirim POST ke /api/shorten dengan body JSON, header Content-Type: application/json.

curl -X POST {{BASE}}/api/shorten \
  -H "Content-Type: application/json" \
  -d '{"url":"https://contoh.com/artikel/panjang-sekali"}'

Jawabannya:

{
  "ok": true,
  "code": "k7p2",
  "short": "{{BASE}}/k7p2",
  "alt": "{{BASE}}/s/k7p2",
  "url": "https://contoh.com/artikel/panjang-sekali",
  "createdAt": "2026-11-06T05:20:11.000Z"
}

short dan alt sama-sama berfungsi: dengan atau tanpa /s.

Kunci & batas

API bisa dipakai tanpa kunci dengan batas ketat. Pemilik server dapat menerbitkan API key (variabel API_KEYS) untuk batas lebih longgar, atau mewajibkannya (API_PUBLIC=false). Kirim kunci lewat header X-API-Key.

ModeBatas buat tautan
Tanpa kunci6 permintaan per menit per IP
Dengan X-API-Key120 permintaan per menit per IP
Endpoint baca (info, cek, statistik)60 permintaan per menit per IP

Saat melewati batas, server membalas 429 dengan header Retry-After (detik). Pelanggaran berulang menyebabkan blokir sementara otomatis.

Buat tautan

POST/api/shorten
FieldTipeKeterangan
urlstring, wajibTujuan. http:// atau https://, maksimal 2048 karakter. Tanpa skema akan diberi https://.
aliasstringPath kustom, 3–32 karakter: huruf, angka, -, _. Kosongkan untuk kode acak 4 karakter.
prefixbooleantrue = short berbentuk /s/kode. Bawaan false. Kedua bentuk tetap berlaku.

Berhasil: 201. Tautan langsung dipindai VirusTotal di latar belakang, jadi siap saat dibuka pertama kali.

Info tautan

GET/api/info/:code
curl {{BASE}}/api/info/k7p2
{
  "ok": true,
  "code": "k7p2",
  "short": "{{BASE}}/k7p2",
  "url": "https://contoh.com/artikel/panjang-sekali",
  "clicks": 42,
  "createdAt": "2026-11-06T05:20:11.000Z",
  "safety": "safe"
}

safety bernilai safe, suspicious, malicious, atau pending (belum selesai dipindai).

Cek alias

GET/api/check/:alias
curl {{BASE}}/api/check/promo-akhir-tahun
# {"ok":true,"alias":"promo-akhir-tahun","available":true}

Statistik

GET/api/stats
{"ok":true,"links":1248,"clicks":50321}

Contoh kode

Buat tautan dengan alias kustom dan gaya /s/.

curl -X POST {{BASE}}/api/shorten \
  -H "Content-Type: application/json" \
  -H "X-API-Key: KUNCI_KAMU" \
  -d '{"url":"https://contoh.com/promo","alias":"promo","prefix":true}'

Kode error

Semua error berformat sama: {"ok":false,"error":{"code":"...","message":"..."}}.

HTTPcodeArti
400invalid_urlURL tidak valid, bukan http(s), memakai IP privat/localhost, atau menunjuk ke domain ini sendiri.
400alias_invalid, alias_reservedFormat alias salah, atau kata dicadangkan sistem.
401unauthorizedServer mewajibkan X-API-Key.
404not_foundTautan atau endpoint tidak ada.
409alias_takenAlias sudah dipakai.
413 / 415payload_too_large, unsupported_media_typeBody lebih dari 4 KB, atau bukan JSON.
429rate_limitedMelewati batas. Tunggu sesuai Retry-After.

Alur pengunjung

Saat seseorang membuka tautan pendekmu, ia melewati tiga langkah otomatis sebelum sampai ke tujuan:

  1. Cloudflare Turnstile memverifikasi koneksi. Pengunjung biasa lolos tanpa diminta apa pun.
  2. Tujuan dipindai VirusTotal. Hasilnya disimpan 24 jam agar pengunjung berikutnya langsung lolos.
  3. Tujuan aman, pengunjung dialihkan langsung. Bila hasil belum bisa dipastikan atau ada peringatan, muncul timer 10 detik sebelum dialihkan otomatis. Bila berbahaya, tautan diblokir.