O número do seu teste, sob o seu controle.

Reserve um número de SMS, receba o código já extraído e responda pelo mesmo número. Descartável ou fixo, por API ou MCP, sem tocar na linha que a sua operação usa.

100 créditos grátis · sem cartão de crédito

Descartável quando basta, fixo quando o teste exige

Um número por execução, devolvido no fim. Ou um número reivindicado, que fica na sua conta e não vence por relógio — o mesmo cenário entre uma rodada e outra. A linha que sua operação usa fica fora dos dois.

Da inbox descartável ao fluxo automatizado

Crie uma caixa, espere a mensagem chegar e pegue o código com uma expressão regular. O mesmo fluxo em Python, Node ou HTTP direto.

Conectado nativamente aos seus agentes

Claude Code, Codex e outros clientes MCP reservam o número, esperam a mensagem, respondem e devolvem sozinhos — onze ferramentas, sem sair do próprio fluxo e sem receber a sua chave.

Fornecedor com falha fora do rodízio, apagamento por padrão

Um fornecedor que falha três checagens seguidas para de receber novas alocações e volta sozinho quando responde. E cada caixa é cifrada com uma chave própria, destruída no momento em que você a apaga.

Três chamadas e o código está na sua mão.

Nenhuma linha para contratar, nenhuma aprovação de operadora para esperar.

  1. 01

    Reserve um número

    A chamada devolve o número, o token de acesso da caixa e quanto de crédito foi cobrado.

  2. 02

    Espere a mensagem

    A conexão fica aberta até o SMS chegar. Você escolhe entre long-poll e stream.

  3. 03

    Extraia e siga

    O código vem separado do corpo da mensagem. Depois é só liberar a caixa.

Escrito à mão, para as duas linguagens.

SDKs tipados para Python e Node, ou HTTP direto se preferir.

pip install
numport
npm install
@numport/sdk
otp.py
from numport import NumPort with NumPort(api_key=API_KEY) as client:    inbox = client.create_inbox("BR", ttl_seconds=600)    print(inbox.phone_number)     page = client.wait_for_messages(        inbox.id,        inbox.access_token,        timeout=120,        match=r"\d{6}",    )    code = page.messages[0].extracted.value    client.release_inbox(inbox.id, inbox.access_token)

Não é só receber. É conversar.

Reivindique um número e ele passa a ser a ponta controlada da conversa: você envia pelo mesmo número que recebe, e testa o seu bot dos dois lados sem depender de um celular na mesa de alguém.

  • O número reivindicado sai do rodízio e fica na sua conta. O harness reencontra o mesmo cenário na execução seguinte.
  • As mensagens ficam agrupadas por contraparte, enviadas e recebidas na mesma linha do tempo.
  • A recusa da operadora chega com o motivo que ela devolveu, e a mensagem recusada é estornada.
  • O que sai é cifrado com a mesma chave do que entra: apagar a caixa apaga os dois lados da conversa.

Envio disponível a partir do plano Developer.

+55 11 98812-4471Reserva permanente

Seu código de verificação é 481902

recebida · 14:02

481902

entregue · 14:02 · 1 segmento

Confirmado. Quer ativar as notificações por SMS?

recebida · 14:03

não, obrigado

enviada · 14:03 · 1 segmento
Escreva uma mensagem…1 segmento
claude · mcp:numportconectado

cadastre uma conta de teste e confirme o SMS

numport.inbox_create country=BR channel=sms

+55 11 9****-4471 · reserva de 30 min

numport.message_wait match=\d{6} timeout=120

código 481902 extraído · caixa liberada

Dê o controle ao seu agente.

A autenticação é OAuth com PKCE. Você aprova o acesso em uma tela de consentimento e o cliente recebe um token com escopo por caixa. Sua chave de conta não é entregue a ele.

  • Endpoint em /mcp, compatível com Claude Code, Codex e outros clientes.
  • As ferramentas são as mesmas da API: criar caixa, esperar, ler, enviar e devolver o número.
  • O texto de cada mensagem chega marcado como conteúdo de terceiro.
Ver a documentação do MCP

O que já vem resolvido.

Entrega, privacidade e rotação de números fazem parte do serviço.

Entrega

Fornecedor com falha sai do rodízio

Um fornecedor que falha três checagens seguidas deixa de receber novas alocações e volta sozinho quando responde. Vale para reservas novas — mensagem em trânsito não muda de rota.

Eventos duráveis

Cada mensagem recebida é gravada antes de ser processada. Uma instabilidade interna atrasa a entrega, não perde o conteúdo.

Espera sem polling

