Pular para o conteúdo principal
116
Países
133 serviços, 400 rotas de operadoras, mais de 15.400 preços ao vivo. Somente cripto, zero verificação de identidade.
Alugar um Número

SmsNoKYC para Desenvolvedores: Verificação por SMS que Você Pode Automatizar

Automatize todo o ciclo de verificação por meio de uma única interface JSON. 116 países, 133 serviços, 400 rotas de operadora e mais de 15.400 preços ao vivo por trás de um punhado de endpoints: alocar um número, captar seu código recebido, manter um aluguel por até 90 dias, pagar em cripto. Não existe chave de API aqui — uma seed phrase é a única credencial que você jamais apresentará.

Tempo de leitura: 5 min REST · JSON · OpenAPI 3.0 Especificação OpenAPI →

Autenticação necessária. As sessões funcionam por cookies. Faça login com sua seed phrase — pelo site ou diretamente contra o endpoint de autenticação documentado abaixo — e toda requisição subsequente herda essa sessão automaticamente.

Feito para scripts, pipelines e agentes autônomos

Fornecedores tradicionais de OTP querem contratos assinados, compliance aprovado e mínimos mensais comprometidos antes que sua primeira requisição saia. O SmsNoKYC inverte a ordem: tenha uma seed phrase, carregue um saldo a partir de $25 em qualquer uma de 8 criptomoedas — Bitcoin, Monero, Ethereum, Litecoin, TRON, USDT, Solana entre elas — e comece a chamar a API a partir de qualquer cliente HTTPS que você já use. A cobrança é medida por número a partir de $0.01, em mais de 15.400 pontos de preço ativos.

No dia a dia, os endpoints verificam fluxos de cadastro dentro de CI, alimentam códigos OTP para navegadores headless e frotas de scrapers, mantêm contas do Telegram ou WhatsApp ativas em aluguéis dedicados de 7 a 90 dias, e distribuem a verificação por 116 países com controle explícito de 400 rotas de operadoras em três níveis — virtual, físico, premium. Agentes de IA acessam o mesmo catálogo por meio de um servidor MCP nativo, abordado na página de agentes, para que um modelo com uso de ferramentas possa comprar números e ler códigos sem nenhuma integração personalizada.

Autenticação

As sessões são baseadas em cookies — não há chave bearer para gerar ou rotacionar. O login programático leva três passos:

  1. Envie sua seed phrase via POST para /auth-api.php
  2. Capture o cookie definido na resposta
  3. Anexe esse cookie a todas as chamadas seguintes
POST /auth-api.php

Troca sua seed phrase por uma sessão ativa.

ParâmetroTipoObrigatórioDescrição
actionstringobrigatórioDeve ser "login"
seedstringobrigatórioA seed de 16 caracteres vinculada à sua conta (formato AbC3-dEf4-gHj5-kLm6)
cURL
Python
JavaScript
# Login and save session cookie curl -X POST https://smsnokyc.com/auth-api.php \ -d "action=login&seed=AbC3-dEf4-gHj5-kLm6" \ -c cookies.txt
import requests session = requests.Session() resp = session.post("https://smsnokyc.com/auth-api.php", data={ "action": "login", "seed": "AbC3-dEf4-gHj5-kLm6" }) data = resp.json() print(data) # {"success": true, "user": {...}} # session object now holds the cookie for all future requests
const resp = await fetch("https://smsnokyc.com/auth-api.php", { method: "POST", credentials: "include", headers: { "Content-Type": "application/x-www-form-urlencoded" }, body: "action=login&seed=AbC3-dEf4-gHj5-kLm6" }); const data = await resp.json(); console.log(data); // {success: true, user: {...}}
Resposta de sucesso
{ "success": true, "user": { "id": 42, "prefix": "AbC3", "balance": "74.50" } }
Resposta de erro
{ "success": false, "error": "Invalid seed." }

URL Base

Todo endpoint segue um único padrão de URL:

https://smsnokyc.com/api.php?action={action}

As respostas chegam sempre como JSON. Os corpos POST podem ser enviados como application/json ou application/x-www-form-urlencoded.

