SMS Verification API
Ang SNSSIM API ay nagpo-proseso ng pagbili ng numero, pag-check ng code, cancellation, at pag-check ng credit at presyo sa isang HTTP request. Gamit ang standard na handler_api method, kailangan lang palitan ang address at API key sa existing na program para makakonekta.
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- Pamantayan sa industriya
- handler_api
- Bawat API key
- 300 beses kada minuto
- Bansa / Serbisyo
- 145 / 1,255
- Awtomatikong refund kapag walang code sa loob
- 20 minuto
Pamantayan sa industriya
Bawat API key
Bansa / Serbisyo
Awtomatikong refund kapag walang code sa loob
Paano makukuha ang API key?
Pagkatapos mag-log in, lumikha ng key sa API menu sa account screen. Ang key ay ipapakita lamang sa oras ng paglikha, kaya agad itong i-save. Ang API ay gumagamit ng parehong credit at presyo tulad ng web interface.
Ano ang base URL?
Ang lahat ng request ay ipapadala sa parehong address gamit ang GET method kasama ang api_key at action.
https://snssim.com/stubs/handler_api.php?api_key=API_KEY&action=...
Anong uri ng request ang pwede ipadala?
May 7 uri ng request na pwede: pagbili ng numero, pag-check ng code, pag-cancel, at pag-check ng credit.
| action | Ginagawa | Halimbawang response |
|---|---|---|
| getBalance | Tingnan ang balance | ACCESS_BALANCE:12.50 |
| getPrices&service=telegram&country=gb | Presyo at natitirang number bawat serbisyo at bansa | {"gb":{"telegram":{"cost":0.207,"count":8877728}}} |
| getNumber&service=telegram&country=gb | Bumili ng number | ACCESS_NUMBER:ID:PHONE |
| getStatus&id=ID | Tingnan ang code | STATUS_WAIT_CODE / STATUS_OK:CODE |
| setStatus&id=ID&status=8 | I-cancel ang numero (full refund kung walang natanggap na code) | ACCESS_CANCEL |
| setStatus&id=ID&status=3 | Makatanggap ng karagdagang verification code gamit ang parehong numero | ACCESS_RETRY_GET |
| setStatus&id=ID&status=6 | Tapusin ang paggamit | ACCESS_ACTIVATION |
Mga parameter ng request
| Pangalan | Kailangan | Paglalarawan |
|---|---|---|
| api_key | Lahat | API key na ginawa sa Account screen |
| action | Lahat | getBalance, getPrices, getNumber, getStatus, setStatus |
| service | getNumber | Service name code (halimbawa: telegram, whatsapp, google). Parehong value ito sa service list page. |
| country | getNumber | 2-digit country code (halimbawa: gb, us, id) |
| id | getStatus, setStatus | Numero ID na inisyu ng getNumber (nagsisimula sa N) |
| status | setStatus | 8 para kanselahin, 3 para humiling ng bagong code, 6 para matapos, 1 para maghanda |
Response text at kahulugan
Ang response ay ibibigay sa simpleng text format. Ipapakita rin kung na-deduct ang credit.
| Response | Kahulugan | Pera |
|---|---|---|
| ACCESS_NUMBER:ID:PHONE | Nakuha na ang number | Ibabawas ang presyo ng number |
| STATUS_WAIT_CODE | Hinihintay ang code | Pareho |
| STATUS_OK:CODE | Dumating na ang code | Tapos na ang bayad |
| STATUS_WAIT_RETRY:CODE | Naghihintay ng karagdagang verification code (kasama ang nakaraang code) | Walang dagdag na bayad |
| STATUS_CANCEL | Na-cancel o tapos na ang oras | Na-refund kung walang code |
| ACCESS_CANCEL | Na-cancel na | Buong refund |
| ACCESS_RETRY_GET | Naghihintay para sa isa pang code gamit ang parehong numero | Walang dagdag na bayad |
| ACCESS_ACTIVATION | Tapos na ang paggamit ng number | Pareho |
| NO_BALANCE | Mag-top up ng balance at tumanggap agad | Hindi ibinabawas |
| NO_NUMBERS | Kasalukuyang hindi available ang numero para sa bansang ito | Hindi ibinabawas |
| NO_ACTIVATIONS | 20 na ang bukas na number | Hindi ibinabawas |
| EARLY_CANCEL_DENIED | Para sa mga numero na nakakatanggap ng verification code, piliin ang 'Tapos' (6) imbes na 'Cancel'. | Pareho |
| BAD_KEY | Hindi tugma ang API key | Hindi ibinabawas |
| BAD_SERVICE / BAD_COUNTRY | Hindi tama ang serbisyo o country code | Hindi ibinabawas |
| NO_ACTIVATION | Hindi nahanap ang number ID | Pareho |
| TOO_MANY_REQUESTS | Lumampas sa 300 kada minuto | Hindi ibinabawas |
Ano ang proseso ng pagkuha ng code sa API?
4 na hakbang: kumuha ng numero, ilagay ito, i-check ang code, at tapusin.
- 1 hakbang
Kumuha ng Numero
Sa pamamagitan ng getNumber, piliin ang nais na serbisyo at bansa upang mag-issue ng numero.
action=getNumber&service=telegram&country=gb > ACCESS_NUMBER:SS8Q2K7:447700900123
- 2 hakbang
Ilagay ang number
Ilagay ang biniling numero sa sign-up page o program.
+44 7700 900123
- 3 hakbang
Tingnan ang code
I-check ang status ng code bawat 5 segundo gamit ang getStatus.
action=getStatus&id=SS8Q2K7 > STATUS_OK:48215
- 4 hakbang
Tapusin
I-enter ang code at tapusin sa setStatus 6. Awtomatikong refund pagkatapos ng 20 minuto kung walang code.
action=setStatus&id=SS8Q2K7&status=6 > ACCESS_ACTIVATION
Mga example bawat wika
Ito ang buong proseso: kumuha ng numero, maghintay ng code, at tapusin. Pindutin ang tab para palitan ang wika.
# 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);
}Mga madalas itanong tungkol sa API
Ang API ay nagbibigay ng numero mula sa 145 bansa at 1,255 serbisyo sa parehong presyo tulad ng web.
- Ano ang SMS verification API?
- Function para bumili ng virtual number, verify codes, at mag-cancel gamit ang HTTP requests. Ang SNSSIM API ay gumagamit ng industry-standard na handler_api method.
- Pwede bang gamitin ang mga programang ginamit sa ibang SMS verification sites?
- Kung gumagamit ka ng program na sumusuporta sa handler_api, maaari kang kumonekta kaagad sa pamamagitan ng pagbabago lamang ng base address at API key.
- May hiwalay na bayad ba para sa API?
- Walang pagkakaiba. Ginagamit ng API at web interface ang parehong credit at presyo.
- Hanggang ilang beses pwedeng mag-request?
- Hanggang 300 requests bawat minuto bawat API key. Kapag na-exceed, TOO_MANY_REQUESTS error ang lalabas at hindi mababawasan ang credit.
- Nare-refund ba ang number na binili sa API?
- Oo. Kung hindi dumating ang code sa loob ng 20 minuto, ang number na binili via API ay awtomatikong irerefund sa credit.
- Saan makakagawa ng API key?
- Pagkatapos mag-log in, lumikha ng key sa API menu sa account screen. Ang key ay ipapakita lamang sa oras ng paglikha, kaya agad itong i-save.
Gumawa ng API key at kumonekta agad
Pagkatapos mag-sign up at mag-load ng credit, maaari kang gumawa ng API key kaagad sa account screen.