Lanjut ke konten utama
cutty.dev
Untuk developer

API dan server MCP

Buat dan kelola tautan pendek dari kodemu sendiri — lewat REST API atau melalui server MCP di asisten AI-mu.

cutty punya API publik dan server MCP. Yang pertama memungkinkanmu membuat dan mengubah tautan dari kode; yang kedua bekerja langsung dari asisten AI yang memahami protokol MCP. Keduanya memakai kunci API yang sama.

Kunci API

Autentikasi setiap permintaan dengan header:

Authorization: Bearer ck_your_key

Cara mendapatkan kunci: masuk, buka dashboardAPI keysCreate key. Kunci lengkap (diawali ck_) hanya ditampilkan sekali, saat dibuat — segera simpan di tempat yang aman. Batasnya 120 permintaan per menit per kunci.

Base URL

Semua endpoint REST berada di bawah https://cutty.dev/api/v1. Permintaan dan respons berupa JSON.

Membuat tautan

POST /api/v1/links — body JSON minimal butuh url. Sisanya opsional:

  • url — alamat tujuan (wajib)
  • slug — akhiran khusus, 3–40 karakter; kosongkan untuk akhiran acak
  • expiresAt — tanggal kedaluwarsa dalam format ISO 8601
  • maxHits — batas klik (1–1.000.000)
  • password — kata sandi yang melindungi tautan
  • tags — label dipisahkan koma untuk mengatur di dashboard
  • folder — nama folder tempat tautan diletakkan
  • utmSource, utmMedium, utmCampaign — parameter UTM yang ditambahkan saat pengalihan

Responsnya memberimu slug, shortUrl, dan target.

curl -X POST https://cutty.dev/api/v1/links \
  -H "Authorization: Bearer ck_your_key" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://example.com/a/very/long/address","slug":"offer","tags":"campaign,summer"}'

Daftar dan satu tautan

GET /api/v1/links mengembalikan semua tautanmu. GET /api/v1/links/{slug} — detail satu tautan.

curl https://cutty.dev/api/v1/links/offer \
  -H "Authorization: Bearer ck_your_key"

Memperbarui dan menghapus

PATCH /api/v1/links/{slug} memperbarui field yang kamu kirim, DELETE /api/v1/links/{slug} menghapus tautan.

curl -X PATCH https://cutty.dev/api/v1/links/offer \
  -H "Authorization: Bearer ck_your_key" \
  -H "Content-Type: application/json" \
  -d '{"maxHits":500}'

Lewat PATCH kamu bisa mengatur, antara lain: targetUrl, expiresAt, maxHits, status, password, tags, folder, ditambah field lanjutan di bawah. Field yang diset null (atau string kosong) akan menghapus properti tersebut.

Targeting, A/B, dan field lanjutan

Hal-hal yang sama yang kamu dapat di editor tautan juga tersedia lewat API:

  • rules — array aturan pengalihan berdasarkan negara atau perangkat, mis. [{"kind":"country","match":"PL","url":"https://shop.pl"},{"kind":"device","match":"ios","url":"https://apps.apple.com/..."}]
  • abUrls — rotasi A/B: array [{"url":"https://a.com","weight":1},{"url":"https://b.com","weight":1}]; dipakai saat tidak ada aturan yang cocok
  • startsAt — tanggal (ISO 8601) tautan mulai aktif; sebelum itu, tautan mengembalikan 425
  • webhookUrl — alamat yang menerima notifikasi POST pada setiap klik (fire-and-forget)
  • serveOg dengan ogTitle, ogDescription, ogImageUrl — kartu pratinjau khusus untuk crawler sosial (manusia tetap dialihkan)
curl -X PATCH https://cutty.dev/api/v1/links/offer \
  -H "Authorization: Bearer ck_your_key" \
  -H "Content-Type: application/json" \
  -d '{"rules":[{"kind":"country","match":"DE","url":"https://example.de"}]}'

Operasi massal

POST /api/v1/bulk membuat banyak tautan dalam satu permintaan. Kirim array links (tiap item seperti pembuatan biasa), hingga 500 sekaligus. Responsnya mengembalikan hasil per baris.

curl -X POST https://cutty.dev/api/v1/bulk \
  -H "Authorization: Bearer ck_your_key" \
  -H "Content-Type: application/json" \
  -d '{"links":[{"url":"https://a.com"},{"url":"https://b.com","slug":"b"}]}'

Statistik tautan

GET /api/v1/links/{slug}/stats mengembalikan ringkasan klik: total, rincian per perangkat dan browser, serta distribusi selama 24 jam terakhir.

curl https://cutty.dev/api/v1/links/offer/stats \
  -H "Authorization: Bearer ck_your_key"

Server MCP

Kalau kamu bekerja dengan asisten AI, kamu bisa menghubungkan cutty lewat MCP (Model Context Protocol) dan memintanya memperpendek serta mengatur tautan langsung di percakapan. Server berjalan di https://mcp.cutty.dev/mcp lewat Streamable HTTP, dan kamu mengautentikasi dengan kunci API yang sama — header Authorization: Bearer ck_....

Daftar lengkap alat, cuplikan koneksi siap pakai, dan contoh ada di halaman terpisah: server MCP cutty.

Ada yang tidak berfungsi?

Kirim email ke [email protected] — saya balas di hari yang sama.