s.mixdom.id

Dokumentasi API

Empat endpoint, semuanya membalas JSON, tanpa perlu kunci API. Batasnya sama dengan lewat formulir: 20 link per jam dan 100 link per hari untuk satu alamat IP.

Buat link pendek

POST https://s.mixdom.id/api/shorten

KolomWajibKeterangan
urlYaAlamat tujuan. Tanpa skema, https:// ditambahkan otomatis.
aliasTidakKode pilihan sendiri, 3–32 karakter.
passwordTidakKunci link. Minimal 4 karakter.
expires_daysTidakMasa aktif dalam hari, maksimal 365.
max_clicksTidakLink berhenti bekerja setelah dibuka sekian kali.

Contoh permintaan

curl -X POST https://s.mixdom.id/api/shorten \
  -H "Content-Type: application/json" \
  -d '{"url":"https://contoh.com/artikel/panjang","alias":"kucing-oren"}'

Contoh balasan

{
  "ok": true,
  "reused": false,
  "data": {
    "code": "kucing-oren",
    "short_url": "https://s.mixdom.id/kucing-oren",
    "target_url": "https://contoh.com/artikel/panjang",
    "stats_url": "https://s.mixdom.id/stats/kucing-oren",
    "qr_url": "https://s.mixdom.id/api/qr/kucing-oren",
    "expires_at": null,
    "created_at": "2026-08-19 10:24:11"
  }
}

Lihat detail link

GET https://s.mixdom.id/api/info/{kode}

Membalas jumlah klik, status, dan waktu pembuatan. Untuk link berkata sandi, target_url sengaja dikosongkan.

Ambil QR code

GET https://s.mixdom.id/api/qr/{kode}

Membalas gambar, bukan JSON. Bisa langsung dipasang di <img src> atau diunduh. QR dibuat di server ini sendiri, jadi alamat linkmu tidak pernah dikirim ke pembuat QR pihak ketiga.

Bentuk alamatHasilnya
/api/qr/{kode}SVG, ada maskot bunga matahari di tengah
/api/qr/{kode}.pngPNG, ada maskot. Bawaannya 640 px
?ukuran=1000Ubah sisi PNG. Dijepit ke rentang 200–1000 px
/api/qr/polos/{kode}.pngTanpa maskot. Lebih aman untuk cetak di bawah 2 cm. Nama berkasnya diberi akhiran -polos
?unduh=1Peramban menyimpannya sebagai berkas, bukan menampilkannya

Versi bermaskot memakai koreksi galat tingkat H, yang memulihkan sekitar 30% data rusak, jadi bagian yang tertutup gambar masih jauh di bawah batas dan tetap terbaca pemindai. Ada juga halaman siap bagikan di https://s.mixdom.id/qr/{kode}.

Cek ketersediaan alias

GET https://s.mixdom.id/api/alias-check?alias=kucing-oren

{ "ok": true, "available": false, "message": "Alias sudah dipakai. Coba yang lain." }

Kode status

KodeArtinya
201Link berhasil dibuat.
404Kode tidak terdaftar.
419Token sesi kedaluwarsa. Muat ulang halaman.
422Ada kolom yang tidak lolos periksa. Lihat error dan field.
429Batas pemakaian tercapai. Lihat header Retry-After.

Contoh dengan PHP

$ch = curl_init('https://s.mixdom.id/api/shorten');
curl_setopt_array($ch, [
    CURLOPT_POST           => true,
    CURLOPT_POSTFIELDS     => json_encode(['url' => $alamatPanjang]),
    CURLOPT_HTTPHEADER     => ['Content-Type: application/json'],
    CURLOPT_RETURNTRANSFER => true,
]);
$hasil = json_decode(curl_exec($ch), true);
echo $hasil['data']['short_url'];

Contoh dengan JavaScript

const res = await fetch("https://s.mixdom.id/api/shorten", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({ url: alamatPanjang })
});
const { data } = await res.json();
console.log(data.short_url);

Sopan santun