สร้างลิงก์สั้นแบบหมดอายุได้ด้วย POST ครั้งเดียว
ส่ง URL พร้อมชื่อและเวลาหมดอายุถ้าต้องการ API จะคืน shortcode กับเวลาหมดอายุ ส่วน endpoint อื่นใช้สำหรับอ่านข้อมูลหรือลบลิงก์ที่สร้างไว้ API key ใช้ได้เฉพาะแพ็กเกจ Max ส่วน Free และ Pro ใช้งานผ่าน Dashboard
POST/api/links
คำขอshell · ตัวอย่าง
curl -X POST https://shor10.co/api/links \
-H "Authorization: Bearer sk_live_xxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"originalUrl":"https://example.com/very/long/path","alias":"spring-sale","ttl":"7d"}'ข้อมูลใน BODY
originalUrlต้องระบุURL แบบเต็มที่ขึ้นต้นด้วย http หรือ https
aliasไม่บังคับใช้ a-z, 0-9 และขีดกลาง ความยาว 3 ถึง 32 ตัวอักษร ถ้าไม่ระบุ ระบบจะสุ่มให้
ttlไม่บังคับใช้ 1h · 24h · 7d · 30d หรือ "never" ถ้าไม่ต้องการให้หมดอายุ ถ้าไม่ระบุ ลิงก์จะหมดอายุใน 24 ชั่วโมง
201 CREATED
{
"shortcode": "spring-sale",
"shortUrl": "https://shor10.co/spring-sale",
"expiresAt": "2026-08-03T09:00:00Z"
}การลบลิงก์
การลบผ่าน API ให้ผลเหมือนลบจาก Dashboard โดย shortcode จะหยุดทำงานทันที ประวัติจะถูกเก็บใน Archive และมีเพียงเจ้าของบัญชีเท่านั้นที่ลบได้ผ่าน session หรือ Bearer key
DELETE/api/links/:id→ 204, ไม่มี response body
curl -X DELETE https://shor10.co/api/links/<id> \ -H "Authorization: Bearer sk_live_xxxxxxxxxxxx"
รหัสสถานะ
รหัสความหมายเกิดเมื่อโค้ด
201สร้างสำเร็จลิงก์ถูกสร้างและพร้อมใช้งานโค้ดไม่มีโค้ดข้อผิดพลาด
302พบลิงก์ค่าที่ผู้เข้าชมได้รับเมื่อเปิด shor10.co/shortcodeโค้ดไม่มีโค้ดข้อผิดพลาด
400คำขอไม่ถูกต้องมีฟิลด์ที่ไม่ผ่านกฎการตรวจสอบ และ response จะระบุฟิลด์นั้นไว้ใน field ส่วน invalid_json ไม่มี field เพราะ request body อ่านไม่สำเร็จ จึงไม่มีฟิลด์ให้ระบุ และยังมีโค้ด 400 อื่น ๆ นอกเหนือจากที่แสดงไว้โค้ด
invalid_jsonoriginal_url_requiredalias_charsetttl_preset_invalid401ยืนยันตัวตนไม่ผ่านBearer key หายไป ผิดรูปแบบ หรือถูกเพิกถอน POST ก็ตอบ 401 เช่นกันเมื่อส่ง key มาด้วย ส่วน POST ที่ไม่ได้ส่งข้อมูลยืนยันตัวตนเลยจะได้ลิงก์แบบไม่ล็อกอินแทนโค้ด
unauthorized403ไม่มีสิทธิ์key ใช้งานได้ แต่แพ็กเกจของคุณไม่ครอบคลุมคำขอนี้ custom_alias_requires_pro จะระบุ field ส่วน monthly_link_limit และ api_keys_require_max จำกัดที่ระดับบัญชีไม่ใช่ที่ฟิลด์ จึงไม่มี fieldโค้ด
api_keys_require_maxcustom_alias_requires_promonthly_link_limit409ชื่อซ้ำalias นี้ถูกใช้แล้ว response body จะแนะนำชื่อที่ยังว่างโค้ด
alias_taken404ไม่พบไม่มีลิงก์ที่ตอบ shortcode นี้ อาจไม่เคยถูกสร้าง ถูกลบไปแล้ว หรือเป็นของบัญชีอื่นโค้ด
link_not_found410หมดอายุค่าที่ผู้เข้าชมได้รับเมื่อลิงก์หมดอายุแล้ว คือหน้าหมดอายุของ shor10 ที่ส่งกลับเป็น HTML ไม่ใช่ JSONโค้ดไม่มีโค้ดข้อผิดพลาด
429ส่งคำขอมากเกินไปเรียกด้วย Bearer เกิน 120 ครั้งต่อนาทีในคีย์เดียว Retry-After ระบุเวลาที่ควรรอก่อนลองใหม่ หน่วยเป็นวินาที ส่วนการสร้างลิงก์แบบไม่ล็อกอินก็มีการจำกัดอัตราเช่นกันแต่ไม่ส่ง Retry-Afterโค้ด
api_key_rate_limited503บริการไม่พร้อมใช้งานระบบจัดเก็บลิงก์ไม่ตอบสนอง หรือการตรวจสอบ key เข้าถึงระบบไม่ได้โค้ด
link_storage_unavailableสร้าง key ได้ที่ Settings
สร้าง key ใน Settings > API keys จากนั้นส่ง Authorization: Bearer sk_live_… ไปกับ GET/POST /api/links และ DELETE /api/links/:id