Limites de requisições

Duas regras regem o volume de solicitações:

EndpointLimiteJanela
Autenticação5 tentativas15 minutos
Todos os outros endpointsSem limite rígido—

Limite de taxa: o login aceita 5 tentativas a cada 15 minutos; todos os outros endpoints atualmente não têm um teto fixo, embora abuso contínuo possa ser desacelerado a montante. Espace suas chamadas com bom senso.

Tratamento de erros

Toda falha retorna como um objeto JSON contendo um campo de erro:

{ "error": "Description of what went wrong" }
Código HTTPSignificado
200Sucesso (verifique o corpo da resposta para erros de nível de aplicação)
403Token CSRF inválido
405Método HTTP incorreto (ex. GET em um endpoint somente POST)
429Limite de taxa excedido

Erros no nível da aplicação que você encontrará com mais frequência:

ErroCausa
"Login required"Sessão expirada ou não autenticado
"Insufficient balance"Fundos insuficientes — inclui os campos need e have
"Service not available for this country"Sem estoque ou serviço inativo para o país selecionado
"Missing country or service"Os parâmetros obrigatórios não foram fornecidos

Listar Países

GET /api.php?action=countries

Lista todos os países que atualmente têm estoque — 116 na última contagem. Endpoint aberto, sem necessidade de sessão.

cURL
Python
JavaScript
curl https://smsnokyc.com/api.php?action=countries
resp = session.get("https://smsnokyc.com/api.php", params={"action": "countries"}) countries = resp.json() for c in countries: print(c["code"], c["name"])
const resp = await fetch("https://smsnokyc.com/api.php?action=countries"); const countries = await resp.json();
Resposta
[ { "id": 1, "code": "us", "name": "USA" }, { "id": 2, "code": "gb", "name": "UK" }, { "id": 3, "code": "de", "name": "Germany" } ]

Listar Serviços

GET /api.php?action=services&country={code}

Retorna a ficha de serviço de um país, com preço e estoque ao vivo incluídos. Omita o parâmetro de país para receber o catálogo completo de 133 serviços sem preços.

ParâmetroTipoObrigatórioDescrição
countrystringopcionalCódigo de país ISO 3166-1 alpha-2 (ex. us, gb, de)
Resposta (com país)
[ { "id": 12, "name": "WhatsApp", "slug": "whatsapp", "icon_code": "WA", "icon_color": "#25d366", "category": "social", "price": "0.35", "stock": 847 } ]

Listar Operadoras

GET /api.php?action=operators&country={code}

Lista as rotas de operadora por trás de um país. Cada operadora carrega um nível mais um multiplicador aplicado sobre o preço base do serviço.

ParâmetroTipoObrigatórioDescrição
countrystringobrigatórioCódigo de país ISO 3166-1 alpha-2
Resposta
[ { "id": 5, "name": "T-Mobile", "type": "physical", "price_multiplier": "1.50", "icon_slug": "tmobile", "icon_domain": "t-mobile.com" } ]

Tipos de operadora: virtual — baseado em VoIP, custo mais baixo, ocasionalmente rejeitado por plataformas rigorosas. physical — chip SIM verdadeiro, aceitação mais forte. premium — maior aceitação e entrega mais rápida, cerca de 10 segundos.

Comprar número (Ativação SMS)

POST /api.php?action=buy

Reserva um número para uma única verificação. Ele permanece seu por 20 minutos; se nenhuma mensagem chegar nesse período, a cobrança retorna automaticamente ao seu saldo.

