{"openapi":"3.1.0","info":{"title":"AnyMessage Public API","description":"Пользовательское API. Авторизация: личный AnyMessage token или Bearer. GET order/order-custom/reorder изменяют состояние и могут списывать средства.","version":"1.0"},"paths":{"/domain-email/available":{"get":{"summary":"Доступные домены и цены","description":"Возвращает доступные домены и цены для указанного сервиса.","operationId":"domainEmailAvailable","parameters":[{"name":"sender","in":"query","required":true,"schema":{"type":"string","title":"Sender"},"description":"Ключ сервиса (например text.ru) или точный адрес отправителя. Для чтения — from активации."}],"responses":{"200":{"description":"items — доступные домены; domain — домен; price.amount — цена; price.currency — валюта. Пустой items — нет доступных предложений.","content":{"application/json":{"example":{"items":[{"domain":"example.com","price":{"amount":"0.012","currency":"USD"}}]}}}},"422":{"description":"Неверные параметры запроса","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"invalid_parameters"}}}},"401":{"description":"Неверный или отсутствующий пользовательский токен","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"unauthorized"}}}},"403":{"description":"Недостаточно прав или доступ к интеграции ограничен","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"access_denied"}}}},"402":{"description":"Недостаточный баланс","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"insufficient_balance"}}}},"404":{"description":"Ресурс не найден","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"not_found"}}}},"409":{"description":"Конфликт состояния; прочитайте detail","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"domain_unavailable"}}}},"429":{"description":"Лимит запросов; учитывайте Retry-After","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"rate_limited"}}}},"500":{"description":"Не удалось выполнить запрос","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"service_unavailable"}}}},"502":{"description":"Временная недоступность","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"service_unavailable"}}}},"503":{"description":"Временная недоступность","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"service_unavailable"}}}}},"tags":["Пользовательское API"]}},"/domain-email/prices":{"get":{"summary":"Каталог цен","operationId":"domainEmailPrices","parameters":[{"name":"sender","in":"query","required":true,"schema":{"type":"string","title":"Sender"},"description":"Ключ сервиса (например text.ru) или точный адрес отправителя. Для чтения — from активации."}],"responses":{"200":{"description":"items — доступные домены; domain — домен; price.amount — цена; price.currency — валюта. Пустой items — нет доступных предложений.","content":{"application/json":{"example":{"items":[{"domain":"example.com","price":{"amount":"0.012","currency":"USD"}}]}}}},"422":{"description":"Неверные параметры запроса","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"invalid_parameters"}}}},"401":{"description":"Неверный или отсутствующий пользовательский токен","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"unauthorized"}}}},"403":{"description":"Недостаточно прав или доступ к интеграции ограничен","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"access_denied"}}}},"402":{"description":"Недостаточный баланс","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"insufficient_balance"}}}},"404":{"description":"Ресурс не найден","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"not_found"}}}},"409":{"description":"Конфликт состояния; прочитайте detail","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"domain_unavailable"}}}},"429":{"description":"Лимит запросов; учитывайте Retry-After","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"rate_limited"}}}},"500":{"description":"Не удалось выполнить запрос","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"service_unavailable"}}}},"502":{"description":"Временная недоступность","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"service_unavailable"}}}},"503":{"description":"Временная недоступность","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"service_unavailable"}}}}},"description":"Возвращает цены для указанного сервиса. Формат ответа совпадает с available.","tags":["Пользовательское API"]}},"/domain-email/check-custom":{"get":{"summary":"Проверить своё имя ящика","description":"Проверяет, можно ли купить указанный адрес для сервиса. Без покупки.","operationId":"domainEmailCheckCustom","parameters":[{"name":"domain","in":"query","required":true,"schema":{"type":"string","title":"Domain"},"description":"Принимающий домен из available, без имени ящика."},{"name":"name","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":63,"title":"Name"},"description":"Часть до @: латинские буквы, цифры, ., _, +, -. Без .. и точек по краям."},{"name":"site","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":320},{"type":"null"}],"title":"Site"},"description":"Ключ сервиса вместо sender; нужно одно из site/sender. Разные значения одновременно запрещены."},{"name":"sender","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":320},{"type":"null"}],"title":"Sender"},"description":"Ключ сервиса (например text.ru) или точный адрес отправителя. Для чтения — from активации."}],"responses":{"200":{"description":"email — проверяемый адрес; purchasable — можно ли купить; price — цена и валюта, либо null. При отказе добавляется reason: custom_mailbox_service_already_owned — уже ваш (используйте перезаказ), custom_mailbox_service_taken — занят другим пользователем, custom_mailbox_not_shared — адрес недоступен, mailbox_issuance_paused или sender_issuance_paused — выдача приостановлена, domain_unavailable — домен недоступен, domain_mailbox_quota_exceeded — нет свободных мест, price_unavailable — покупка по текущей цене недоступна.","content":{"application/json":{"example":{"email":"mylogin@example.com","purchasable":true,"price":{"amount":"0.012","currency":"USD"}}}}},"422":{"description":"Неверные параметры запроса","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"invalid_parameters"}}}},"401":{"description":"Неверный или отсутствующий пользовательский токен","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"unauthorized"}}}},"403":{"description":"Недостаточно прав или доступ к интеграции ограничен","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"access_denied"}}}},"402":{"description":"Недостаточный баланс","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"insufficient_balance"}}}},"404":{"description":"Ресурс не найден","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"not_found"}}}},"409":{"description":"Конфликт состояния; прочитайте detail","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"domain_unavailable"}}}},"429":{"description":"Лимит запросов; учитывайте Retry-After","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"rate_limited"}}}},"500":{"description":"Не удалось выполнить запрос","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"service_unavailable"}}}},"502":{"description":"Временная недоступность","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"service_unavailable"}}}},"503":{"description":"Временная недоступность","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"service_unavailable"}}}}},"tags":["Пользовательское API"]}},"/domain-email/order":{"get":{"summary":"Купить адрес для сервиса","description":"Покупает адрес на указанном домене. Платный запрос. Каждый вызов — новая покупка.","operationId":"domainEmailOrder","parameters":[{"name":"domain","in":"query","required":true,"schema":{"type":"string","title":"Domain"},"description":"Принимающий домен из available, без имени ящика."},{"name":"site","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":320},{"type":"null"}],"title":"Site"},"description":"Ключ сервиса вместо sender; нужно одно из site/sender. Разные значения одновременно запрещены."},{"name":"sender","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":320},{"type":"null"}],"title":"Sender"},"description":"Ключ сервиса (например text.ru) или точный адрес отправителя. Для чтения — from активации."},{"name":"label","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":120},{"type":"null"}],"title":"Label"},"description":"Необязательная подпись заказа."}],"responses":{"200":{"description":"ok — покупка успешна; order_id — ID заказа, передавайте как activation_id при чтении письма; email — купленный адрес. Статус получения письма смотрите в activations.","content":{"application/json":{"example":{"ok":true,"order_id":51,"email":"box@example.com"}}}},"422":{"description":"Неверные параметры запроса","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"invalid_parameters"}}}},"401":{"description":"Неверный или отсутствующий пользовательский токен","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"unauthorized"}}}},"403":{"description":"Недостаточно прав или доступ к интеграции ограничен","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"access_denied"}}}},"402":{"description":"Недостаточный баланс","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"insufficient_balance"}}}},"404":{"description":"Ресурс не найден","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"not_found"}}}},"409":{"description":"Конфликт состояния; прочитайте detail","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"domain_unavailable"}}}},"429":{"description":"Лимит запросов; учитывайте Retry-After","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"rate_limited"}}}},"500":{"description":"Не удалось выполнить запрос","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"service_unavailable"}}}},"502":{"description":"Временная недоступность","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"service_unavailable"}}}},"503":{"description":"Временная недоступность","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"service_unavailable"}}}}},"tags":["Пользовательское API"]}},"/domain-email/order-custom":{"get":{"summary":"Купить адрес со своим именем","description":"Покупает адрес с указанным именем. Платный запрос. Каждый вызов — новая покупка.","operationId":"domainEmailOrderCustom","parameters":[{"name":"domain","in":"query","required":true,"schema":{"type":"string","title":"Domain"},"description":"Принимающий домен из available, без имени ящика."},{"name":"name","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":63,"title":"Name"},"description":"Часть до @: латинские буквы, цифры, ., _, +, -. Без .. и точек по краям."},{"name":"site","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":320},{"type":"null"}],"title":"Site"},"description":"Ключ сервиса вместо sender; нужно одно из site/sender. Разные значения одновременно запрещены."},{"name":"sender","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":320},{"type":"null"}],"title":"Sender"},"description":"Ключ сервиса (например text.ru) или точный адрес отправителя. Для чтения — from активации."},{"name":"label","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":120},{"type":"null"}],"title":"Label"},"description":"Необязательная подпись заказа."}],"responses":{"200":{"description":"ok — покупка успешна; order_id — ID заказа, передавайте как activation_id при чтении письма; email — купленный адрес. Статус получения письма смотрите в activations.","content":{"application/json":{"example":{"ok":true,"order_id":52,"email":"mylogin@example.com"}}}},"422":{"description":"Неверные параметры запроса","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"invalid_parameters"}}}},"401":{"description":"Неверный или отсутствующий пользовательский токен","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"unauthorized"}}}},"403":{"description":"Недостаточно прав или доступ к интеграции ограничен","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"access_denied"}}}},"402":{"description":"Недостаточный баланс","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"insufficient_balance"}}}},"404":{"description":"Ресурс не найден","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"not_found"}}}},"409":{"description":"Конфликт состояния; прочитайте detail","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"domain_unavailable"}}}},"429":{"description":"Лимит запросов; учитывайте Retry-After","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"rate_limited"}}}},"500":{"description":"Не удалось выполнить запрос","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"service_unavailable"}}}},"502":{"description":"Временная недоступность","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"service_unavailable"}}}},"503":{"description":"Временная недоступность","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"service_unavailable"}}}}},"tags":["Пользовательское API"]}},"/domain-email/reorder":{"get":{"summary":"Перезаказ","description":"Заказывает следующее письмо для последней активации со статусом 1 или -1. Может списать деньги. Повтор того же id возвращает тот же перезаказ.","operationId":"domainEmailReorder","parameters":[{"name":"id","in":"query","required":true,"schema":{"type":"integer","minimum":1,"title":"Id"},"description":"ID последней своей активации для перезаказа."}],"responses":{"200":{"description":"status — результат запроса; id — ID новой активации; email — адрес. Для чтения следующего письма используйте новый id как activation_id.","content":{"application/json":{"example":{"status":"success","id":"74","email":"box@example.com"}}}},"422":{"description":"Неверные параметры запроса","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"invalid_parameters"}}}},"401":{"description":"Неверный или отсутствующий пользовательский токен","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"unauthorized"}}}},"403":{"description":"Недостаточно прав или доступ к интеграции ограничен","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"access_denied"}}}},"402":{"description":"Недостаточный баланс","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"insufficient_balance"}}}},"404":{"description":"Ресурс не найден","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"not_found"}}}},"409":{"description":"Конфликт состояния; прочитайте detail","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"domain_unavailable"}}}},"429":{"description":"Лимит запросов; учитывайте Retry-After","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"rate_limited"}}}},"500":{"description":"Не удалось выполнить запрос","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"service_unavailable"}}}},"502":{"description":"Временная недоступность","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"service_unavailable"}}}},"503":{"description":"Временная недоступность","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"service_unavailable"}}}}},"tags":["Пользовательское API"]}},"/domain-email/routes":{"get":{"summary":"Мои назначения","operationId":"domainEmailRoutes","parameters":[],"responses":{"200":{"description":"items — ваши адреса; email — адрес; senders — сервисы; sender — сервис или точный отправитель; label — подпись. purchase — последняя покупка или null: activation_id — ID активации, price — цена, currency — валюта, purchased_at — дата покупки в UTC. История и статусы — в orders и activations.","content":{"application/json":{"example":{"items":[{"email":"box@example.com","senders":[{"sender":"text.ru","label":null,"purchase":{"activation_id":51,"price":"0.012","currency":"USD","purchased_at":"2026-11-01 12:00:00"}}]}]}}}},"422":{"description":"Неверные параметры запроса","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"invalid_parameters"}}}},"401":{"description":"Неверный или отсутствующий пользовательский токен","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"unauthorized"}}}},"403":{"description":"Недостаточно прав или доступ к интеграции ограничен","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"access_denied"}}}},"402":{"description":"Недостаточный баланс","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"insufficient_balance"}}}},"404":{"description":"Ресурс не найден","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"not_found"}}}},"409":{"description":"Конфликт состояния; прочитайте detail","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"domain_unavailable"}}}},"429":{"description":"Лимит запросов; учитывайте Retry-After","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"rate_limited"}}}},"500":{"description":"Не удалось выполнить запрос","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"service_unavailable"}}}},"502":{"description":"Временная недоступность","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"service_unavailable"}}}},"503":{"description":"Временная недоступность","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"service_unavailable"}}}}},"description":"Возвращает ваши адреса и сервисы.","tags":["Пользовательское API"]}},"/domain-email/orders":{"get":{"summary":"История покупок","description":"Возвращает историю покупок, цены и статусы.","operationId":"domainEmailOrders","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":50,"title":"Limit"},"description":"Размер страницы в пределах указанных ограничений."},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"},"description":"Номер страницы, начиная с 1."},{"name":"page_size","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":100,"minimum":1},{"type":"null"}],"title":"Page Size"},"description":"Альтернативный размер страницы; при передаче имеет приоритет над limit."},{"name":"before_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"title":"Before Id"},"description":"Курсор вместо постраничной навигации."}],"responses":{"200":{"description":"status в корне — результат запроса. data — список; activation_id — ID активации; user_id — ID пользователя; from — сервис; price — цена; email — адрес; created_at — Unix-секунды; ratio_withdrawal — коэффициент списания. status в строке: 0 — ожидание, 1 — письмо получено, -1 — отменено, ошибка или возврат. pages — число страниц; при before_id вместо pages возвращаются next_page и next_cursor.","content":{"application/json":{"example":{"status":"success","data":[{"activation_id":51,"user_id":3,"from":"text.ru","price":0.012,"email":"box@example.com","created_at":1793400000,"ratio_withdrawal":"0.00000","status":1}],"pages":1}}}},"422":{"description":"Неверные параметры запроса","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"invalid_parameters"}}}},"401":{"description":"Неверный или отсутствующий пользовательский токен","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"unauthorized"}}}},"403":{"description":"Недостаточно прав или доступ к интеграции ограничен","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"access_denied"}}}},"402":{"description":"Недостаточный баланс","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"insufficient_balance"}}}},"404":{"description":"Ресурс не найден","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"not_found"}}}},"409":{"description":"Конфликт состояния; прочитайте detail","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"domain_unavailable"}}}},"429":{"description":"Лимит запросов; учитывайте Retry-After","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"rate_limited"}}}},"500":{"description":"Не удалось выполнить запрос","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"service_unavailable"}}}},"502":{"description":"Временная недоступность","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"service_unavailable"}}}},"503":{"description":"Временная недоступность","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"service_unavailable"}}}}},"tags":["Пользовательское API"]}},"/domain-email/activations":{"get":{"summary":"Активации","description":"Возвращает ваши активации и статусы получения писем.","operationId":"domainEmailActivations","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":100,"title":"Limit"},"description":"Размер страницы в пределах указанных ограничений."},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"},"description":"Номер страницы, начиная с 1."},{"name":"page_size","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":100,"minimum":1},{"type":"null"}],"title":"Page Size"},"description":"Альтернативный размер страницы; при передаче имеет приоритет над limit."},{"name":"before_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"title":"Before Id"},"description":"Курсор вместо постраничной навигации."},{"name":"refresh","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Refresh"},"description":"true только для ручного обновления; по умолчанию false."}],"responses":{"200":{"description":"status в корне — результат запроса. data — список; activation_id — ID активации; user_id — ID пользователя; from — сервис; price — цена; email — адрес; created_at — Unix-секунды; ratio_withdrawal — коэффициент списания. status в строке: 0 — ожидание, 1 — письмо получено, -1 — отменено, ошибка или возврат. pages — число страниц; при before_id вместо pages возвращаются next_page и next_cursor.","content":{"application/json":{"example":{"status":"success","data":[{"activation_id":51,"user_id":3,"from":"text.ru","price":0.012,"email":"box@example.com","created_at":1793400000,"ratio_withdrawal":"0.00000","status":1}],"pages":1}}}},"422":{"description":"Неверные параметры запроса","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"invalid_parameters"}}}},"401":{"description":"Неверный или отсутствующий пользовательский токен","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"unauthorized"}}}},"403":{"description":"Недостаточно прав или доступ к интеграции ограничен","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"access_denied"}}}},"402":{"description":"Недостаточный баланс","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"insufficient_balance"}}}},"404":{"description":"Ресурс не найден","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"not_found"}}}},"409":{"description":"Конфликт состояния; прочитайте detail","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"domain_unavailable"}}}},"429":{"description":"Лимит запросов; учитывайте Retry-After","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"rate_limited"}}}},"500":{"description":"Не удалось выполнить запрос","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"service_unavailable"}}}},"502":{"description":"Временная недоступность","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"service_unavailable"}}}},"503":{"description":"Временная недоступность","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"service_unavailable"}}}}},"tags":["Пользовательское API"]}},"/domain-email/messages":{"get":{"summary":"Список писем активации","operationId":"domainEmailMessages","parameters":[{"name":"email","in":"query","required":true,"schema":{"type":"string","title":"Email"},"description":"Адрес из своей активации."},{"name":"sender","in":"query","required":true,"schema":{"type":"string","title":"Sender"},"description":"Ключ сервиса (например text.ru) или точный адрес отправителя. Для чтения — from активации."},{"name":"activation_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"title":"Activation Id"},"description":"ID своей активации. Всегда передавайте в новых интеграциях; без него выбирается последняя."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"},"description":"Размер страницы в пределах указанных ограничений."},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"},"description":"Смещение списка, начиная с 0."}],"responses":{"200":{"description":"items — список писем; total — количество; uid — ID письма, передавайте строкой без изменений; from — отправитель; subject — тема. Если возвращён content_status: available — содержимое доступно, expired — недоступно; available_until — срок доступности в Unix-секундах.","content":{"application/json":{"example":{"items":[{"uid":"a123","from":"Text.ru <no-reply@text.ru>","subject":"Код подтверждения"}],"total":1}}}},"422":{"description":"Неверные параметры запроса","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"invalid_parameters"}}}},"401":{"description":"Неверный или отсутствующий пользовательский токен","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"unauthorized"}}}},"403":{"description":"Недостаточно прав или доступ к интеграции ограничен","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"access_denied"}}}},"402":{"description":"Недостаточный баланс","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"insufficient_balance"}}}},"404":{"description":"Ресурс не найден","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"not_found"}}}},"409":{"description":"Конфликт состояния; прочитайте detail","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"domain_unavailable"}}}},"429":{"description":"Лимит запросов; учитывайте Retry-After","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"rate_limited"}}}},"500":{"description":"Не удалось выполнить запрос","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"service_unavailable"}}}},"502":{"description":"Временная недоступность","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"service_unavailable"}}}},"503":{"description":"Временная недоступность","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"service_unavailable"}}}}},"description":"Возвращает список доступных писем указанной активации.","tags":["Пользовательское API"]}},"/domain-email/message":{"get":{"summary":"Прочитать письмо","operationId":"domainEmailMessage","parameters":[{"name":"email","in":"query","required":true,"schema":{"type":"string","title":"Email"},"description":"Адрес из своей активации."},{"name":"sender","in":"query","required":true,"schema":{"type":"string","title":"Sender"},"description":"Ключ сервиса (например text.ru) или точный адрес отправителя. Для чтения — from активации."},{"name":"uid","in":"query","required":true,"schema":{"type":"string","title":"Uid"},"description":"Строка из messages, в том числе a123. Не преобразовывайте в число."},{"name":"activation_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"title":"Activation Id"},"description":"ID своей активации. Всегда передавайте в новых интеграциях; без него выбирается последняя."}],"responses":{"200":{"description":"uid — ID письма; headers — отправитель, получатель, тема и дата; body — содержимое; content_type — формат body; text_body/plain_body — текст; html_body — HTML; has_html — есть ли HTML; remote_content_blocked — внешние изображения заблокированы. available_until, если есть, — срок доступности в Unix-секундах. HTML отображайте в sandbox iframe без скриптов, текст — через textContent.","content":{"application/json":{"example":{"uid":"a123","headers":{"from":"Text.ru <no-reply@text.ru>","to":"box@example.com","subject":"Код подтверждения","date":"Sun, 01 Nov 2026 12:00:00 +0000"},"body":"Код подтверждения: 123456","content_type":"text/plain","text_body":"Код подтверждения: 123456","plain_body":"Код подтверждения: 123456","html_body":"","has_html":false,"remote_content_blocked":false}}}},"422":{"description":"Неверные параметры запроса","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"invalid_parameters"}}}},"401":{"description":"Неверный или отсутствующий пользовательский токен","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"unauthorized"}}}},"403":{"description":"Недостаточно прав или доступ к интеграции ограничен","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"access_denied"}}}},"402":{"description":"Недостаточный баланс","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"insufficient_balance"}}}},"404":{"description":"Ресурс не найден","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"not_found"}}}},"409":{"description":"Конфликт состояния; прочитайте detail","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"domain_unavailable"}}}},"429":{"description":"Лимит запросов; учитывайте Retry-After","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"rate_limited"}}}},"500":{"description":"Не удалось выполнить запрос","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"service_unavailable"}}}},"502":{"description":"Временная недоступность","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"service_unavailable"}}}},"503":{"description":"Временная недоступность","content":{"application/json":{"schema":{"type":"object","required":["detail"],"additionalProperties":false,"properties":{"detail":{"type":"string"}}},"example":{"detail":"service_unavailable"}}}},"410":{"description":"message_expired: тело очищено, история сохраняется"}},"description":"Возвращает содержимое письма по uid из messages.","tags":["Пользовательское API"]}}},"components":{"schemas":{"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}},"securitySchemes":{"UserToken":{"type":"apiKey","in":"query","name":"token"},"UserBearer":{"type":"http","scheme":"bearer"}}},"servers":[{"url":"/"}],"security":[{"UserToken":[]},{"UserBearer":[]}]}