⚡TempMail PremiumEmail jetable • Sécurisé

Développeurs

API TempMail

API REST simple, sans clé, sans authentification complexe. Un jeton anonyme par adresse, du JSON partout, prête pour vos tests automatisés.

Sans clé API JSON partout Limite souple : 60 req/min CORS ouvert

Démarrage rapide

// 1. Créer une adresse
const res = await fetch("/api/addresses", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({})
});
const { address } = await res.json();
console.log(address.email, address.token);

// 2. Lister les messages (polling 4s recommandé)
const inbox = await fetch(
  `/api/addresses/${address.id}/messages?token=${address.token}`
).then(r => r.json());
console.log(inbox.total, "messages,", inbox.unread, "non lus");

// 3. Lire un message
const msg = await fetch(
  `/api/messages/${inbox.messages[0].id}?token=${address.token}`
).then(r => r.json());

Testez en direct

GET /api/stats — aucune authentification requise

Référence des endpoints

GET/api/domainsDomaines actifs

Liste les domaines e-mail réellement actifs pour créer des adresses.

Réponse 200

{ "domains": ["uberip.com"], "provider": "mail.tm" }
POST/api/addressesCréer une adresse réelle

Crée un vrai compte e-mail (valide 60 minutes) capable de recevoir de vrais messages, avec messages de bienvenue.

Corps de requête

{
  "localPart": "mon.test.42",
  "domain": "uberip.com"
}

Réponse 200

{
  "address": {
    "id": "uuid",
    "email": "mon.test.42@uberip.com",
    "token": "jeton-secret",
    "expiresAt": "2026-10-01T12:00:00Z"
  }
}
GET/api/addresses?token=xxxRécupérer mon adresse

Retrouve l'adresse liée à votre jeton anonyme.

Réponse 200

{ "address": { "email": "...", "messageCount": 3 } }
GET/api/addresses/{id}/messagesLister les messages

Paramètres : token (requis), search, filter (all|unread|read|attachments).

Réponse 200

{
  "messages": [...],
  "total": 12,
  "unread": 4
}
GET/api/messages/{id}?token=xxxLire un message

Retourne le contenu complet (texte + HTML) et marque comme lu.

Réponse 200

{ "message": { "subject": "...", "bodyHtml": "..." } }
PATCH/api/messages/{id}Marquer lu / non lu

Bascule le statut de lecture d'un message.

Corps de requête

{ "token": "xxx", "isRead": true }

Réponse 200

{ "ok": true, "isRead": true }
DELETE/api/messages/{id}Supprimer un message

Suppression définitive et immédiate.

Corps de requête

{ "token": "xxx" }

Réponse 200

{ "ok": true }
POST/api/addresses/{id}/extendProlonger +60 min

Repousse l'expiration de 60 minutes (max 10 prolongations).

Corps de requête

{ "token": "xxx" }

Réponse 200

{ "address": { "expiresAt": "...", "extendedCount": 1 } }
DELETE/api/addresses/{id}?token=xxxSupprimer une adresse

Détruit l'adresse et tous ses messages (cascade).

Réponse 200

{ "ok": true }

Besoin d'un SDK ou d'un webhook ?

Dites-le-nous, la feuille de route est pilotée par vos retours.

Proposer une fonctionnalité