ParâmetroTipoObrigatórioDescrição
countrystringobrigatórioCódigo do país (ex. us)
service_idintegerobrigatórioID do serviço de Lista de Serviços
operator_idintegeropcionalID da operadora de Lista de Operadoras. Omita para a operadora padrão.
cURL
Python
JavaScript
curl -X POST https://smsnokyc.com/api.php?action=buy \ -b cookies.txt \ -H "Content-Type: application/json" \ -d '{"country":"us","service_id":12,"operator_id":5}'
resp = session.post("https://smsnokyc.com/api.php?action=buy", json={ "country": "us", "service_id": 12, "operator_id": 5 }) order = resp.json() print(f"Order #{order['order_id']} — ${order['price']}")
const resp = await fetch("https://smsnokyc.com/api.php?action=buy", { method: "POST", credentials: "include", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ country: "us", service_id: 12, operator_id: 5 }) }); const order = await resp.json();
Resposta de sucesso
{ "success": true, "order_id": 1847, "price": 0.53, "balance": "73.97" }
Erro: Saldo insuficiente
{ "error": "Insufficient balance", "need": 0.53, "have": "0.10" }

Listar pedidos

GET /api.php?action=orders

Retorna seus últimos 50 pedidos com seus números e quaisquer códigos capturados. Consulte aqui enquanto uma ativação aguarda seu SMS.

Resposta
[ { "id": 1847, "price": "0.53", "status": "completed", "phone_number": "+12025551234", "sms_code": "847293", "created_at": "2026-04-09 14:32:00", "country_code": "us", "country_name": "USA", "service_name": "WhatsApp", "operator_name": "T-Mobile" } ]

Status do pedido: active — ainda aguardando mensagem. completed — código capturado. cancelled — encerrado por você. refunded — creditado de volta automaticamente após esgotar o prazo sem resposta. expired — janela expirada.

Obter preço de aluguel

GET /api.php?action=rental_price&country={code}&operator_id={id}&duration={days}

Cota o custo de manter um número dedicado em uma determinada operadora por um prazo escolhido.

ParâmetroTipoObrigatórioDescrição
countrystringobrigatórioCódigo do país
operator_idintegerobrigatórioID da operadora
durationintegerobrigatórioDuração do aluguel em dias: 7, 14, 30 ou 90
Resposta
{ "price": "12.50", "duration": 30, "operator": "T-Mobile", "type": "physical", "country": "USA" }

Alugar Número

POST /api.php?action=rental_buy

Reserva um ou mais números dedicados. Cada um permanece exclusivamente seu durante todo o prazo — de 7 a 90 dias — e aceita SMS de entrada ilimitados de qualquer serviço.

ParâmetroTipoObrigatórioDescrição
countrystringobrigatórioCódigo do país
operator_idintegerobrigatórioID da operadora
durationintegerobrigatório7, 14, 30 ou 90 dias
qtyintegeropcionalQuantidade de números para alugar (1–10, padrão: 1)
Resposta de sucesso
{ "success": true, "order_ids": [1848, 1849], "total": 25.00, "qty": 2, "unit_price": 12.50, "duration": 30, "balance": "49.50" }

Obter informações do usuário

GET /api.php?action=user

Informa a conta por trás da sessão atual, saldo incluído. Uma única chamada serve tanto para verificar o login quanto os fundos.

Autenticado
{ "logged_in": true, "id": 42, "prefix": "AbC3", "balance": "74.50" }
Não autenticado
{ "logged_in": false }

Script de Ponta a Ponta

O script abaixo executa todo o ciclo em Python — sessão, consulta de catálogo, compra e depois consulta até o código chegar:

Python
import requests, time BASE = "https://smsnokyc.com" SEED = "AbC3-dEf4-gHj5-kLm6" s = requests.Session() # 1. Authenticate s.post(f"{BASE}/auth-api.php", data={"action": "login", "seed": SEED}) # 2. Check balance user = s.get(f"{BASE}/api.php?action=user").json() print(f"Balance: ${user['balance']}") # 3. Get services for USA services = s.get(f"{BASE}/api.php?action=services&country=us").json() whatsapp = next(svc for svc in services if svc["name"] == "WhatsApp") print(f"WhatsApp: ${whatsapp['price']} ({whatsapp['stock']} in stock)") # 4. Buy a number order = s.post(f"{BASE}/api.php?action=buy", json={ "country": "us", "service_id": whatsapp["id"] }).json() print(f"Order #{order['order_id']} created") # 5. Poll for SMS code for _ in range(60): orders = s.get(f"{BASE}/api.php?action=orders").json() my_order = next(o for o in orders if o["id"] == order["order_id"]) if my_order["sms_code"]: print(f"SMS code: {my_order['sms_code']}") print(f"Phone: {my_order['phone_number']}") break print("Waiting for SMS...") time.sleep(5) else: print("Timeout — balance will be refunded automatically")

