API de Verificação por SMS
Compre números e leia códigos SMS com solicitações HTTP GET ou POST simples. As respostas usam o formato de texto de ferramentas comuns de ativação por SMS, chamadas de números privados respondem em JSON.
Começando
- Endereço
- https://snscodes.com/stubs/handler_api.php
- Autenticação
- Parâmetro api_key. Crie a chave na página API da sua conta; ela é mostrada apenas uma vez.
- Limite de taxa
- 300 solicitações por minuto por chave
- Dinheiro
- Preços e saldo em dólares americanos, debitados do mesmo saldo do site.
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));
}Obter saldo action=getBalance
Retorna o saldo da sua conta em dólares americanos.
ACCESS_BALANCE:42.50
BAD_KEYA chave está ausente ou incorreta.
Preços por código action=getPrices
Preços por código por país e serviço. Ambos os filtros são opcionais.
| Parâmetro | Obrigatório | Descrição |
|---|---|---|
| service | não | Código do serviço, por exemplo telegram |
| country | não | us, gb ou au |
{"us":{"telegram":{"cost":3,"count":100}}}Comprar número para código action=getNumber
Compra um número para um aplicativo. O valor é debitado do seu saldo imediatamente e reembolsado se nenhum código chegar em 20 minutos.
| Parâmetro | Obrigatório | Descrição |
|---|---|---|
| service | sim | Código do serviço de getPrices |
| country | sim | us, gb ou au |
ACCESS_NUMBER:N-7KQ2M9XWD4:14155550123
BAD_SERVICECódigo de serviço desconhecido.BAD_COUNTRYO serviço não está disponível para este país.NO_BALANCESaldo insuficiente. Nada foi cobrado.NO_NUMBERSNenhum número disponível no momento. Nada foi cobrado.NO_ACTIVATIONSVocê já tem 20 números para código em aberto.
Ler o código action=getStatus
Verifique a cada 5 a 10 segundos até o código chegar.
| Parâmetro | Obrigatório | Descrição |
|---|---|---|
| id | sim | O id de getNumber |
STATUS_OK:482913
STATUS_WAIT_CODENenhum SMS ainda.STATUS_WAIT_RETRY:482913Aguardando outro código; o último é mostrado.STATUS_CANCELCancelado ou reembolsado.NO_ACTIVATIONID desconhecido.
Cancelar, tentar novamente ou finalizar action=setStatus
status=8 cancela um número sem código (reembolso total), status=3 solicita outro código no mesmo número, status=6 finaliza.
| Parâmetro | Obrigatório | Descrição |
|---|---|---|
| id | sim | O id de getNumber |
| status | sim | 8, 3 ou 6 |
ACCESS_CANCEL
EARLY_CANCEL_DENIEDUm código já chegou; finalize em vez de cancelar.ACCESS_RETRY_GETAguardando outro código.ACCESS_ACTIVATIONFinalizado.
Preços de números privados action=getRentPrices
Preço para todo o período por país e período. Retorna JSON.
| Parâmetro | Obrigatório | Descrição |
|---|---|---|
| country | não | Código de país de duas letras |
{"us":{"sixMonths":35.99,"twelveMonths":59.99}}Compre um número privado action=getRentNumber
Compra um número privado por um período. Retorna JSON.
| Parâmetro | Obrigatório | Descrição |
|---|---|---|
| country | sim | Código de país de duas letras |
| period | sim | oneMonth, threeMonths, sixMonths, twelveMonths, twoYears ou threeYears |
{"status":"success","id":"N-3HV8QZ2K5M","phone":"14155550123","until":"2027-05-02T10:00:00.000Z"}BAD_PERIODO período não está disponível para este país.NO_BALANCESaldo insuficiente.
Leia SMS de número privado action=getRentStatus
Todos os SMS recebidos pelo número privado até agora. Retorna JSON.
| Parâmetro | Obrigatório | Descrição |
|---|---|---|
| id | sim | O id de getRentNumber |
{"status":"success","state":"active","messages":[{"code":"482913","text":"Your code is 482913","from":"Telegram","at":"..."}]}Cancele um número privado action=setRentStatus
status=2 cancela um número privado para reembolso total enquanto nenhum SMS chegou e tem menos de 20 minutos.
| Parâmetro | Obrigatório | Descrição |
|---|---|---|
| id | sim | O id de getRentNumber |
| status | sim | 2 |
{"status":"success"}EARLY_CANCEL_DENIEDUm SMS chegou ou passaram 20 minutos.