Tempmail API Impulsionante Group api.impulsionantegroup.online

Referência da API · v1

E-mail temporário por API, num servidor de correio próprio

Você cria um endereço descartável, ele recebe mensagens de verdade e você lê o conteúdo — assunto, corpo, links e anexos — por HTTP. Nada de tela, nada de captcha.

Cada endereço é uma caixa postal real criada sob demanda num dos domínios da Impulsionante Group (impulsionantegroup.online e impulsionantegroup.shop), hospedados num Mailcow dedicado. A caixa expira sozinha depois do TTL (padrão 60 min) e é apagada do servidor. Você só guarda o token que a API devolve.

Base URLhttps://api.impulsionantegroup.online
FormatoJSON em todas as respostas. Corpo de requisição em JSON.
AuthHeader X-API-Key em toda rota /v1/*
Playground/docs (OpenAPI interativo)

Autenticação

Toda chamada a /v1/* exige o header X-API-Key com a chave que você recebeu na contratação. As chaves têm o prefixo tmk_live_.

requisição
GET /v1/domains HTTP/1.1
Host: api.impulsionantegroup.online
X-API-Key: tmk_live_SUA_CHAVE
Fica só no seu navegador (localStorage). Não é enviada a lugar nenhum.
Guarde a chave como uma senha. Ela vale pelo seu plano e período contratado. Se vazar, peça a rotação no suporte — a chave antiga para de funcionar na hora.

Início rápido

Três chamadas: criar o endereço, esperar a mensagem chegar, ler.

bash
BASE=https://api.impulsionantegroup.online
KEY=tmk_live_SUA_CHAVE

# 1. cria um e-mail temporário (TTL de 30 min)
RESP=$(curl -s -X POST $BASE/v1/mailboxes \
  -H "X-API-Key: $KEY" -H "content-type: application/json" \
  -d '{"ttl_minutes": 30}')
EMAIL=$(echo "$RESP" | jq -r .email)
TOKEN=$(echo "$RESP" | jq -r .token)
echo "$EMAIL"        # ex.: qx9gskhxoh@impulsionantegroup.shop

# 2. use o EMAIL no cadastro/serviço alvo, então consulte a caixa
curl -s "$BASE/v1/mailboxes/$TOKEN/messages" -H "X-API-Key: $KEY"

# 3. abra a mensagem (id vem da lista, ex. "INBOX:1")
curl -s "$BASE/v1/mailboxes/$TOKEN/messages/INBOX:1" -H "X-API-Key: $KEY"
python
import time, requests

BASE = "https://api.impulsionantegroup.online"
H = {"X-API-Key": "tmk_live_SUA_CHAVE"}

mb = requests.post(f"{BASE}/v1/mailboxes", json={"ttl_minutes": 30}, headers=H).json()
print(mb["email"])

for _ in range(20):                       # poll ~100s
    msgs = requests.get(f"{BASE}/v1/mailboxes/{mb['token']}/messages", headers=H).json()
    if msgs["count"]:
        msg = requests.get(
            f"{BASE}/v1/mailboxes/{mb['token']}/messages/{msgs['messages'][0]['id']}",
            headers=H).json()
        print(msg["subject"], msg["links"])
        break
    time.sleep(5)

Limites & headers

Cada resposta autenticada traz o estado da sua chave. Consulte antes de paralelizar.

HeaderSignificado
X-RateLimit-LimitRequisições permitidas por minuto no seu plano.
X-RateLimit-RemainingQuantas restam na janela atual de 60 s.
X-Quota-LimitCota de requisições do mês.
X-Quota-RemainingQuantas restam neste mês (zera no dia 1º).
Retry-AfterSegundos a aguardar — presente junto do 429 de rate limit.

Além disso, cada plano tem um teto de caixas ativas ao mesmo tempo. Apague as caixas que já não usa (DELETE) para liberar espaço antes do TTL.

Listar domínios

GET/v1/domains

Domínios liberados para a sua chave. Use um deles no campo domain ao criar, ou deixe a API sortear.

200 · resposta
{
  "domains": ["impulsionantegroup.online", "impulsionantegroup.shop"]
}

Criar e-mail temporário

POST/v1/mailboxes

Provisiona uma caixa nova. Corpo JSON — todos os campos são opcionais.

CampoDescrição
domainopcionalDomínio específico. Omitido = sorteado entre os seus.
prefixopcionalParte antes do @. Omitido = aleatória (10 chars).
ttl_minutesopcionalValidade em minutos. Padrão 60, máximo 1440 (24 h).
requisição
curl -s -X POST https://api.impulsionantegroup.online/v1/mailboxes \
  -H "X-API-Key: tmk_live_SUA_CHAVE" \
  -H "content-type: application/json" \
  -d '{"domain": "impulsionantegroup.shop", "ttl_minutes": 30}'
201 · resposta
{
  "token": "8H4JSMrsuxzJbTjiEDO7lD9NEKrNBaju",
  "email": "p8ezpb2cte@impulsionantegroup.shop",
  "domain": "impulsionantegroup.shop",
  "created_at": "2026-09-06T01:28:06Z",
  "expires_at": "2026-09-06T01:58:06Z",
  "expires_in_seconds": 1800,
  "password": "pEODv@6CH3wnVZ#zftc5",
  "webmail_url": "https://webmail.impulsionantegroup.online"
}
Guarde o token. É o único jeito de acessar a caixa pela API — não há como listar caixas depois. O password só aparece aqui: com ele o usuário final pode entrar no webmail (webmail_url) e ler a caixa numa interface. Ignore os dois campos se for consumir só pela API.

Consultar a caixa

GET/v1/mailboxes/:token

Metadados e quanto falta para expirar. Devolve o mesmo formato do POST. 410 quando a caixa já expirou.

Listar mensagens

GET/v1/mailboxes/:token/messages

INBOX + Junk via IMAP, mais recentes primeiro. Parâmetro ?limit= (1–100, padrão 25).

200 · resposta
{
  "email": "p8ezpb2cte@impulsionantegroup.shop",
  "count": 1,
  "messages": [
    {
      "id": "INBOX:1",
      "from_addr": "noreply@discord.com",
      "from_name": "",
      "to": "p8ezpb2cte@impulsionantegroup.shop",
      "subject": "Verify Email Address for Discord",
      "date": "2026-09-06T01:28:10Z",
      "seen": false,
      "preview": "Click https://click.discord.com/… to verify"
    }
  ]
}

Use o id ("INBOX:1") para abrir a mensagem inteira.

Ler uma mensagem

GET/v1/mailboxes/:token/messages/:id

A mensagem completa. Além dos campos da lista, inclui:

text
Corpo em texto puro
html
Corpo em HTML (string vazia se não houver)
links
Todas as URLs achadas no corpo, deduplicadas
attachments
Lista de {filename, content_type, size}
200 · trecho
{
  "id": "INBOX:1",
  "subject": "Verify Email Address for Discord",
  "text": "Click the link below…",
  "html": "<html>…</html>",
  "links": ["https://click.discord.com/ls/click?upn=…"],
  "attachments": []
}
Precisa do código, não do link? Faça um regex simples sobre text/subject no seu lado — a API entrega o conteúdo cru, sem interpretar.

Apagar a caixa

DELETE/v1/mailboxes/:token

Remove o mailbox do servidor na hora e libera uma vaga na sua cota de caixas ativas. Responde 204 sem corpo. Boa prática: apague assim que terminar de usar.

Seu plano e consumo

GET/v1/me

Consulta o próprio plano, validade e uso do mês.

200 · resposta
{
  "id": "cli_87b1acd07373",
  "plan": "basic",
  "active": true,
  "expired": false,
  "expires_at": "2026-10-06T00:00:00Z",
  "limits": { "rate_per_min": 60, "monthly_quota": 20000, "max_active_mailboxes": 50 },
  "usage":  { "period": "2026-09", "requests": 1240, "mailboxes": 310 }
}

Erros

Erros vêm como {"detail": "…"} com o status HTTP correspondente.

StatusQuandoMensagem (exemplo)
400Domínio pedido não está liberado para a chaveDominio nao permitido. Use um de: […]
401Header ausente ou chave inexistenteX-API-Key ausente · X-API-Key invalida
403Chave suspensa, vencida, ou IP fora da allowlistAssinatura expirada. Renove para continuar usando.
404Token ou id de mensagem não encontradoToken nao encontrado
409Mailcow recusou a criação (prefixo em uso, etc.)Nao foi possivel criar o mailbox: …
410A caixa já passou do TTLMailbox expirado
429Rate limit, cota do mês, ou teto de caixas ativasRate limit excedido. Aguarde e tente de novo. · Limite de 50 mailboxes ativos atingido.
502Falha temporária falando com o servidor de correioErro ao ler inbox via IMAP: …

Em 429 por rate limit, respeite o Retry-After. Em 502, tente de novo com backoff — costuma ser transitório.

Planos

Os números abaixo são os presets. Limites sob medida (mais caixas, cota maior, domínio dedicado) são combinados no suporte.

PlanoReq/minReq/mêsCaixas ativasValidade
trial1030033 dias
basic6020.0005030 dias
pro240200.00030030 dias
unlimited365 dias

Renovação: pagou de novo, a validade é estendida na mesma chave — sem trocar nada no seu código.

Boas práticas

Faça poll com intervalo
5 s entre consultas à caixa é suficiente. E-mail de verificação chega em segundos, mas não instantaneamente.
Apague ao terminar
DELETE libera vaga na cota de caixas ativas antes do TTL.
TTL curto
Peça só o tempo que precisa. Caixa de verificação raramente vive mais de 10 min.
Trate o 429
Backoff exponencial + honre Retry-After. Paralelizar sem isso só queima cota.
Uma chave por ambiente
Não compartilhe a mesma chave entre projetos — se um vazar, a rotação derruba todos.
Nada de spam
A caixa é só para receber. Uso para envio/abuso derruba a chave sem reembolso.