Long-poll com timeout que você define, ou um stream aberto por caixa. A resposta sai assim que a mensagem entra.

Privacidade

Apagamento criptográfico

Cada caixa é cifrada com uma chave só dela. Apagar a caixa destrói a chave, e o que sobra em backup não pode mais ser lido.

Conteúdo marcado como não confiável

O texto da mensagem chega separado do resto da resposta, para não virar instrução de um agente sem querer.

Retenção sob seu controle

Você define quanto tempo a caixa vive e quanto tempo o conteúdo fica guardado. São dois prazos separados.

Operação

Quarentena adaptativa

Um número devolvido sem uso volta em 60 segundos. Se chegou a receber mensagem, espera 10 minutos antes de circular de novo.

Justiça no pool público

Nenhuma conta reserva mais do que uma fatia dos números de um país, então sempre sobra inventário para as outras.

Duas credenciais, sem ambiguidade

A chave da conta cria caixas e consulta o inventário. O token de cada caixa, que você pode rotacionar, faz o resto.

de espera
5 min

teto do timeout de uma única chamada de espera por mensagem

por reserva
30 min

teto de uma caixa temporária — no número reivindicado não há prazo

para reciclar
60s

o que um número devolvido sem uso leva para voltar

de conteúdo
24 h

teto do prazo de retenção do corpo da mensagem — vencido, a chave da caixa é destruída

Pague pelo que consumir.

A cobrança acontece quando a caixa é criada. Número parado não custa nada, e o que muda de um plano para o outro é a franquia. A única exceção é o envio de mensagens, que exige plano pago.

Mais escolhido

Team

Suíte de testes rodando na integração contínua

US$79/mês

Franquia

Créditos por mês
4.000
Caixas simultâneas
25
Reserva máxima por caixa
30 min

Conversa

Enviar mensagens
Sim
Número reivindicado
Sim
Começar
Quando é cobrado
Na criação da caixa; o número reivindicado, todo mês
Crédito avulso
US$ 0,03
Segmento enviado
2 créditos · US$ 0,06
Número reivindicado
500 créditos por mês, por número

Em todos os planos

  • SMS de operadoraReceber está em todos os planos; enviar pelo mesmo número, a partir do Developer.
  • MCP para agentesOAuth 2.1 com PKCE, sem entregar sua chave ao cliente.
  • SDK Python e NodeBibliotecas tipadas, escritas à mão, com cliente assíncrono.
  • Stream e esperaSSE para acompanhar a caixa, ou uma espera de até 5 minutos por chamada.
  • Fornecedor com falha sai do rodízioTrês checagens seguidas falhando tiram o fornecedor de novas alocações; ele volta quando responde.
  • Apagamento criptográficoChave própria por caixa, destruída no momento do purge.

Enterprise

Limites negociados e contato direto

  • Até 1.000 caixas simultâneas
  • Franquia de créditos combinada por contrato
  • Contato direto por e-mail com quem opera o serviço
Falar com o time

Perguntas comuns.

Não achou o que procurava? A documentação cobre o resto.

São linhas de operadora de verdade, não emuladores. A mensagem que chega é a mesma que chegaria em produção.

O número entra em quarentena antes de voltar para o inventário. Se a caixa não recebeu nada, são 60 segundos. Se recebeu, são 10 minutos.

No acervo compartilhado não há garantia: o número volta para a fila. Se você precisa da mesma linha sempre, reivindique o número — ele sai do rodízio, fica na sua conta e as caixas criadas sobre ele não vencem por tempo.

Do acervo compartilhado, só recebe: a resposta de um terceiro chegaria para outra conta depois do rodízio. Reivindique o número e ele sai do rodízio — aí você envia e recebe pelo mesmo número, com a conversa agrupada por contraparte. Envio é a partir do plano Developer.

Cada caixa criada consome crédito, e número parado do acervo compartilhado não consome nada. O crédito avulso sai a US$ 0,03, o segmento enviado custa 2 créditos e um número reivindicado é um aluguel mensal de 500 créditos, cobrado no aniversário do dia em que você o reivindicou e enquanto ele for seu. A franquia mensal do plano cobre o uso antes de você comprar crédito.

Por OAuth com PKCE. Você aprova o acesso em uma tela de consentimento e o cliente recebe um token com escopo limitado. A chave da conta não é entregue a ele.

Fica cifrado com uma chave exclusiva da caixa, pelo prazo que você definir na criação. Apagar a caixa destrói essa chave.

Seu próximo teste não precisa da sua linha.

Crie a conta, pegue a chave e reserve a primeira caixa na mesma sessão. São 100 créditos grátis, sem cartão de crédito.