L'API d'e-mail temporaire pensée pour les développeurs
Des boîtes jetables pilotables par le code : lisez les e-mails via une API REST simple, recevez des webhooks signés HMAC, branchez des agents MCP. Chaque compte obtient une clé d'API gratuite ; les forfaits payants dès 1,99 €/mois augmentent les limites.
# 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"}]Conçu pour ces cas d'usage
La plupart des utilisateurs de l'API CyberTemp font l'une de ces trois choses.
Fonctionnalités
Authentification par clé d'API
Clés par compte, jetons CLI par appareil. Révocables depuis le tableau de bord.
Webhooks
Recevez les notifications de nouveaux messages sur votre endpoint. Signées en HMAC.
Extraction d'OTP
Lisez le message le plus récent avec un seul GET et extrayez le code avec une courte regex. Voir les exemples ci-dessous.
IMAP
Connectez vos clients de messagerie et vos outils existants.
Domaines personnalisés
Utilisez le vôtre — assistance à la configuration DNS incluse.
Serveur MCP
Outils prêts à l'emploi pour Claude Desktop et Cursor.
CLI
Bientôt disponible. En attendant, utilisez l'API REST ou le serveur MCP.
SDKs
Bibliothèques clientes pour Python, Go et Rust, ou HTTP brut depuis n'importe quel langage.
Du vrai code, pas du pseudo-code
Attendre un OTP dans un test 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/);
});Récepteur de webhooks (forfaits Elite et Team)
Abonnez un endpoint HTTPS pour recevoir des POST signés en HMAC-SHA256 dès qu'un message arrive dans l'une de vos boîtes. Nous réessayons avec un backoff exponentiel (1 min, 5 min, 30 min, 6 h) en cas d'erreur 5xx ou de délai dépassé, et mettons en pause après 10 échecs consécutifs.
message.received— un nouvel e-mail arrive dans l'une de vos boîtesinbox.created— une nouvelle boîte a été créée sur votre comptetest.ping— déclenché depuis le bouton « Test » du tableau de bord
- 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();
});Gérez les endpoints et les secrets de signature dans Paramètres → Webhooks. Chaque endpoint dispose d'un bouton Test qui envoie un événement de test, pour vérifier votre validation de signature sans attendre de vrais e-mails.
Flux d'agent via 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.Démarrage en 3 étapes
Créez un compte gratuit. Aucune carte bancaire requise.
S'inscrireTout compte peut créer des clés dans Paramètres → Clés d'API. Les clés Free ont les limites du forfait Free ; les forfaits payants les augmentent.
Obtenir une clé d'APIcurl -H "X-API-KEY: tk_..." \
"https://api.cybertemp.xyz/[email protected]"À partir de 1,99 €/mois
Commencez gratuitement avec une clé d'API. Les forfaits payants augmentent les limites de débit et le plafond de boîtes ; Elite ajoute les webhooks.