Создать ящик
Выдаёт адрес и возвращает токен, который его читает. Все поля необязательны, включая само тело запроса.
Выполняет настоящий запрос в вашем рабочем пространстве, с вашим собственным ключом.
POST /temp-mail/inboxes
Выдаёт адрес и возвращает токен, который его читает. Все поля необязательны, включая само тело запроса.
Без учётных данных
export OE=https://api.openemail.ukНе отправляйте заголовок Authorization вовсе. Это единственный ресурс в API, который отвечает без него. Он зарегистрирован выше проверки ключа, а не снабжён скоупом, потому что предлагается адрес для того, у кого его нет, и требование сначала завести ключ превратило бы это в форму сбора лидов в одежде инструмента.
Пример
Пустое тело допустимо и является обычным случаем: сгенерированная локальная часть на домене, выбранном из пула, в аренду на час.
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 и единственный во всём API ответ, который несёт token. Сохраните его, прежде чем делать с адресом что-либо ещё.
Сгенерированная локальная часть — это двенадцать символов из алфавита без гласных и без похожих друг на друга знаков, так что она не может сложиться в слово и переживает чтение с экрана.
Всё, что может быть отклонено, отклоняется по имени, а не подгоняется: 422 unknown_domain, invalid_address, reserved_address или invalid_parameter для ttlMinutes вне диапазона от 1 до 1440; 409 address_taken для уже занятой локальной части; 429 too_many_inboxes при достижении потолка выпуска; 503 temp_mail_unavailable на установке, где нет ни одного домена в пуле.
Параметры
Тело запроса
domainstring- Один из `GET /temp-mail/domains`. Не указывайте его — и пул выберет случайно, а не будет заполнять первый домен. Один домен, принимающий все одноразовые регистрации в интернете, зарабатывает соответствующую репутацию, и эту репутацию делят все адреса на нём. Домен, которого нет в пуле, отклоняется по имени (422 `unknown_domain`), а не подменяется молча, потому что вы бы уже скопировали тот адрес, который просили.
localPartstring- Часть до @, если вы хотите выбрать её сами: от 3 до 32 символов из букв, цифр, точек, дефисов и подчёркиваний, начинающихся и заканчивающихся буквой или цифрой. Уже, чем допускает RFC 5321, потому что эта строка попадает в путь URL, в заголовок `To:` и на страницу HTML. `+` исключён, поскольку субадресация схлопывается на входе, так что `alice+bob` оказался бы именем, по которому до вас на самом деле не достучаться. Занятые имена отвечают 409 `address_taken`, и это покрывает два случая: им владеет другой посетитель (или владел в течение последней недели, пока адрес ещё выведен из обращения), и владелец домена создал его как настоящий адрес, что отклоняется под тем же кодом, потому что почта на него дойдёт до него, а не до вас. `postmaster` и прочие зарезервированные отвечают 422 `reserved_address`.
ttlMinutesnumber- Какой должна быть аренда, в минутах, от 1 до 1440. По умолчанию 60. Всё, что вне этого диапазона, отвечает 422 `invalid_parameter` с указанием поля, а не подгоняется молча. Вы бы уже показали кому-то тот срок истечения, о котором просили. Сутки отсчитываются от момента создания, поэтому каждый час, взятый сразу, — это продление, которое нельзя потратить позже: `ttlMinutes: 120` возвращается с 22 продлениями, а 1440 — ни с одним.
Ответ: temp_inbox плюс токен
idstring- Идентификатор ящика, `tinb_` и двадцать четыре шестнадцатеричных символа. Он идёт в пути каждого другого вызова, и он не является секретом. Секрет — это токен.
addressstring- Адрес, который можно отдавать. Почта, адресованная на `that+anything@`, тоже дойдёт до него, потому что субадресация схлопывается до поиска.
domainstring- Домен из пула, на котором находится адрес, вынесен отдельно, чтобы клиенту не приходилось разбирать адрес ради его отображения.
createdAtstring- ISO-8601. Суточный потолок отсчитывается от него, а не от последнего продления.
expiresAtstring- ISO-8601. После него токен немедленно перестаёт аутентифицировать, а очистка удалит почту на следующем прогоне.
extensionsLeftnumber- Сколько ещё раз `extend` действительно добавит времени, с учётом обоих потолков: 23 продлений, которые допускает аренда, и 24 часов от `createdAt`, за которые она не может выйти, — смотря что наступит раньше. Ящик, созданный с `ttlMinutes: 1440`, сообщает 0, не потратив ничего. Ноль означает, что вызов ответил бы 409, и именно на этом клиенту стоит делать кнопку неактивной, а не выяснять это нажатием.
messageCountnumber- Сколько сообщений этот ящик ПРИНЯЛ, а не сколько показывается. Это число не уменьшается при удалении: потолок считает поступления, поэтому удаление освобождает хранилище, но не место.
messageLimitnumber- Потолок, отправляемый с каждым ящиком, чтобы клиент мог сказать «полон», не зашивая нашу константу у себя.
lastMessageAtstring | null- Когда почта приходила в последний раз, ISO-8601, или null, если не приходила вовсе. Null на свежем ящике читается совсем иначе, чем тишина, для того, кто ждёт уже две минуты.
tokenstring- Учётные данные, в этом ответе и ни в каком другом. `oe_inbox_` и 43 символа base64url; строка хранит только хеш с ключом, поэтому перечитать или восстановить их нельзя.
Каждый другой ответ по ящику (получение, продление) — это тот же объект без token.