Aller à la documentation
API

Créer une boîte

Émet une adresse et renvoie le token qui la lit. Tous les champs sont facultatifs, y compris le corps.

POSTapi.openemail.uk/temp-mail/inboxes

Exécute le véritable appel sur votre espace de travail, avec votre propre clé.

POST /temp-mail/inboxes

Émet une adresse et renvoie le token qui la lit. Tous les champs sont facultatifs, y compris le corps.

Aucun identifiant

shell
export OE=https://api.openemail.uk

N'envoyez aucun en-tête Authorization. C'est la seule ressource de l'API qui répond sans. Elle est enregistrée avant le contrôle de clé plutôt que dotée d'une portée, parce que ce qui est proposé est une adresse pour quelqu'un qui n'en a pas, et demander d'abord une clé en ferait un formulaire de prospection déguisé en outil.

Exemple

Un corps vide est valide et c'est le cas courant : une partie locale générée sur un domaine tiré du pool, louée pour une heure.

curl
curl -X POST "$OE/temp-mail/inboxes" -H "Content-Type: application/json" \  -d '{ "localPart": "octopus-signup", "ttlMinutes": 120 }'
Réponse
{  "object": "temp_inbox",  "id": "tinb_9c2f41ab7d3e4c118a0f5d72",  "address": "[email protected]",  "domain": "freemailaddress.com",  "createdAt": "2026-09-01T10:00:00.000Z",  "expiresAt": "2026-09-01T12:00:00.000Z",  "extensionsLeft": 22,  "messageCount": 0,  "messageLimit": 50,  "lastMessageAt": null,  "token": "oe_inbox_kQ8v…"}

201, et la seule réponse de toute l'API qui porte token. Stockez-le avant de faire quoi que ce soit d'autre avec l'adresse.

Une partie locale générée compte douze caractères tirés d'un alphabet sans voyelles ni sosies, si bien qu'elle ne peut rien épeler et survit à une lecture sur écran.

Tout ce qui peut être refusé l'est nommément plutôt qu'ajusté : 422 unknown_domain, invalid_address, reserved_address, ou invalid_parameter pour un ttlMinutes hors de 1 à 1440 ; 409 address_taken pour une partie locale déjà prise ; 429 too_many_inboxes au plafond de création ; 503 temp_mail_unavailable sur une installation sans aucun domaine dans le pool.

Paramètres

Corps

domainstring
L'un de ceux de `GET /temp-mail/domains`. Omettez-le et le pool choisit au hasard au lieu de remplir le premier domaine. Un domaine qui reçoit toutes les inscriptions jetables d'internet gagne la réputation correspondante, et cette réputation est partagée par chaque adresse qu'il porte. Un domaine absent du pool est refusé nommément (422 `unknown_domain`) plutôt que remplacé en silence, car vous auriez déjà copié l'adresse demandée.
localPartstring
La partie avant l'@, si vous voulez la choisir : de 3 à 32 caractères parmi lettres, chiffres, points, tirets et traits de soulignement, commençant et finissant par une lettre ou un chiffre. Plus étroit que ce qu'autorise la RFC 5321, parce que cette chaîne part dans un chemin d'URL, un en-tête `To:` et une page HTML. Le `+` est exclu, puisque le sous-adressage est réduit à l'entrée : `alice+bob` serait donc un nom auquel on ne pourrait pas réellement vous joindre. Les noms déjà pris répondent 409 `address_taken`, ce qui couvre deux cas : un autre visiteur le détient (ou l'a détenu au cours de la dernière semaine, pendant que l'adresse est encore hors circulation), et le propriétaire du domaine l'a créé comme adresse réelle, ce qui est refusé sous le même code parce que le courrier qui lui est destiné lui parvient à lui et jamais à vous. `postmaster` et les autres adresses réservées répondent 422 `reserved_address`.
ttlMinutesnumber
Quelle doit être la durée du bail, en minutes, de 1 à 1440. Vaut 60 par défaut. Tout ce qui sort de cette plage répond 422 `invalid_parameter` en nommant le champ plutôt que d'être ajusté en silence. Vous auriez déjà montré à quelqu'un l'expiration que vous aviez demandée. Les 24 heures se mesurent depuis la création : chaque heure prise d'emblée est donc une prolongation qui ne pourra pas être dépensée plus tard ; `ttlMinutes: 120` revient avec 22 d'entre elles, et 1440 avec aucune.

Réponse : temp_inbox, plus un token

idstring
L'id de la boîte, `tinb_` suivi de vingt-quatre caractères hexadécimaux. Il figure dans le chemin de tous les autres appels, et ce n'est pas un secret. Le token, si.
addressstring
L'adresse à communiquer. Le courrier adressé à `that+anything@` y parvient aussi, parce que le sous-adressage est réduit avant la recherche.
domainstring
Le domaine du pool sur lequel se trouve l'adresse, isolé pour qu'un client n'ait pas à analyser l'adresse pour l'afficher.
createdAtstring
ISO-8601. Le plafond de 24 heures se mesure à partir de là, pas depuis la dernière prolongation.
expiresAtstring
ISO-8601. Passé ce moment, le token cesse immédiatement d'authentifier, et le balayage supprime le courrier à son exécution suivante.
extensionsLeftnumber
Combien de fois encore `extend` achètera réellement du temps, en comptant les deux plafonds : les 23 prolongations qu'autorise un bail, et les 24 heures depuis `createdAt` qu'il ne pourra jamais dépasser, le premier atteint l'emportant. Une boîte créée avec `ttlMinutes: 1440` indique 0 sans rien avoir dépensé. Zéro signifie que l'appel répondrait 409, ce sur quoi un client devrait griser le bouton plutôt que de le découvrir en appuyant.
messageCountnumber
Les messages que cette boîte a ACCEPTÉS, pas le nombre affiché. Il ne diminue pas quand vous en supprimez un : le plafond compte les arrivées, donc supprimer libère du stockage mais pas de la place.
messageLimitnumber
Le plafond, envoyé sur chaque boîte afin qu'un client puisse dire « pleine » sans coder en dur notre constante.
lastMessageAtstring | null
Quand du courrier est arrivé pour la dernière fois, ISO-8601, ou null s'il n'y en a pas eu. Null sur une boîte neuve se lit très différemment d'une boîte silencieuse pour quelqu'un qui attend depuis deux minutes.
tokenstring
L'identifiant, sur cette réponse et sur aucune autre. `oe_inbox_` suivi de 43 caractères base64url ; la ligne ne stocke qu'un hachage à clé, il ne peut donc être ni relu ni récupéré.

Toute autre réponse de boîte (récupération, prolongation) est cet objet sans token.