API ยืนยัน SMS
SNSSIM API จัดการการซื้อหมายเลข ตรวจสอบโค้ด ยกเลิก ตรวจสอบเครดิตและราคาด้วยคำขอ HTTP เดียว ใช้วิธี handler_api ที่เป็นมาตรฐานในอุตสาหกรรม เพียงเปลี่ยนที่อยู่และ API Key ในโปรแกรมเดิมก็สามารถเชื่อมต่อได้ทันที
GET /stubs/handler_api.php
?api_key=API_KEY&action=getNumber
&service=telegram&country=gb
ACCESS_NUMBER:SS8Q2K7:447700900123
GET ...&action=getStatus&id=SS8Q2K7
STATUS_OK:48215- มาตรฐานอุตสาหกรรม
- handler_api
- แต่ละคีย์ API
- 300 ครั้งต่อนาที
- ประเทศ / บริการ
- 145 / 1,255
- คืนเงินอัตโนมัติหากไม่มีรหัสภายใน
- 20 นาที
มาตรฐานอุตสาหกรรม
แต่ละคีย์ API
ประเทศ / บริการ
คืนเงินอัตโนมัติหากไม่มีรหัสภายใน
รับคีย์ API ได้อย่างไร?
สร้างคีย์ในเมนู API บนหน้าบัญชีหลังจากเข้าสู่ระบบ คีย์จะแสดงเพียงครั้งเดียวตอนสร้าง กรุณาบันทึกทันที API ใช้เครดิตและราคาเดียวกันกับเว็บ
ที่อยู่หลักคืออะไร?
คำขอทั้งหมดจะถูกส่งในรูปแบบ GET ไปยังที่อยู่เดียวกันโดยเพิ่ม api_key และ action
https://snssim.com/stubs/handler_api.php?api_key=API_KEY&action=...
คุณสามารถส่งคำขอใดได้บ้าง?
มีคำขอทั้งหมด 7 ประเภท ตั้งแต่การซื้อหมายเลขไปจนถึงการตรวจสอบรหัส การยกเลิก และการตรวจสอบเครดิต
| action | สิ่งที่ทำ | ตัวอย่างการตอบกลับ |
|---|---|---|
| getBalance | ตรวจสอบยอดเงิน | ACCESS_BALANCE:12.50 |
| getPrices&service=telegram&country=gb | ราคาและเบอร์คงเหลือตามบริการและประเทศ | {"gb":{"telegram":{"cost":0.207,"count":8877728}}} |
| getNumber&service=telegram&country=gb | ซื้อเบอร์ | ACCESS_NUMBER:ID:PHONE |
| getStatus&id=ID | ตรวจรหัส | STATUS_WAIT_CODE / STATUS_OK:CODE |
| setStatus&id=ID&status=8 | ยกเลิกการใช้หมายเลข (คืนเงินเต็มจำนวนหากไม่ได้รับรหัส) | ACCESS_CANCEL |
| setStatus&id=ID&status=3 | รับรหัสยืนยันเพิ่มเติมด้วยหมายเลขเดียวกัน | ACCESS_RETRY_GET |
| setStatus&id=ID&status=6 | เสร็จสิ้นการใช้งาน | ACCESS_ACTIVATION |
พารามิเตอร์คำขอ
| ชื่อ | จำเป็น | คำอธิบาย |
|---|---|---|
| api_key | ทั้งหมด | คีย์ API ที่สร้างในหน้าบัญชี |
| action | ทั้งหมด | getBalance, getPrices, getNumber, getStatus, setStatus |
| service | getNumber | รหัสบริการ (เช่น telegram, whatsapp, google) ค่าเดียวกันกับหน้ารายการบริการ |
| country | getNumber | รหัสประเทศ 2 หลัก (เช่น: gb, us, id) |
| id | getStatus, setStatus | ID เบอร์ที่ออกโดย getNumber (ขึ้นต้นด้วย N) |
| status | setStatus | 8 ยกเลิก, 3 ขอโค้ดใหม่, 6 จบ, 1 พร้อม |
ข้อความตอบกลับและความหมาย
การตอบกลับจะให้เป็นข้อความสั้นๆ และแสดงสถานะการหักเครดิต
| การตอบกลับ | ความหมาย | เงิน |
|---|---|---|
| ACCESS_NUMBER:ID:PHONE | ได้รับเบอร์แล้ว | ระบบตัดค่าเบอร์ |
| STATUS_WAIT_CODE | กำลังรอรหัส | คงเดิม |
| STATUS_OK:CODE | รหัสมาแล้ว | ชำระเงินเสร็จสิ้น |
| STATUS_WAIT_RETRY:CODE | กำลังรอรหัสยืนยันเพิ่มเติม (รวมรหัสก่อนหน้า) | ไม่มีค่าใช้จ่ายเพิ่ม |
| STATUS_CANCEL | ยกเลิกแล้วหรือหมดเวลา | คืนเงินหากไม่ได้รับรหัส |
| ACCESS_CANCEL | ยกเลิกแล้ว | คืนเต็มจำนวน |
| ACCESS_RETRY_GET | กำลังรอรับรหัสอีกครั้งด้วยหมายเลขเดียวกัน | ไม่มีค่าใช้จ่ายเพิ่ม |
| ACCESS_ACTIVATION | ใช้เบอร์เสร็จแล้ว | คงเดิม |
| NO_BALANCE | เติมยอดเงินแล้วรับได้ทันที | ไม่ถูกตัดเงิน |
| NO_NUMBERS | ขณะนี้ไม่สามารถให้บริการหมายเลขของประเทศนี้ได้ | ไม่ถูกตัดเงิน |
| NO_ACTIVATIONS | เปิดเบอร์อยู่ 20 เบอร์ | ไม่ถูกตัดเงิน |
| EARLY_CANCEL_DENIED | เลือกสิ้นสุด (6) สำหรับหมายเลขที่ได้รับรหัสยืนยันแล้ว ไม่ใช่การยกเลิก | คงเดิม |
| BAD_KEY | คีย์ API ไม่ถูกต้อง | ไม่ถูกตัดเงิน |
| BAD_SERVICE / BAD_COUNTRY | รหัสบริการหรือประเทศไม่ถูกต้อง | ไม่ถูกตัดเงิน |
| NO_ACTIVATION | ไม่พบ ID เบอร์ | คงเดิม |
| TOO_MANY_REQUESTS | เกิน 300 ครั้งต่อนาทีแล้ว | ไม่ถูกตัดเงิน |
ลำดับการรับโค้ดผ่าน API เป็นอย่างไร?
มี 4 ขั้นตอน: รับหมายเลข ป้อนหมายเลข ตรวจสอบรหัส และเสร็จสิ้น
- 1 ขั้นตอน
รับเบอร์
ใช้ getNumber เพื่อเลือกบริการและประเทศที่ต้องการเพื่อรับเบอร์
action=getNumber&service=telegram&country=gb > ACCESS_NUMBER:SS8Q2K7:447700900123
- 2 ขั้นตอน
ป้อนหมายเลข
ป้อนหมายเลขที่ซื้อในหน้าจอสมัครสมาชิกหรือโปรแกรม
+44 7700 900123
- 3 ขั้นตอน
ตรวจรหัส
เรียก getStatus ทุก 5 วินาทีเพื่อตรวจสอบว่าได้รับโค้ดหรือยัง
action=getStatus&id=SS8Q2K7 > STATUS_OK:48215
- 4 ขั้นตอน
จบ
หลังจากป้อนรหัสแล้ว ให้ทำการ setStatus 6 เพื่อเสร็จสิ้น หากไม่มีรหัสภายใน 20 นาที เงินจะถูกคืนอัตโนมัติ
action=setStatus&id=SS8Q2K7&status=6 > ACCESS_ACTIVATION
ตัวอย่างตามภาษา
นี่คือกระบวนการทั้งหมดตั้งแต่รับหมายเลข รอรหัส จนถึงเสร็จสิ้น กดแท็บเพื่อเปลี่ยนภาษา
# Balance
curl "https://snssim.com/stubs/handler_api.php?api_key=API_KEY&action=getBalance"
# Get a number (Telegram, United Kingdom)
curl "https://snssim.com/stubs/handler_api.php?api_key=API_KEY&action=getNumber&service=telegram&country=gb"
# ACCESS_NUMBER:N-8Q2K7XLM:447700900123
# Check the code (every 5 seconds)
curl "https://snssim.com/stubs/handler_api.php?api_key=API_KEY&action=getStatus&id=N-8Q2K7XLM"
# STATUS_WAIT_CODE or STATUS_OK:48215
# Finish (6) / Cancel (8, full refund before a code)
curl "https://snssim.com/stubs/handler_api.php?api_key=API_KEY&action=setStatus&id=N-8Q2K7XLM&status=6"import time, requests
BASE = "https://snssim.com/stubs/handler_api.php"
KEY = "API_KEY"
def call(**p):
return requests.get(BASE, params={"api_key": KEY, **p}, timeout=30).text
r = call(action="getNumber", service="telegram", country="gb")
if not r.startswith("ACCESS_NUMBER"):
raise SystemExit(r)
_, num_id, phone = r.split(":")
print("Number:", phone)
for _ in range(240): # 20 minutes
s = call(action="getStatus", id=num_id)
if s.startswith("STATUS_OK"):
print("Code:", s.split(":")[1])
call(action="setStatus", id=num_id, status=6)
break
time.sleep(5)// Node.js 18+
const BASE = "https://snssim.com/stubs/handler_api.php";
const KEY = "API_KEY";
const call = (p) => fetch(BASE + "?" + new URLSearchParams({ api_key: KEY, ...p })).then((r) => r.text());
const r = await call({ action: "getNumber", service: "telegram", country: "gb" });
if (!r.startsWith("ACCESS_NUMBER")) throw new Error(r);
const [, id, phone] = r.split(":");
console.log("Number:", phone);
for (let i = 0; i < 240; i++) {
const s = await call({ action: "getStatus", id });
if (s.startsWith("STATUS_OK")) {
console.log("Code:", s.split(":")[1]);
await call({ action: "setStatus", id, status: "6" });
break;
}
await new Promise((ok) => setTimeout(ok, 5000));
}<?php
$base = "https://snssim.com/stubs/handler_api.php";
$key = "API_KEY";
function call($p) { global $base, $key;
return file_get_contents($base . "?" . http_build_query(["api_key" => $key] + $p)); }
$r = call(["action" => "getNumber", "service" => "telegram", "country" => "gb"]);
if (strpos($r, "ACCESS_NUMBER") !== 0) exit($r);
[, $id, $phone] = explode(":", $r);
echo "Number: $phone\n";
for ($i = 0; $i < 240; $i++) {
$s = call(["action" => "getStatus", "id" => $id]);
if (strpos($s, "STATUS_OK") === 0) {
echo "Code: " . explode(":", $s)[1] . "\n";
call(["action" => "setStatus", "id" => $id, "status" => 6]);
break;
}
sleep(5);
}package main
import ("fmt"; "io"; "net/http"; "net/url"; "strings"; "time")
const base = "https://snssim.com/stubs/handler_api.php"
const key = "API_KEY"
func call(p url.Values) string {
p.Set("api_key", key)
r, _ := http.Get(base + "?" + p.Encode())
defer r.Body.Close()
b, _ := io.ReadAll(r.Body)
return string(b)
}
func main() {
r := call(url.Values{"action": {"getNumber"}, "service": {"telegram"}, "country": {"gb"}})
if !strings.HasPrefix(r, "ACCESS_NUMBER") { fmt.Println(r); return }
f := strings.Split(r, ":")
fmt.Println("Number:", f[2])
for i := 0; i < 240; i++ {
s := call(url.Values{"action": {"getStatus"}, "id": {f[1]}})
if strings.HasPrefix(s, "STATUS_OK") {
fmt.Println("Code:", strings.Split(s, ":")[1])
call(url.Values{"action": {"setStatus"}, "id": {f[1]}, "status": {"6"}})
return
}
time.Sleep(5 * time.Second)
}
}import java.net.URI; import java.net.URLEncoder; import java.net.http.*;
import java.nio.charset.StandardCharsets; import java.util.Map; import java.util.stream.Collectors;
public class SNSSIM {
static final String BASE = "https://snssim.com/stubs/handler_api.php", KEY = "API_KEY";
static final HttpClient http = HttpClient.newHttpClient();
static String call(Map<String, String> p) throws Exception {
String q = p.entrySet().stream().map(e -> e.getKey() + "=" + URLEncoder.encode(e.getValue(), StandardCharsets.UTF_8)).collect(Collectors.joining("&"));
return http.send(HttpRequest.newBuilder(URI.create(BASE + "?api_key=" + KEY + "&" + q)).build(), HttpResponse.BodyHandlers.ofString()).body();
}
public static void main(String[] a) throws Exception {
String r = call(Map.of("action", "getNumber", "service", "telegram", "country", "gb"));
if (!r.startsWith("ACCESS_NUMBER")) { System.out.println(r); return; }
String[] f = r.split(":");
System.out.println("Number: " + f[2]);
for (int i = 0; i < 240; i++) {
String s = call(Map.of("action", "getStatus", "id", f[1]));
if (s.startsWith("STATUS_OK")) { System.out.println("Code: " + s.split(":")[1]); call(Map.of("action", "setStatus", "id", f[1], "status", "6")); return; }
Thread.sleep(5000);
}
}
}using System.Net.Http;
const string Base = "https://snssim.com/stubs/handler_api.php";
const string Key = "API_KEY";
var http = new HttpClient();
async Task<string> Call(string q) => await http.GetStringAsync($"{Base}?api_key={Key}&{q}");
var r = await Call("action=getNumber&service=telegram&country=gb");
if (!r.StartsWith("ACCESS_NUMBER")) { Console.WriteLine(r); return; }
var f = r.Split(':');
Console.WriteLine($"Number: {f[2]}");
for (var i = 0; i < 240; i++)
{
var s = await Call($"action=getStatus&id={f[1]}");
if (s.StartsWith("STATUS_OK"))
{
Console.WriteLine($"Code: {s.Split(':')[1]}");
await Call($"action=setStatus&id={f[1]}&status=6");
break;
}
await Task.Delay(5000);
}คำถามที่พบบ่อยเกี่ยวกับ API
API ให้บริการหมายเลข 145 ประเทศ 1,255 บริการ ในราคาเดียวกับเว็บ
- SMS Verification API คืออะไร?
- เป็นฟังก์ชันที่ช่วยให้คุณสามารถซื้อหมายเลขเสมือน, ตรวจสอบรหัสยืนยัน, และยกเลิกได้ผ่านคำขอ HTTP SNSSIM API ใช้วิธี handler_api ซึ่งเป็นมาตรฐานในอุตสาหกรรม
- สามารถใช้โปรแกรมที่เคยใช้ในเว็บไซต์ยืนยัน SMS อื่นได้หรือไม่?
- หากโปรแกรมของคุณใช้ handler_api เพียงเปลี่ยนที่อยู่พื้นฐานและ API Key เพื่อเชื่อมต่อทันที
- มีค่าใช้จ่าย API แยกต่างหากหรือไม่?
- ไม่มีความแตกต่าง API และเว็บใช้เครดิตและราคาเดียวกัน
- สามารถขอได้กี่ครั้ง?
- แต่ละ API Key สามารถเรียกได้สูงสุด 300 ครั้งต่อนาที หากเกินจะเกิดข้อผิดพลาด TOO_MANY_REQUESTS และจะไม่หักเครดิต
- สามารถขอคืนเงินสำหรับเบอร์ที่ซื้อผ่าน API ได้หรือไม่?
- ใช่ หากรหัสไม่มาภายใน 20 นาที หมายเลขที่ซื้อผ่าน API จะถูกคืนเครดิตโดยอัตโนมัติ
- สร้างคีย์ API ได้ที่ไหน?
- สร้างในเมนู API บนหน้าบัญชีหลังจากเข้าสู่ระบบ คีย์จะแสดงเพียงครั้งเดียวตอนสร้าง กรุณาบันทึกทันที
สร้าง API Key แล้วเชื่อมต่อทันที
หลังจากสมัครสมาชิกและเติมเครดิต คุณสามารถสร้างคีย์ API ได้ทันทีในหน้าจอบัญชี