POSTส่ง SMS
ส่งข้อความ SMS ไปยังเบอร์ปลายทาง รองรับการส่งครั้งละ 1 เบอร์ หรือ batch ได้สูงสุด 2,000,000 เบอร์ต่อ request เมื่อสำเร็จจะคืนค่า uuid ใช้ดูสถานะ/รายงานการส่งที่ GET /api/v2/sms/{uuid}/recipients
วิธี authenticate
สร้าง API key ที่หน้า Settings → API Keys จากนั้นแนบ header x-api-key: <key> ทุกครั้งที่ยิง request
Endpoint POST /api/v2/sms/send ต้องใช้ API key ที่มี scope sms:send หรือ * เท่านั้น ส่วน endpoint อื่นใน docs นี้ใช้ API key ที่ valid ก็เพียงพอ
พารามิเตอร์
content หรือ templateId อย่างใดอย่างหนึ่ง66XXXXXXXXX หรือ 0XXXXXXXXX สูงสุด 2,000,000 เบอร์ต่อ request *ต้องส่ง msisdns หรือ contactGroupId อย่างใดอย่างหนึ่งcontent – ใส่ variables เพื่อแทนค่า {{name}}{"name":"คุณตูน"}2026-06-01T10:00:00+07:00true เพื่อตรวจราคาและจำนวนข้อความโดยไม่หักเครดิตและไม่ส่งจริงการตอบกลับ
สถานะปลายทาง (per-recipient)
เรียก GET /api/v2/sms/{uuid}/recipients เพื่อรับสถานะของแต่ละเบอร์
รับเข้าระบบ รอส่งให้ผู้ให้บริการ
ปลายทางรับสำเร็จ ✓
ส่งไม่สำเร็จ (เบอร์ปิด/ไม่มีสัญญาณ)
เบอร์ไม่ถูกต้อง
เบอร์ติด blocklist
หมดเวลา retry
ไม่ได้รับ delivery report ภายในเวลาที่กำหนด
Error format
เมื่อ API ตอบ status code 4xx/5xx body จะอยู่ในรูปแบบ JSON เดียวกันเสมอ:
{
"error": "Insufficient credits",
"code": "INSUFFICIENT_CREDITS"
} error เป็นข้อความที่อ่านง่าย, code เป็น machine-readable (มีในบาง endpoint เท่านั้น เช่น send/retry). HTTP status code ที่พบบ่อย:
พารามิเตอร์ไม่ถูกต้อง
ไม่มี/API key ไม่ถูกต้อง
เครดิตไม่พอ
scope ไม่พอ หรือไม่ใช่เจ้าของ resource
ไม่พบ resource
เกิน rate limit
POSTPreview cost
คำนวณจำนวนข้อความ (parts) + จำนวนเครดิตที่จะถูกหัก ก่อนเรียก /send จริง ไม่ดึงเครดิตและไม่ส่ง SMS
พารามิเตอร์ (body)
msisdns หรือ contactGroupIdcontentPOSTยกเลิก scheduled SMS
ยกเลิก SMS ที่ตั้งเวลาส่งล่วงหน้าแต่ยังไม่ถึงเวลา ยกเลิกแล้วเครดิตจะถูกคืน (ถ้าหักไปก่อน)
Path
/sendยกเลิกได้เฉพาะ SMS ที่ตั้งเวลาไว้ล่วงหน้าและยังไม่ถึงเวลาส่ง (มีค่า scheduledTime) ถ้า SMS ถูกประมวลผลไปแล้ว/ส่งเสร็จแล้ว/ถูกยกเลิกแล้ว จะตอบ HTTP 400 หรือ 409 พร้อม code: NOT_SCHEDULED / ALREADY_CANCELLED / ALREADY_PROCESSING
GETรายการ SMS
รายการ SMS ของบัญชี เรียงล่าสุดก่อน
Query parameters
sent | failed | pending | scheduled | cancelledGETดึง 1 SMS
รายละเอียดของ 1 SMS รวมถึง drSummary (จำนวนเบอร์แต่ละสถานะ) เมื่อส่งเสร็จแล้ว
GETRecipients (per-recipient status)
สถานะปลายทางทีละเบอร์ รองรับ cursor pagination เพื่อเลื่อนรายการขนาดใหญ่ได้รวดเร็ว แม้การส่งมีผู้รับระดับล้านเบอร์
Query parameters
nextCursor ที่ได้จาก response ก่อนหน้า (เริ่มจาก 0 = หน้าแรก) เพื่อดึงหน้าถัดไปpending | success | failed | invalid | blocked | expired | timeoutเมื่อใช้ after response จะมี nextCursor + hasMore แทนค่า total (ดูสรุปจำนวนทั้งหมดของแต่ละสถานะที่ summary[])
GETเครดิตคงเหลือ
เครดิตคงเหลือของบัญชี (ใช้ดูก่อนตัดสินใจส่ง batch ใหญ่)
GETรายการ sender
sender name ทั้งหมดของบัญชี (รวม shared) ส่ง SMS ได้เฉพาะ sender ที่ status = "approved"
ขอ sender name ใหม่ผ่าน หน้า Senders ในระบบ (มีขั้นตอนยืนยันเอกสาร — ไม่รองรับผ่าน API)