Buat dan periksa tautan pendek dari aplikasimu sendiri. Format JSON, tanpa SDK, satu permintaan sudah cukup.
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.
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.
| Mode | Batas buat tautan |
|---|---|
| Tanpa kunci | 6 permintaan per menit per IP |
Dengan X-API-Key | 120 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.
| Field | Tipe | Keterangan |
|---|---|---|
url | string, wajib | Tujuan. http:// atau https://, maksimal 2048 karakter. Tanpa skema akan diberi https://. |
alias | string | Path kustom, 3–32 karakter: huruf, angka, -, _. Kosongkan untuk kode acak 4 karakter. |
prefix | boolean | true = 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.
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).
curl {{BASE}}/api/check/promo-akhir-tahun
# {"ok":true,"alias":"promo-akhir-tahun","available":true}
{"ok":true,"links":1248,"clicks":50321}
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}'// Node.js 18+ atau browser
const res = await fetch("{{BASE}}/api/shorten", {
method: "POST",
headers: { "Content-Type": "application/json", "X-API-Key": "KUNCI_KAMU" },
body: JSON.stringify({ url: "https://contoh.com/promo", alias: "promo", prefix: true }),
});
const data = await res.json();
if (!data.ok) throw new Error(data.error.message);
console.log(data.short);import requests
r = requests.post(
"{{BASE}}/api/shorten",
headers={"X-API-Key": "KUNCI_KAMU"},
json={"url": "https://contoh.com/promo", "alias": "promo", "prefix": True},
timeout=10,
)
data = r.json()
print(data["short"] if data["ok"] else data["error"]["message"])<?php
$ch = curl_init("{{BASE}}/api/shorten");
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ["Content-Type: application/json", "X-API-Key: KUNCI_KAMU"],
CURLOPT_POSTFIELDS => json_encode(["url" => "https://contoh.com/promo", "alias" => "promo", "prefix" => true]),
]);
$data = json_decode(curl_exec($ch), true);
echo $data["ok"] ? $data["short"] : $data["error"]["message"];Semua error berformat sama: {"ok":false,"error":{"code":"...","message":"..."}}.
| HTTP | code | Arti |
|---|---|---|
| 400 | invalid_url | URL tidak valid, bukan http(s), memakai IP privat/localhost, atau menunjuk ke domain ini sendiri. |
| 400 | alias_invalid, alias_reserved | Format alias salah, atau kata dicadangkan sistem. |
| 401 | unauthorized | Server mewajibkan X-API-Key. |
| 404 | not_found | Tautan atau endpoint tidak ada. |
| 409 | alias_taken | Alias sudah dipakai. |
| 413 / 415 | payload_too_large, unsupported_media_type | Body lebih dari 4 KB, atau bukan JSON. |
| 429 | rate_limited | Melewati batas. Tunggu sesuai Retry-After. |
Saat seseorang membuka tautan pendekmu, ia melewati tiga langkah otomatis sebelum sampai ke tujuan: