API do saci.cc

Uma API HTTP simples, sem cadastro e sem autenticação, para criar endereços temporários e ler os emails que chegam. Serve bem para testar cadastros e recuperação de senha de ponta a ponta.

URL base

https://saci.cc/api

Começo rápido

Crie um endereço, use-o onde precisar e espere o email chegar:

# 1. Criar um endereço
curl -X POST https://saci.cc/api/addresses

# 2. Esperar um email chegar (até 25 s)
curl "https://saci.cc/api/addresses/a1b2c3d4e5f60718@saci.cc/emails?wait=25"

# 3. Ler o email
curl "https://saci.cc/api/addresses/a1b2c3d4e5f60718@saci.cc/emails/{messageId}"

Endpoints

Criar endereço

POST/addresses

Gera um endereço novo e aleatório. Não é preciso registrar nada: qualquer email enviado para ele fica disponível por cerca de um dia.

NomeOndeDescrição
namequeryOpcional. Nome do endereço (3 a 32 letras, números, pontos, hífens ou sublinhados). Sem ele, o nome é aleatório.
curl -X POST https://saci.cc/api/addresses

Resposta · 201

{ "address": "a1b2c3d4e5f60718@saci.cc" }

Listar emails

GET/addresses/{address}/emails

Lista os emails recebidos, do mais novo para o mais antigo. Com wait, a requisição fica aberta até chegar um email (no máximo 25 segundos), sem precisar consultar em loop.

NomeOndeDescrição
addressobrigatóriocaminhoEndereço completo, por exemplo a1b2c3d4e5f60718@saci.cc
waitquerySegundos para esperar um email chegar, até 25. Sem ele, responde na hora.
afterqueryData ISO 8601. Com wait, espera um email recebido depois dela.
curl "https://saci.cc/api/addresses/a1b2c3d4e5f60718@saci.cc/emails?wait=25"

Resposta · 200

{
  "emails": [
    {
      "messageId": "0100019a2b3c4d5e-6f7a8b9c-...",
      "from": "GitHub <noreply@github.com>",
      "subject": "[GitHub] Please verify your email address",
      "receivedAt": "2026-10-20T15:30:00.000Z"
    }
  ]
}

Ler email

GET/addresses/{address}/emails/{messageId}

Devolve o conteúdo do email em HTML e em texto.

NomeOndeDescrição
addressobrigatóriocaminhoEndereço completo, por exemplo a1b2c3d4e5f60718@saci.cc
messageIdobrigatóriocaminhoO messageId que veio na listagem
curl "https://saci.cc/api/addresses/a1b2c3d4e5f60718@saci.cc/emails/{messageId}"

Resposta · 200

{
  "messageId": "0100019a2b3c4d5e-6f7a8b9c-...",
  "from": "GitHub <noreply@github.com>",
  "subject": "[GitHub] Please verify your email address",
  "receivedAt": "2026-10-20T15:30:00.000Z",
  "html": "<p>Your code is <b>482913</b></p>",
  "text": "Your code is 482913",
  "attachments": [
    {
      "index": 0,
      "filename": "invoice.pdf",
      "contentType": "application/pdf",
      "size": 48213,
      "inline": false,
      "url": "https://saci.cc/api/addresses/a1b2c3d4e5f60718@saci.cc/emails/0100019a2b3c4d5e-6f7a8b9c-.../attachments/0"
    }
  ]
}

Baixar anexo

GET/addresses/{address}/emails/{messageId}/attachments/{index}

Redireciona para um link de download do anexo, válido por alguns minutos. O índice vem da lista attachments do email.

NomeOndeDescrição
addressobrigatóriocaminhoEndereço completo, por exemplo a1b2c3d4e5f60718@saci.cc
messageIdobrigatóriocaminhoO messageId que veio na listagem
indexobrigatóriocaminhoPosição do anexo na lista attachments, começando em 0
curl -L -OJ "https://saci.cc/api/addresses/a1b2c3d4e5f60718@saci.cc/emails/{messageId}/attachments/0"

Resposta · 302

Apagar email

DELETE/addresses/{address}/emails/{messageId}

Apaga um email e os anexos dele. Responde 204, ou 404 se ele não existir.

NomeOndeDescrição
addressobrigatóriocaminhoEndereço completo, por exemplo a1b2c3d4e5f60718@saci.cc
messageIdobrigatóriocaminhoO messageId que veio na listagem
curl -X DELETE "https://saci.cc/api/addresses/a1b2c3d4e5f60718@saci.cc/emails/{messageId}"

Resposta · 204

Esvaziar caixa

DELETE/addresses/{address}/emails

Apaga todos os emails da caixa e diz quantos eram.

NomeOndeDescrição
addressobrigatóriocaminhoEndereço completo, por exemplo a1b2c3d4e5f60718@saci.cc
curl -X DELETE "https://saci.cc/api/addresses/a1b2c3d4e5f60718@saci.cc/emails"

Resposta · 200

{ "deleted": 3 }

Limites e erros

  • 120 requisições por minuto por IP. Acima disso a resposta é 429, com o cabeçalho Retry-After dizendo quantos segundos esperar.
  • O wait vai até 25 segundos por requisição. Se o tempo acabar, a resposta vem normalmente, com a lista atual (que pode estar vazia).
  • Os emails são apagados cerca de um dia depois de chegar. Depois disso, a leitura responde 404.
  • Endereço ou parâmetro inválido responde 400.
  • Não há senha: quem souber o endereço consegue ler a caixa. Não use para nada sensível.

Usando com agentes de IA

Se você usa Claude, Cursor ou outro agente, o servidor MCP faz tudo isso sem você escrever código. Ver o servidor MCP

Esta documentação também está em texto puro para LLMs: /llms.txt · /llms-full.txt