Перейти к документации
API

Создать ящик

Выдаёт адрес и возвращает токен, который его читает. Все поля необязательны, включая само тело запроса.

POSTapi.openemail.uk/temp-mail/inboxes

Выполняет настоящий запрос в вашем рабочем пространстве, с вашим собственным ключом.

POST /temp-mail/inboxes

Выдаёт адрес и возвращает токен, который его читает. Все поля необязательны, включая само тело запроса.

Без учётных данных

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

Не отправляйте заголовок Authorization вовсе. Это единственный ресурс в API, который отвечает без него. Он зарегистрирован выше проверки ключа, а не снабжён скоупом, потому что предлагается адрес для того, у кого его нет, и требование сначала завести ключ превратило бы это в форму сбора лидов в одежде инструмента.

Пример

Пустое тело допустимо и является обычным случаем: сгенерированная локальная часть на домене, выбранном из пула, в аренду на час.

curl
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.