ข้ามไปยังเนื้อหาหลัก
cutty.dev
สำหรับนักพัฒนา

API และเซิร์ฟเวอร์ MCP

สร้างและจัดการลิงก์สั้นจากโค้ดของคุณเอง — ผ่าน REST API หรือผ่านเซิร์ฟเวอร์ MCP ในผู้ช่วย AI ของคุณ

cutty มี API สาธารณะและเซิร์ฟเวอร์ MCP ตัวแรกให้คุณสร้างและแก้ไขลิงก์จากโค้ดได้ ส่วนตัวที่สองทำงานได้ตรงจากผู้ช่วย AI ที่พูดโปรโตคอล MCP ได้ ทั้งสองอย่างใช้ API key เดียวกัน

API key

ยืนยันตัวตนทุกการเรียกด้วย header นี้:

Authorization: Bearer ck_your_key

หาคีย์ได้จากไหน: ลงชื่อเข้าใช้ เปิดแดชบอร์ดของคุณ → API keysCreate key คีย์เต็ม (ขึ้นต้นด้วย ck_) จะแสดงเพียงครั้งเดียวตอนสร้างเท่านั้น — รีบเก็บไว้ในที่ปลอดภัยทันที ขีดจำกัดคือ 120 คำขอต่อนาทีต่อคีย์

Base URL

endpoint REST ทั้งหมดอยู่ภายใต้ https://cutty.dev/api/v1 ทั้งคำขอและการตอบกลับเป็น JSON

การสร้างลิงก์

POST /api/v1/links — body แบบ JSON ต้องมีอย่างน้อย url ที่เหลือเป็นออปชัน:

  • url — ที่อยู่ปลายทาง (จำเป็น)
  • slug — ตอนท้ายที่กำหนดเอง 3–40 อักขระ; ละไว้เพื่อให้สุ่มให้
  • expiresAt — วันหมดอายุในรูปแบบ ISO 8601
  • maxHits — ขีดจำกัดการคลิก (1–1,000,000)
  • password — รหัสผ่านที่ป้องกันลิงก์
  • tags — ป้ายกำกับคั่นด้วยจุลภาคเพื่อจัดระเบียบในแดชบอร์ด
  • folder — ชื่อโฟลเดอร์ที่จะเก็บลิงก์
  • utmSource, utmMedium, utmCampaign — พารามิเตอร์ UTM ที่ต่อท้ายตอนเปลี่ยนเส้นทาง

การตอบกลับจะให้ slug, shortUrl และ 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"}'

การแสดงรายการและลิงก์เดียว

GET /api/v1/links คืนค่าลิงก์ทั้งหมดของคุณ GET /api/v1/links/{slug} — รายละเอียดของลิงก์เดียว

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

การอัปเดตและการลบ

PATCH /api/v1/links/{slug} อัปเดตเฉพาะฟิลด์ที่คุณส่งมา DELETE /api/v1/links/{slug} ลบลิงก์

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

ผ่าน PATCH คุณตั้งค่าได้หลายอย่าง เช่น: targetUrl, expiresAt, maxHits, status, password, tags, folder รวมถึงฟิลด์ขั้นสูงด้านล่าง ฟิลด์ที่ตั้งเป็น null (หรือสตริงว่าง) จะล้างค่าคุณสมบัตินั้น

Targeting, A/B และฟิลด์ขั้นสูง

สิ่งเดียวกับที่คุณได้ในตัวแก้ไขลิงก์ก็ใช้ผ่าน API ได้:

  • rules — อาร์เรย์ของกฎเปลี่ยนเส้นทางตามประเทศหรืออุปกรณ์ เช่น [{"kind":"country","match":"PL","url":"https://shop.pl"},{"kind":"device","match":"ios","url":"https://apps.apple.com/..."}]
  • abUrls — การหมุน A/B: อาร์เรย์ [{"url":"https://a.com","weight":1},{"url":"https://b.com","weight":1}]; ใช้เมื่อไม่มีกฎไหนตรง
  • startsAt — วันที่ (ISO 8601) ที่ลิงก์เริ่มทำงาน; ก่อนหน้านั้นลิงก์จะคืนค่า 425
  • webhookUrl — ที่อยู่ที่จะได้รับการแจ้งเตือนแบบ POST ทุกครั้งที่มีคลิก (fire-and-forget)
  • serveOg พร้อม ogTitle, ogDescription, ogImageUrl — การ์ดพรีวิวที่ปรับแต่งเองสำหรับบอตโซเชียล (คนจริงยังคงถูกเปลี่ยนเส้นทาง)
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"}]}'

การทำงานแบบกลุ่ม

POST /api/v1/bulk สร้างลิงก์จำนวนมากในคำขอเดียว ส่งอาร์เรย์ links (แต่ละรายการเหมือนการสร้างปกติ) ได้สูงสุด 500 รายการต่อครั้ง การตอบกลับจะคืนผลลัพธ์ต่อหนึ่งรายการ

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"}]}'

สถิติลิงก์

GET /api/v1/links/{slug}/stats คืนค่าสรุปการคลิก: ยอดรวม การแยกตามอุปกรณ์และเบราว์เซอร์ และการกระจายในช่วง 24 ชั่วโมงที่ผ่านมา

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

เซิร์ฟเวอร์ MCP

ถ้าคุณทำงานกับผู้ช่วย AI คุณเชื่อมต่อ cutty ผ่าน MCP (Model Context Protocol) แล้วสั่งให้มันย่อและจัดระเบียบลิงก์ได้เลยในบทสนทนา เซิร์ฟเวอร์ทำงานที่ https://mcp.cutty.dev/mcp ผ่าน Streamable HTTP และคุณยืนยันตัวตนด้วย API key เดียวกัน — header Authorization: Bearer ck_...

รายการเครื่องมือทั้งหมด ตัวอย่างการเชื่อมต่อพร้อมใช้ และตัวอย่างอื่น ๆ อยู่ในหน้าเฉพาะ: เซิร์ฟเวอร์ MCP ของ cutty

มีอะไรไม่ทำงานหรือเปล่า?

เขียนมาที่ [email protected] — ผมตอบภายในวันเดียวกัน