เลือกภาษา

เริ่มต้นใช้งาน API สำหรับนักพัฒนาอย่างรวดเร็ว

ซื้อหมายเลขและอ่านรหัสจากซอฟต์แวร์ของคุณเอง สร้างคีย์ ดูราคา ซื้อหมายเลข รอ SMS แล้วปิดงาน ทีละขั้นตอน

ในหน้านี้
  1. ใครใช้ได้บ้าง
  2. 1. สร้างคีย์ API
  3. 2. การยืนยันตัวตน
  4. 3. ตรวจยอดเงินและราคา
  5. 4. ซื้อหมายเลข
  6. 5. รอ SMS
  7. 6. ปิดงานหรือยกเลิก
  8. ค่าสถานะ
  9. ข้อผิดพลาด

API สำหรับนักพัฒนาของ SmsGrab ให้ซอฟต์แวร์ของคุณใช้หมายเลขเดียวกับในแอป ผ่าน REST API ที่ใช้ JSON เป็นบริการแบบชำระเงินที่มี ราคาสำหรับนักพัฒนา ของตัวเอง ชำระจากยอดเงินปกติใน SmsGrab และได้รับการคืนเงินอัตโนมัติแบบเดียวกัน

ใครใช้ได้บ้าง

  • บัญชีอีเมลที่ ยืนยันที่อยู่แล้ว บัญชีผู้เยี่ยมชมสร้างคีย์ไม่ได้
  • บัญชีที่ไม่มีข้อจำกัด

1. สร้างคีย์ API

เปิด บัญชี > นักพัฒนา บนเว็บไซต์ หรือ การตั้งค่า > API สำหรับนักพัฒนา ในแอป แล้วสร้างคีย์ เพื่อความปลอดภัย คุณต้องยืนยันด้วยรหัสผ่าน และรหัสยืนยันแบบ 2 ขั้นตอนหากเปิดไว้ เลือกขอบเขต read สำหรับเครื่องมือที่อ่านอย่างเดียว หรือ read และ purchase เพื่อซื้อหมายเลข

คีย์ขึ้นต้นด้วย sgk_ และแสดง เพียงครั้งเดียว เก็บไว้ในที่เก็บข้อมูลลับของเซิร์ฟเวอร์ ดู คีย์ API และความปลอดภัย

2. การยืนยันตัวตน

URL หลักคือ https://smsgrab.com/api/dev/v1 ส่งคีย์เป็น bearer token หรือในส่วนหัว X-Api-Key

HTTP
GET /api/dev/v1/balance HTTP/1.1
Host: smsgrab.com
Authorization: Bearer sgk_your_key_here

คีย์ควรอยู่บนเซิร์ฟเวอร์ อย่าใส่ไว้ในเว็บไซต์ ส่วนขยายเบราว์เซอร์ หรือแอปที่คุณแจกให้คนอื่น

3. ตรวจยอดเงินและราคา

Bash
export SMSGRAB_KEY="sgk_your_key_here"

curl -s https://smsgrab.com/api/dev/v1/balance \
  -H "Authorization: Bearer $SMSGRAB_KEY"
Bash
curl -s "https://smsgrab.com/api/dev/v1/prices?service=whatsapp&country=indonesia" \
  -H "Authorization: Bearer $SMSGRAB_KEY"

จำนวนเงินแสดงเป็น หน่วยย่อย ของ USD เสมอ 18 จึงหมายถึง 0.18 USD price_minor คือราคาสำหรับนักพัฒนาของคุณ และ retail_price_minor คือราคาในแอป

JSON
{ "currency": "USD", "markup_percent": 80,
  "items": [ { "service_id": "whatsapp", "country_id": "indonesia", "price_minor": 18,
               "retail_price_minor": 25, "available_numbers": 30412 } ] }

4. ซื้อหมายเลข

Bash
curl -s -X POST https://smsgrab.com/api/dev/v1/activations \
  -H "Authorization: Bearer $SMSGRAB_KEY" \
  -H "Idempotency-Key: order-7f3c2a" \
  -H "Content-Type: application/json" \
  -d '{"service":"whatsapp","country":"indonesia","max_price_minor":20}'
  • service และ country รับ id ของเรา เช่น whatsapp และ indonesia ประเทศยังรับรหัส ISO เช่น ID ได้ด้วย
  • max_price_minor ช่วยปกป้องคุณ หากราคาขึ้น จะไม่มีการหักเงินและคุณจะได้ 409 PRICE_CHANGED
  • Idempotency-Key ทำให้การลองใหม่ปลอดภัย การส่งคำขอซ้ำด้วยคีย์เดิมจะได้ผลลัพธ์แรกกลับมาแทนการซื้อซ้ำ

