Crear una bandeja
Emite una dirección y devuelve el token que la lee. Todos los campos son opcionales, incluido el cuerpo.
Ejecuta la llamada real contra tu espacio de trabajo, con tu propia clave.
POST /temp-mail/inboxes
Emite una dirección y devuelve el token que la lee. Todos los campos son opcionales, incluido el cuerpo.
Sin credencial
export OE=https://api.openemail.ukNo envíes ninguna cabecera Authorization. Este es el único recurso de la API que responde sin ella. Está registrado por encima de la comprobación de clave en lugar de tener un ámbito, porque lo que se ofrece es una dirección para quien no tiene ninguna, y pedir primero una clave lo convertiría en un formulario de captación disfrazado de herramienta.
Ejemplo
Un cuerpo vacío es válido y es el caso habitual: una local-part generada en un dominio elegido del conjunto, arrendada durante una hora.
curl -X POST "$OE/temp-mail/inboxes" -H "Content-Type: application/json" \ -d '{ "localPart": "octopus-signup", "ttlMinutes": 120 }'{ "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, y la única respuesta de toda la API que lleva token. Guárdalo antes de hacer cualquier otra cosa con la dirección.
Una local-part generada son doce caracteres de un alfabeto sin vocales ni caracteres que se parezcan entre sí, de modo que no puede formar ninguna palabra y sobrevive a que alguien la lea de una pantalla.
Todo lo que se puede rechazar se rechaza por su nombre en lugar de ajustarse: 422 unknown_domain, invalid_address, reserved_address o invalid_parameter para un ttlMinutes fuera del rango de 1 a 1440; 409 address_taken para una local-part ya reservada; 429 too_many_inboxes al alcanzar el tope de acuñación; 503 temp_mail_unavailable en una instalación sin ningún dominio en el conjunto.
Parámetros
Cuerpo
domainstring- Uno de los de `GET /temp-mail/domains`. Omítelo y el conjunto elige al azar en lugar de llenar el primer dominio. Un dominio que recibe todos los registros desechables de internet se gana la reputación correspondiente, y esa reputación la comparten todas sus direcciones. Un dominio que no está en el conjunto se rechaza por su nombre (422 `unknown_domain`) en lugar de sustituirse en silencio, porque ya habrías copiado la dirección que pediste.
localPartstring- La parte anterior a la @, si quieres elegirla: de 3 a 32 caracteres entre letras, dígitos, puntos, guiones y guiones bajos, empezando y terminando en una letra o un dígito. Más restrictivo de lo que permite RFC 5321, porque este string va a parar a una ruta de URL, a una cabecera `To:` y a una página de HTML. Se excluye `+`, ya que el subdireccionamiento se colapsa a la entrada, de modo que `alice+bob` sería un nombre en el que en realidad no te podrían localizar. Los nombres ya tomados responden 409 `address_taken`, que cubre dos casos: que otro visitante lo tenga (o lo haya tenido en la última semana, mientras la dirección sigue fuera de circulación) y que el propietario del dominio lo haya creado como dirección real, lo que se rechaza con el mismo código porque el correo dirigido a ella le llega a esa persona y nunca a ti. `postmaster` y las demás reservadas responden 422 `reserved_address`.
ttlMinutesnumber- Cuánto debe durar el arrendamiento, en minutos, de 1 a 1440. Por defecto, 60. Cualquier valor fuera de ese rango responde 422 `invalid_parameter` nombrando el campo en lugar de ajustarse en silencio. Ya le habrías enseñado a alguien la caducidad que pediste. Las 24 horas se miden desde la creación, así que cada hora que tomes por adelantado es una ampliación que no podrás gastar después: `ttlMinutes: 120` vuelve con 22 de ellas, y 1440 con ninguna.
Respuesta: temp_inbox, más un token
idstring- El id de la bandeja, `tinb_` más veinticuatro caracteres hexadecimales. Va en la ruta de todas las demás llamadas, y no es un secreto. El token sí lo es.
addressstring- La dirección que vas a entregar. El correo dirigido a `that+anything@` también llega a ella, porque el subdireccionamiento se colapsa antes de la búsqueda.
domainstring- El dominio del conjunto en el que está la dirección, separado para que un cliente no tenga que analizar la dirección para mostrarlo.
createdAtstring- ISO-8601. El tope de 24 horas se mide desde aquí, no desde la última ampliación.
expiresAtstring- ISO-8601. Pasado ese momento, el token deja de autenticar de inmediato, y el barrido elimina el correo en su siguiente ejecución.
extensionsLeftnumber- Cuántas veces más `extend` comprará tiempo de verdad, contando ambos topes: las 23 ampliaciones que permite un arrendamiento y las 24 horas desde `createdAt` que nunca puede sobrepasar, lo que se alcance primero. Una bandeja creada con `ttlMinutes: 1440` informa de 0 sin haber gastado nada. Cero significa que la llamada respondería 409, que es con lo que un cliente debería atenuar el botón en vez de descubrirlo pulsándolo.
messageCountnumber- Los mensajes que esta bandeja ha ACEPTADO, no cuántos se muestran. No baja cuando eliminas uno: el tope cuenta llegadas, así que eliminar libera almacenamiento pero no plazas.
messageLimitnumber- El tope, enviado en cada bandeja para que un cliente pueda decir «llena» sin codificar a mano nuestra constante.
lastMessageAtstring | null- Cuándo llegó correo por última vez, en ISO-8601, o null si no ha llegado ninguno. Para quien lleva dos minutos esperando, un null en una bandeja recién creada se lee de forma muy distinta que en una bandeja que está en silencio.
tokenstring- La credencial, en esta respuesta y en ninguna otra. `oe_inbox_` más 43 caracteres base64url; la fila guarda solo un hash con clave, así que no se puede volver a leer ni recuperar.
Todas las demás respuestas de bandeja (obtener, ampliar) son este mismo objeto sin token.