เริ่มต้นใช้งาน API สำหรับนักพัฒนาอย่างรวดเร็ว
ซื้อหมายเลขและอ่านรหัสจากซอฟต์แวร์ของคุณเอง สร้างคีย์ ดูราคา ซื้อหมายเลข รอ SMS แล้วปิดงาน ทีละขั้นตอน
ในหน้านี้
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
GET /api/dev/v1/balance HTTP/1.1
Host: smsgrab.com
Authorization: Bearer sgk_your_key_here
คีย์ควรอยู่บนเซิร์ฟเวอร์ อย่าใส่ไว้ในเว็บไซต์ ส่วนขยายเบราว์เซอร์ หรือแอปที่คุณแจกให้คนอื่น
3. ตรวจยอดเงินและราคา
export SMSGRAB_KEY="sgk_your_key_here"
curl -s https://smsgrab.com/api/dev/v1/balance \
-H "Authorization: Bearer $SMSGRAB_KEY"
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 คือราคาในแอป
{ "currency": "USD", "markup_percent": 80,
"items": [ { "service_id": "whatsapp", "country_id": "indonesia", "price_minor": 18,
"retail_price_minor": 25, "available_numbers": 30412 } ] }
4. ซื้อหมายเลข
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_CHANGEDIdempotency-Keyทำให้การลองใหม่ปลอดภัย การส่งคำขอซ้ำด้วยคีย์เดิมจะได้ผลลัพธ์แรกกลับมาแทนการซื้อซ้ำ
คำตอบคือ 201 Created พร้อมข้อมูลการเปิดใช้งาน
{ "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 วินาทีจนกว่าจะมีการเปลี่ยนแปลง
curl -s "https://smsgrab.com/api/dev/v1/activations/100000123?wait=25" \
-H "Authorization: Bearer $SMSGRAB_KEY"
เมื่อข้อความมาถึง status จะเป็น CODE_RECEIVED และ sms จะมีข้อความทั้งหมดจนถึงตอนนั้น
{ "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. ปิดงานหรือยกเลิก
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 และข้ามเหตุผลที่คุณยังไม่รู้จัก
{ "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
ข้อมูลอ้างอิงฉบับเต็มอยู่ใน เอกสารสำหรับนักพัฒนา
บทความนี้มีประโยชน์ไหม
ขอบคุณ ดีใจที่ช่วยได้