คำตอบคือ 201 Created พร้อมข้อมูลการเปิดใช้งาน

JSON
{ "id": "5c1d0c2e-8a41-4f7e-9d7a-2f1d9f1b8c11", "compat_id": 100000123, "status": "WAITING_SMS",
  "service_id": "whatsapp", "country_id": "indonesia", "phone_number": "+6281234567890",
  "price_minor": 18, "currency": "USD",
  "created_at": "2026-09-27T10:05:00.000Z", "expires_at": "2026-09-27T10:25:00.000Z",
  "refunded": false, "refund_minor": 0, "sms": [] }

5. รอ SMS

แทนที่จะสอบถามถี่ๆ ในลูป ให้ API ถือคำขอไว้ได้นานสุด 30 วินาทีจนกว่าจะมีการเปลี่ยนแปลง

Bash
curl -s "https://smsgrab.com/api/dev/v1/activations/100000123?wait=25" \
  -H "Authorization: Bearer $SMSGRAB_KEY"

เมื่อข้อความมาถึง status จะเป็น CODE_RECEIVED และ sms จะมีข้อความทั้งหมดจนถึงตอนนั้น

JSON
{ "status": "CODE_RECEIVED",
  "sms": [ { "code": "482913", "text": "Your WhatsApp code is 482-913", "sender": "WhatsApp",
             "received_at": "2026-09-27T10:06:12.004Z" } ] }

ชอบการส่งแบบพุชมากกว่าการสอบถามใช่ไหม ตั้งค่า webhook

6. ปิดงานหรือยกเลิก

Bash
curl -s -X POST https://smsgrab.com/api/dev/v1/activations/100000123/finish \
  -H "Authorization: Bearer $SMSGRAB_KEY"

curl -s -X POST https://smsgrab.com/api/dev/v1/activations/100000123/cancel \
  -H "Authorization: Bearer $SMSGRAB_KEY"
  • finish หลังใช้รหัสแล้ว รับเฉพาะหลังจากรหัสมาถึง
  • cancel ระหว่างที่ยังรอรหัสแรก ระบบคืนราคาเต็ม
  • หากไม่ทำอะไร หมายเลขที่ไม่มีรหัสจะหมดอายุหลัง 20 นาทีและคืนเงินอัตโนมัติ

ค่าสถานะ

สถานะ ความหมาย
WAITING_SMS ซื้อแล้ว รอข้อความแรก
CODE_RECEIVED มีข้อความมาแล้วอย่างน้อยหนึ่งข้อความ
COMPLETED คุณปิดงานเอง หรือหมดเวลาหลังได้รหัส
CANCELLED ยกเลิกก่อนได้รหัส คืนเงินแล้ว
EXPIRED ไม่มีรหัสภายใน 20 นาที คืนเงินแล้ว

ข้อผิดพลาด

ข้อผิดพลาดทุกแบบมีโครงสร้างเดียวกัน ให้ตัดสินใจจาก code และ reason และข้ามเหตุผลที่คุณยังไม่รู้จัก

JSON
{ "code": "NO_NUMBERS_AVAILABLE", "message": "No numbers available for this service and country", "reason": "OUT_OF_STOCK" }

กรณีที่พบบ่อยคือ 402 INSUFFICIENT_BALANCE, 409 NO_NUMBERS_AVAILABLE, 409 PRICE_CHANGED, 422 พร้อม ACTIVATION_LIMIT_REACHED (แต่ละบัญชีรอพร้อมกันได้สูงสุด 100 หมายเลข) และ 429 RATE_LIMITED พร้อมส่วนหัว Retry-After

ข้อมูลอ้างอิงฉบับเต็มอยู่ใน เอกสารสำหรับนักพัฒนา

บทความนี้มีประโยชน์ไหม

ยังต้องการความช่วยเหลือใช่ไหม

เขียนถึงเรา เราตอบทุกข้อความ ปกติภายในไม่กี่ชั่วโมง

หรืออีเมลถึงเราที่ support@smsgrab.com