Perguntas de Desenvolvedores, Respondidas

Quais operações a API de desenvolvedor da SmsNoKYC expõe?

Tudo que o painel faz, um script também pode fazer: buscar o catálogo de 116 países e 133 serviços, inspecionar mais de 15.400 pontos de preço ativos espalhados por 400 rotas de operadoras, alocar um número para um OTP único, ler o código recebido no instante em que chega, manter um aluguel dedicado por 7, 14, 30 ou 90 dias, e auditar cada pedido. Tudo isso em JSON simples sobre HTTPS, cobrado em cripto, sem nenhuma etapa de identidade em qualquer ponto do fluxo.

Existe alguma chave de API para gerar antes da minha primeira requisição?

Nada para gerar, nada para rotacionar. Sua seed phrase é a própria credencial: envie-a uma vez via POST para /auth-api.php, guarde o cookie de sessão que o servidor retorna, e envie esse cookie em cada chamada posterior. Sem painel de chaves, sem handshake OAuth, sem calendário de expiração — uma seed abre uma sessão, e esse é todo o modelo.

Quanto custa o acesso à própria API?

O acesso não custa nada — sem mensalidade, sem plano, sem volume mínimo de chamadas. Você paga apenas por número: códigos de verificação avulsos começam em $0,01 e geralmente ficam entre $0,20 e $1, enquanto aluguéis dedicados começam em $4,20 para um prazo de 7 dias. Os saldos são carregados com 8 criptomoedas (recarga mínima de $25), e uma ativação que nunca recebe seu SMS se reembolsa sozinha, sem nenhuma ação da sua parte.

Posso integrar a partir de qualquer linguagem — ou de um agente de IA?

Qualquer coisa que fale HTTPS serve: Python, Node.js, Go, Rust, PHP, Ruby, Java, C# ou até cURL puro dentro de um script de shell. A referência traz trechos executáveis em cURL, Python e JavaScript, e /openapi.json expõe um documento OpenAPI 3.0 completo para gerar clientes tipados. Agentes autônomos também são cobertos nativamente — um servidor MCP dedicado permite que modelos com uso de ferramentas comprem números e coletem códigos sozinhos; a página /agents mostra o passo a passo.

O que acontece quando um número comprado fica em silêncio?

Você não perde nada. Toda ativação tem uma janela de recebimento de 20 minutos; quando ela se fecha sem uma mensagem, a plataforma cancela o pedido sozinha e devolve a cobrança integral ao seu saldo. Sem ticket, sem formulário, sem espera pelo suporte. Compre de novo na hora — subir para um nível de operadora física ou premium geralmente aumenta a taxa de entrega.

Com que frequência posso consultar antes que o limite de requisições entre em ação?

Somente o login tem um teto rígido: 5 tentativas por 15 minutos por IP, para impedir a adivinhação de seed. Os endpoints de catálogo, compra, pedido e aluguel não têm cota fixa no momento. Mantenha o ritmo sensato — verificar o endpoint de pedidos a cada 3 a 5 segundos captura todos os códigos — e mantenha o tráfego sustentado abaixo de aproximadamente 10 requisições por segundo, já que rajadas mais pesadas podem ser desaceleradas na camada de borda.

Coloque no ar

Pegue uma seed na página inicial, carregue $25 ou mais em cripto, e seu primeiro código de verificação está a cinco requisições de distância. Está construindo com um LLM em vez de um script? Aponte seu modelo para o servidor MCP do SmsNoKYC ou siga o guia de integração de agentes de IA — o catálogo completo de 116 países e 133 serviços vira uma chamada de ferramenta.

O que a referência não cobre está na central de ajuda, o glossário de SMS decifra os termos técnicos, e a atividade ao vivo mostra a rede em movimento. O suporte funciona por chamados dentro do app assim que você estiver conectado.