API pengesahan SMS
API SNSSIM menguruskan pembelian nombor, pengesahan kod, pembatalan, semakan kredit dan harga dalam satu permintaan HTTP. Menggunakan kaedah handler_api yang standard industri, hanya perlu menukar alamat dan kunci API pada program sedia ada untuk sambungan segera.
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- Kaedah standard industri
- handler_api
- Setiap kunci API
- 300 kali seminit
- Negara / Perkhidmatan
- 145 / 1,255
- Bayaran dikembalikan jika tiada kod
- 20 minit
Kaedah standard industri
Setiap kunci API
Negara / Perkhidmatan
Bayaran dikembalikan jika tiada kod
Bagaimana cara mendapatkan kunci API?
Hasilkan kunci API di menu API pada skrin akaun selepas log masuk. Kunci hanya dipaparkan sekali semasa penjanaan, simpan dengan segera. API menggunakan kredit dan harga yang sama dengan antara muka web.
Apakah alamat asas?
Semua permintaan dihantar melalui GET ke alamat yang sama dengan menambah api_key dan action.
https://snssim.com/stubs/handler_api.php?api_key=API_KEY&action=...
Permintaan apa yang boleh dihantar?
Terdapat 7 jenis permintaan yang tersedia, dari pembelian nombor hingga pengesahan kod, pembatalan dan semakan kredit.
| action | Fungsi | Contoh respons |
|---|---|---|
| getBalance | Semak baki | ACCESS_BALANCE:12.50 |
| getPrices&service=telegram&country=gb | Harga dan nombor tersedia mengikut perkhidmatan dan negara | {"gb":{"telegram":{"cost":0.207,"count":8877728}}} |
| getNumber&service=telegram&country=gb | Pembelian nombor | ACCESS_NUMBER:ID:PHONE |
| getStatus&id=ID | Semak kod | STATUS_WAIT_CODE / STATUS_OK:CODE |
| setStatus&id=ID&status=8 | Batal penggunaan nombor (bayaran penuh dikembalikan jika kod tidak diterima) | ACCESS_CANCEL |
| setStatus&id=ID&status=3 | Dapatkan kod pengesahan tambahan ke nombor yang sama | ACCESS_RETRY_GET |
| setStatus&id=ID&status=6 | Tamatkan penggunaan | ACCESS_ACTIVATION |
Medan permintaan
| Nama | Wajib | Penerangan |
|---|---|---|
| api_key | Semua | Kunci API yang dibuat di skrin akaun |
| action | Semua | getBalance, getPrices, getNumber, getStatus, setStatus |
| service | getNumber | Kod nama perkhidmatan (contoh: telegram, whatsapp, google). Nilai yang sama seperti pada halaman senarai perkhidmatan |
| country | getNumber | Kod negara 2 huruf (contoh: gb, us, id) |
| id | getStatus, setStatus | ID nombor yang dikeluarkan oleh getNumber (bermula dengan N) |
| status | setStatus | 8 untuk batal, 3 untuk minta kod semula, 6 untuk tamat, 1 untuk sedia |
Teks respons dan maksud
Respons diberikan dalam teks ringkas. Status potongan kredit juga dipaparkan.
| Respons | Maksud | Wang |
|---|---|---|
| ACCESS_NUMBER:ID:PHONE | Nombor telah diterima | Harga nombor ditolak |
| STATUS_WAIT_CODE | Sedang menunggu kod | Kekal |
| STATUS_OK:CODE | Kod telah tiba | Pembayaran selesai |
| STATUS_WAIT_RETRY:CODE | Menunggu kod pengesahan tambahan (termasuk kod sebelumnya) | Tiada caj tambahan |
| STATUS_CANCEL | Dibatalkan atau masa tamat | Dipulangkan jika tiada kod |
| ACCESS_CANCEL | Dibatalkan | Bayaran balik penuh |
| ACCESS_RETRY_GET | Menunggu penerimaan kod sekali lagi ke nombor yang sama | Tiada caj tambahan |
| ACCESS_ACTIVATION | Penggunaan nombor telah selesai | Kekal |
| NO_BALANCE | Tambah nilai baki dan terima serta-merta | Tidak ditolak |
| NO_NUMBERS | Kami tidak dapat menyediakan nombor untuk negara ini buat masa ini | Tidak ditolak |
| NO_ACTIVATIONS | Anda mempunyai 20 nombor terbuka | Tidak ditolak |
| EARLY_CANCEL_DENIED | Pilih 'Selesai' (6) untuk nombor yang telah menerima kod pengesahan, bukan 'Batal' | Kekal |
| BAD_KEY | Kunci API tidak sepadan | Tidak ditolak |
| BAD_SERVICE / BAD_COUNTRY | Kod perkhidmatan atau negara tidak tepat | Tidak ditolak |
| NO_ACTIVATION | ID nombor tidak ditemui | Kekal |
| TOO_MANY_REQUESTS | Melebihi 300 permintaan seminit | Tidak ditolak |
Apakah urutan menerima kod melalui API?
Ini adalah 4 langkah lengkap: menerima nombor, memasukkannya, mengesahkan kod dan menyelesaikan.
- 1 langkah
Dapatkan nombor
Pilih perkhidmatan dan negara yang diinginkan melalui getNumber untuk mendapatkan nombor.
action=getNumber&service=telegram&country=gb > ACCESS_NUMBER:SS8Q2K7:447700900123
- 2 langkah
Masukkan nombor
Masukkan nombor yang dibeli pada halaman pendaftaran atau program.
+44 7700 900123
- 3 langkah
Semak kod
Periksa status kod setiap 5 saat dengan memanggil getStatus.
action=getStatus&id=SS8Q2K7 > STATUS_OK:48215
- 4 langkah
Selesai
Setelah memasukkan kod, selesaikan dengan setStatus 6. Kod akan dipulangkan automatik jika tiada dalam 20 minit.
action=setStatus&id=SS8Q2K7&status=6 > ACCESS_ACTIVATION
Contoh mengikut bahasa
Ini adalah proses lengkap menerima nombor, menunggu kod dan menyelesaikan. Ketik tab untuk menukar bahasa.
# 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);
}Soalan Lazim API
API menyediakan nombor untuk 1,255 perkhidmatan di 145 negara pada harga yang sama seperti antaramuka web.
- Apakah itu API pengesahan SMS?
- Fungsi untuk membeli nombor maya, mengesahkan kod dan membatalkan melalui permintaan HTTP dalam program. API SNSSIM menggunakan kaedah handler_api standard industri.
- Bolehkah saya terus menggunakan program yang saya gunakan di laman pengesahan SMS lain?
- Jika program anda menggunakan kaedah handler_api, anda boleh menyambung serta-merta dengan hanya menukar alamat asas dan kunci API.
- Adakah terdapat bayaran berasingan untuk API?
- Tiada perbezaan. API dan antara muka web menggunakan kredit dan harga yang sama.
- Berapa kali permintaan dibenarkan?
- Sehingga 300 permintaan seminit setiap kunci API. Melebihi had akan menyebabkan ralat TOO_MANY_REQUESTS tanpa potongan kredit.
- Adakah nombor yang dibeli melalui API boleh dipulangkan?
- Ya. Jika kod tidak tiba dalam 20 minit, nombor yang dibeli melalui API juga akan dipulangkan secara automatik sebagai kredit.
- Di mana saya boleh membuat kunci API?
- Buat kunci API di menu API pada skrin akaun selepas log masuk. Kunci hanya dipaparkan sekali semasa penjanaan, simpan dengan segera.
Cuba sambung sebaik sahaja mencipta kunci API
Selepas pendaftaran, isi kredit dan anda boleh menjana kunci API terus dari skrin akaun.