La API de correo temporal hecha para desarrolladores
Bandejas desechables que puedes controlar desde código: lee el correo con una API REST sencilla, recibe webhooks firmados con HMAC y conéctalas a agentes MCP. Todas las cuentas tienen una clave API gratuita; los planes de pago desde 1,99 €/mes amplían los límites.
# Any address on a CyberTemp domain works: the inbox is created on first read.
curl "https://api.cybertemp.xyz/[email protected]" \
-H "X-API-KEY: tk_..."
# [{"id":"...","from":"[email protected]","subject":"Your code is 482917",
# "text":"...","html":"...","date":"2026-05-17T09:31:00.000Z"}]Pensado para estos flujos de trabajo
La mayoría de quienes usan la API de CyberTemp hacen una de estas tres cosas.
Funciones
Autenticación con clave de API
Claves por cuenta y tokens de CLI por dispositivo. Revocables desde el panel.
Webhooks
Recibe avisos de mensajes nuevos en tu endpoint. Firmados con HMAC.
Extracción de OTP
Lee el mensaje más reciente con un solo GET y extrae el código con una expresión regular corta. Consulta los ejemplos de abajo.
IMAP
Conecta tus clientes de correo y herramientas actuales.
Dominios personalizados
Usa el tuyo propio: incluye ayuda con la configuración DNS.
Servidor MCP
Herramientas listas para usar en Claude Desktop y Cursor.
CLI
Próximamente. Hasta que se publique, usa la API REST o el servidor MCP.
SDKs
Bibliotecas cliente para Python, Go y Rust, o HTTP directo desde cualquier lenguaje.
Código real, no pseudocódigo
Esperar un OTP en una prueba de Playwright
import { test, expect } from "@playwright/test";
const API = "https://api.cybertemp.xyz";
const headers = { "X-API-KEY": process.env.CYBERTEMP_API_KEY! };
// Polls /getMail until the newest message contains a 4-8 digit code.
async function waitForOtp(email: string, timeoutMs = 30_000) {
const deadline = Date.now() + timeoutMs;
while (Date.now() < deadline) {
const res = await fetch(`${API}/getMail?email=${encodeURIComponent(email)}`, { headers });
const mails: { subject: string; text: string }[] = await res.json();
const otp = mails[0] && `${mails[0].subject}\n${mails[0].text}`.match(/\b\d{4,8}\b/);
if (otp) return otp[0];
await new Promise((r) => setTimeout(r, 2000));
}
throw new Error("Timed out waiting for the OTP email");
}
test("signup verifies via OTP", async ({ page }) => {
const email = `e2e${Date.now()}@cybertemp.xyz`;
await page.goto("https://example.com/signup");
await page.fill("#email", email);
await page.click("button[type=submit]");
const otp = await waitForOtp(email);
await page.fill("#otp", otp);
await expect(page).toHaveURL(/dashboard/);
});Receptor de webhooks (planes Elite y Team)
Suscribe un endpoint HTTPS para recibir POST firmados con HMAC-SHA256 cada vez que llegue un mensaje a cualquiera de tus bandejas. Reintentamos con retroceso exponencial (1 min, 5 min, 30 min, 6 h) ante errores 5xx o tiempos de espera, y pausamos automáticamente tras 10 fallos seguidos.
message.received— llega un correo nuevo a una de tus bandejasinbox.created— se ha creado una bandeja nueva en tu cuentatest.ping— lanzado desde el botón «Probar» del panel
- X-Cybertemp-Signature: sha256=<hmac_hex>
- X-Cybertemp-Event: message.received
- X-Cybertemp-Delivery: <unique_id>
- X-Cybertemp-Timestamp: <unix_seconds>
- Content-Type: application/json
{
"event": "message.received",
"delivery_id": "7c4f...",
"timestamp": 1731234567,
"data": {
"inbox_id": "5d2f...",
"inbox": "[email protected]",
"message_id": "9a1b...",
"from": "[email protected]",
"to": ["[email protected]"],
"subject": "Your verification code",
"received_at": "2026-05-17T09:31:00Z",
"size_bytes": 4732,
"encrypted": true
}
}import crypto from "node:crypto";
import express from "express";
const app = express();
// IMPORTANT: keep the raw buffer for HMAC. Express's json() throws it away.
app.use("/webhooks/cybertemp",
express.raw({ type: "application/json" }));
app.post("/webhooks/cybertemp", (req, res) => {
const header = req.header("x-cybertemp-signature") || "";
const expected = "sha256=" + crypto
.createHmac("sha256", process.env.CT_WEBHOOK_SECRET)
.update(req.body) // req.body is a Buffer thanks to express.raw
.digest("hex");
if (!crypto.timingSafeEqual(Buffer.from(header), Buffer.from(expected))) {
return res.status(401).end();
}
const event = JSON.parse(req.body.toString("utf8"));
console.log(event.data.from, "→", event.data.subject);
res.status(200).end();
});Gestiona los endpoints y los secretos de firma en Ajustes → Webhooks. Cada endpoint tiene un botón Probar que envía un evento de prueba, para que puedas comprobar la verificación de la firma sin esperar a un correo real.
Flujo de agente mediante MCP
User: Sign me up at acme.test with a throwaway email.
Wait for the verification code and paste it back.
Agent:
- create_inbox() -> [email protected]
- POST acme.test/signup { email: [email protected] }
- wait_for_message([email protected], timeout=60)
-> "Your code is 482917"
- POST acme.test/verify { otp: 482917 }
Done.Empieza en 3 pasos
Crea una cuenta gratuita. No se requiere tarjeta de crédito.
RegistrarseCualquier cuenta puede crear claves en Ajustes → Claves API. Las claves gratuitas tienen los límites del plan gratuito; los planes de pago los amplían.
Conseguir una clave de APIcurl -H "X-API-KEY: tk_..." \
"https://api.cybertemp.xyz/[email protected]"Desde 1,99 €/mes
Empieza gratis con una clave API. Los planes de pago amplían los límites de peticiones y de bandejas; Elite añade webhooks.