API de verificación SMS
Compra números y lee códigos SMS con solicitudes HTTP GET o POST simples. Las respuestas usan el formato de texto de herramientas comunes de activación por SMS, las llamadas de números privados responden en JSON.
Empezando
- Dirección
- https://snscodes.com/stubs/handler_api.php
- Autenticación
- Parámetro api_key. Crea la clave en la página API de tu cuenta; se muestra una sola vez.
- Límite de tasa
- 300 solicitudes por minuto por clave
- Dinero
- Precios y saldo en dólares estadounidenses, tomados del mismo saldo que el sitio web.
curl "https://snscodes.com/stubs/handler_api.php?api_key=$KEY&action=getNumber&service=telegram&country=us" # ACCESS_NUMBER:N-7KQ2M9XWD4:14155550123 curl "https://snscodes.com/stubs/handler_api.php?api_key=$KEY&action=getStatus&id=N-7KQ2M9XWD4" # STATUS_OK:482913
import time, requests
BASE = "https://snscodes.com/stubs/handler_api.php"
KEY = "YOUR_KEY"
r = requests.get(BASE, params={"api_key": KEY, "action": "getNumber", "service": "telegram", "country": "us"}).text
_, num_id, phone = r.split(":")
print("number", phone)
while True:
s = requests.get(BASE, params={"api_key": KEY, "action": "getStatus", "id": num_id}).text
if s.startswith("STATUS_OK"):
print("code", s.split(":")[1]); break
if s == "STATUS_CANCEL":
break
time.sleep(5)const BASE = "https://snscodes.com/stubs/handler_api.php";
const KEY = process.env.SNSCODES_KEY;
const call = async (q) => (await fetch(BASE + "?" + new URLSearchParams({ api_key: KEY, ...q }))).text();
const [, id, phone] = (await call({ action: "getNumber", service: "telegram", country: "us" })).split(":");
console.log("number", phone);
for (;;) {
const s = await call({ action: "getStatus", id });
if (s.startsWith("STATUS_OK")) { console.log("code", s.split(":")[1]); break; }
if (s === "STATUS_CANCEL") break;
await new Promise((r) => setTimeout(r, 5000));
}Obtener saldo action=getBalance
Devuelve el saldo de tu cuenta en dólares estadounidenses.
ACCESS_BALANCE:42.50
BAD_KEYLa clave falta o es incorrecta.
Precios de códigos action=getPrices
Precios por código por país y servicio. Ambos filtros son opcionales.
| Parámetro | Requerido | Descripción |
|---|---|---|
| service | no | Código de servicio, por ejemplo telegram |
| country | no | us, gb o au |
{"us":{"telegram":{"cost":3,"count":100}}}Comprar un número para código action=getNumber
Compra un número para una aplicación. El precio se deduce de tu saldo de inmediato y se devuelve si no llega ningún código en 20 minutos.
| Parámetro | Requerido | Descripción |
|---|---|---|
| service | sí | Código de servicio de getPrices |
| country | sí | us, gb o au |
ACCESS_NUMBER:N-7KQ2M9XWD4:14155550123
BAD_SERVICECódigo de servicio desconocido.BAD_COUNTRYEl servicio no se vende para este país.NO_BALANCESaldo insuficiente. No se cobra nada.NO_NUMBERSNo hay números disponibles en este momento. No se cobra nada.NO_ACTIVATIONSYa tienes 20 números para código abiertos.
Leer el código action=getStatus
Consulta cada 5 a 10 segundos hasta que llegue el código.
| Parámetro | Requerido | Descripción |
|---|---|---|
| id | sí | El id de getNumber |
STATUS_OK:482913
STATUS_WAIT_CODEAún no hay SMS.STATUS_WAIT_RETRY:482913Esperando otro código; se muestra el último.STATUS_CANCELCancelado o reembolsado.NO_ACTIVATIONId desconocido.
Cancelar, reintentar o finalizar action=setStatus
status=8 cancela un número sin código (reembolso completo), status=3 solicita otro código en el mismo número, status=6 lo finaliza.
| Parámetro | Requerido | Descripción |
|---|---|---|
| id | sí | El id de getNumber |
| status | sí | 8, 3 o 6 |
ACCESS_CANCEL
EARLY_CANCEL_DENIEDYa ha llegado un código; finaliza en lugar de cancelar.ACCESS_RETRY_GETEsperando otro código.ACCESS_ACTIVATIONFinalizado.
Precios de números privados action=getRentPrices
Precio por todo el período por país y período. Devuelve JSON.
| Parámetro | Requerido | Descripción |
|---|---|---|
| country | no | Código de país de dos letras |
{"us":{"sixMonths":35.99,"twelveMonths":59.99}}Comprar un número privado action=getRentNumber
Compra un número privado por un período. Devuelve JSON.
| Parámetro | Requerido | Descripción |
|---|---|---|
| country | sí | Código de país de dos letras |
| period | sí | oneMonth, threeMonths, sixMonths, twelveMonths, twoYears o threeYears |
{"status":"success","id":"N-3HV8QZ2K5M","phone":"14155550123","until":"2027-05-02T10:00:00.000Z"}BAD_PERIODEl período no está disponible para este país.NO_BALANCESaldo insuficiente.
Leer SMS de número privado action=getRentStatus
Todos los SMS recibidos por el número privado hasta ahora. Devuelve JSON.
| Parámetro | Requerido | Descripción |
|---|---|---|
| id | sí | El id de getRentNumber |
{"status":"success","state":"active","messages":[{"code":"482913","text":"Your code is 482913","from":"Telegram","at":"..."}]}Cancelar un número privado action=setRentStatus
status=2 cancela un número privado para un reembolso completo si no ha llegado ningún SMS y tiene menos de 20 minutos.
| Parámetro | Requerido | Descripción |
|---|---|---|
| id | sí | El id de getRentNumber |
| status | sí | 2 |
{"status":"success"}EARLY_CANCEL_DENIEDHa llegado un SMS o han pasado 20 minutos.