API de saci.cc

Una API HTTP sencilla, sin registro y sin autenticación, para crear direcciones temporales y leer los correos que reciben. Útil para probar de punta a punta registros y recuperación de contraseña.

URL base

https://saci.cc/api

Inicio rápido

Crea una dirección, úsala donde la necesites y espera el correo:

# 1. Crear una dirección
curl -X POST https://saci.cc/api/addresses

# 2. Esperar un correo (hasta 25 s)
curl "https://saci.cc/api/addresses/a1b2c3d4e5f60718@saci.cc/emails?wait=25"

# 3. Leer el correo
curl "https://saci.cc/api/addresses/a1b2c3d4e5f60718@saci.cc/emails/{messageId}"

Endpoints

Crear dirección

POST/addresses

Genera una dirección nueva y aleatoria. No hay que registrar nada: cualquier correo enviado a ella está disponible durante un día, más o menos.

NombreDóndeDescripción
namequeryOpcional. Nombre de la dirección (3 a 32 letras, números, puntos, guiones o guiones bajos). Aleatorio si se omite.
curl -X POST https://saci.cc/api/addresses

Respuesta · 201

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

Listar correos

GET/addresses/{address}/emails

Lista los correos recibidos, del más nuevo al más antiguo. Con wait, la solicitud queda abierta hasta que llega un correo (25 segundos como máximo), sin tener que consultar en bucle.

NombreDóndeDescripción
addressobligatoriorutaDirección completa, por ejemplo a1b2c3d4e5f60718@saci.cc
waitquerySegundos para esperar un correo, hasta 25. Sin él, responde al instante.
afterqueryFecha ISO 8601. Con wait, espera un correo recibido después de ella.
curl "https://saci.cc/api/addresses/a1b2c3d4e5f60718@saci.cc/emails?wait=25"

Respuesta · 200

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

Leer correo

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

Devuelve el contenido del correo en HTML y en texto.

NombreDóndeDescripción
addressobligatoriorutaDirección completa, por ejemplo a1b2c3d4e5f60718@saci.cc
messageIdobligatoriorutaEl messageId que vino en la lista
curl "https://saci.cc/api/addresses/a1b2c3d4e5f60718@saci.cc/emails/{messageId}"

Respuesta · 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"
    }
  ]
}

Descargar adjunto

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

Redirige a un enlace de descarga del adjunto, válido por unos minutos. El índice viene de la lista attachments del correo.

NombreDóndeDescripción
addressobligatoriorutaDirección completa, por ejemplo a1b2c3d4e5f60718@saci.cc
messageIdobligatoriorutaEl messageId que vino en la lista
indexobligatoriorutaPosición del adjunto en la lista attachments, empezando en 0
curl -L -OJ "https://saci.cc/api/addresses/a1b2c3d4e5f60718@saci.cc/emails/{messageId}/attachments/0"

Respuesta · 302

Borrar correo

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

Borra un correo y sus adjuntos. Responde 204, o 404 si no existe.

NombreDóndeDescripción
addressobligatoriorutaDirección completa, por ejemplo a1b2c3d4e5f60718@saci.cc
messageIdobligatoriorutaEl messageId que vino en la lista
curl -X DELETE "https://saci.cc/api/addresses/a1b2c3d4e5f60718@saci.cc/emails/{messageId}"

Respuesta · 204

Vaciar bandeja

DELETE/addresses/{address}/emails

Borra todos los correos de la bandeja y dice cuántos había.

NombreDóndeDescripción
addressobligatoriorutaDirección completa, por ejemplo a1b2c3d4e5f60718@saci.cc
curl -X DELETE "https://saci.cc/api/addresses/a1b2c3d4e5f60718@saci.cc/emails"

Respuesta · 200

{ "deleted": 3 }

Límites y errores

  • 120 solicitudes por minuto por IP. Por encima, la respuesta es 429, con la cabecera Retry-After indicando cuántos segundos esperar.
  • wait llega hasta 25 segundos por solicitud. Si se acaba el tiempo, la respuesta llega normal, con la lista actual (que puede estar vacía).
  • Los correos se borran un día después de llegar, más o menos. Después, leerlos devuelve 404.
  • Una dirección o parámetro inválido devuelve 400.
  • No hay contraseña: quien conozca la dirección puede leer su bandeja. No la uses para nada delicado.

Con agentes de IA

Si usas Claude, Cursor u otro agente, el servidor MCP hace todo esto sin escribir código. Ver el servidor MCP

Esta documentación también está en texto plano para LLMs: /llms.txt · /llms-full.txt