litemail.one
К содержимому
ДОКУМЕНТАЦИЯ · API V1

Ваша почта.
В вашем приложении.

Получайте письма, ищите сообщения по отправителю и теме, фильтруйте непрочитанные письма и управляйте доступом к конкретным почтовым ящикам через простой HTTP API.

Base URL https://litemail.one/api/v1

Проверить API

Вставьте токен и выполните запрос прямо здесь. Консоль выполняет только чтение; токен остаётся в памяти этой страницы и передаётся серверу LiteMail в заголовке Authorization.

Токен можно получить в личном кабинете. Для MT указывать ящик не требуется.

Здесь появится JSON ответа.
Список и чтение через GET не отмечают письма прочитанными. Не запускайте частый опрос: учитывайте лимиты и Retry-After. Отправка, удаление, смена пароля и выпуск токенов доступны только из вашего приложения, не из этой консоли.

Быстрый старт

Выполнить первый запрос

LiteMail API использует Bearer Token авторизацию. Токен передаётся в HTTP-заголовке Authorization.

1
Получите токен Возьмите API-токен в личном кабинете LiteMail.
2
Укажите mailbox Для LM-токена используйте email или числовой ID ящика.
3
Добавьте фильтр Например sender=discord или unread=true.
4
Получите JSON API возвращает структурированные данные письма.
curl "https://litemail.one/api/v1/mailboxes/test123@litemail.one/messages/latest" \
  -H "Authorization: Bearer lm_YOUR_API_TOKEN"

Авторизация

API поддерживает два типа токенов. Они предназначены для разных сценариев использования.

Пользовательский токен
lm_...

Доступ к API пользователя и его собственным почтовым ящикам.

Токен конкретной почты
mt_...

Доступ только к одному конкретному mailbox.

Заголовок запроса

Authorization: Bearer YOUR_TOKEN
Не передавайте API-токен в URL, query-параметрах или в теле запроса. Используйте только заголовок Authorization.

LM API — пользовательский токен

В маршрутах /mailboxes/{mailbox_id} принимается числовой ID или email своего ящика. UID письма — отдельный ID из ответа messages. Получение писем использует BODY.PEEK и не меняет отметку прочтения.

Токен lm_... принадлежит аккаунту LiteMail. Он позволяет обращаться к почтовым ящикам этого пользователя.

GET
/api/v1/me

Возвращает информацию о пользователе и количество его почтовых ящиков.

curl "https://litemail.one/api/v1/me" \
  -H "Authorization: Bearer lm_YOUR_API_TOKEN"
{
  "id": 123,
  "username": "testuser",
  "balance": 250.0,
  "mailbox_count": 5
}
GET
/api/v1/mailboxes

Возвращает список почтовых ящиков, принадлежащих пользователю.

curl "https://litemail.one/api/v1/mailboxes" \
  -H "Authorization: Bearer lm_YOUR_API_TOKEN"
GET
/api/v1/mailboxes/{email}

Получает информацию о конкретном почтовом ящике по его email.

curl "https://litemail.one/api/v1/mailboxes/test123@litemail.one" \
  -H "Authorization: Bearer lm_YOUR_API_TOKEN"

MT API — конкретная почта

Токен mt_... привязан к одному почтовому ящику. При его использовании указывать email почты уже не требуется: mailbox определяется сервером из самого токена.

Такой токен подходит для передачи доступа к одной конкретной почте без предоставления доступа к остальным ящикам аккаунта.
GET
/api/v1/mail/me

Показывает, к какой почте относится mt-токен.

curl "https://litemail.one/api/v1/mail/me" \
  -H "Authorization: Bearer mt_YOUR_TOKEN"
GET
/api/v1/mail/messages/latest

Возвращает последнее письмо конкретного mailbox.

curl "https://litemail.one/api/v1/mail/messages/latest" \
  -H "Authorization: Bearer mt_YOUR_TOKEN"
GET
/api/v1/mail/messages

Возвращает список сообщений конкретного mailbox.

curl "https://litemail.one/api/v1/mail/messages?limit=10" \
  -H "Authorization: Bearer mt_YOUR_TOKEN"
GET
/api/v1/mail/messages/{message_id}

Возвращает полное содержимое конкретного письма.

Получение писем

Для пользовательского lm_-токена используется email почтового ящика непосредственно в URL.

GET
/api/v1/mailboxes/{email}/messages/latest

Получает самое последнее письмо.

curl "https://litemail.one/api/v1/mailboxes/test123@litemail.one/messages/latest" \
  -H "Authorization: Bearer lm_YOUR_API_TOKEN"

Только последнее непрочитанное

curl "https://litemail.one/api/v1/mailboxes/test123@litemail.one/messages/latest?unread=true" \
  -H "Authorization: Bearer lm_YOUR_API_TOKEN"
GET
/api/v1/mailboxes/{mailbox_id}/messages

Возвращает список писем с поддержкой фильтров и пагинации.

curl "https://litemail.one/api/v1/mailboxes/15/messages?limit=10&offset=0" \
  -H "Authorization: Bearer lm_YOUR_API_TOKEN"
И список сообщений, и latest принимают email или числовой ID ящика. Значение mailbox_id можно получить из /mailboxes.

Фильтры

Endpoint списка сообщений поддерживает несколько фильтров. Их можно комбинировать.

Параметр Тип Описание Пример
sender string Поиск по отправителю. sender=discord
recipient string Поиск по получателю. recipient=test123@litemail.one
subject string Поиск по теме письма. subject=verification
search string Полнотекстовый поиск. search=123456
unread boolean true — непрочитанные, false — прочитанные; без параметра — все. unread=true
limit integer Количество сообщений в ответе. Максимум 100. limit=10
offset integer Смещение для пагинации. offset=20

Пример: найти письма от Discord

curl "https://litemail.one/api/v1/mailboxes/test123@litemail.one/messages?sender=discord" \
  -H "Authorization: Bearer lm_YOUR_API_TOKEN"

Пример: Discord + verification + unread

curl "https://litemail.one/api/v1/mailboxes/test123@litemail.one/messages?sender=discord&subject=verification&unread=true&limit=10" \
  -H "Authorization: Bearer lm_YOUR_API_TOKEN"
Параметры фильтров работают как совместные условия. Например, sender=discord&unread=true ищет непрочитанные письма от Discord.
date_from и date_to в текущей версии API пока не поддерживаются.

Read / Unread

POST
/api/v1/mailboxes/{mailbox_id}/messages/{message_id}/read

Помечает сообщение прочитанным.

curl -X POST \
  "https://litemail.one/api/v1/mailboxes/15/messages/482/read" \
  -H "Authorization: Bearer lm_YOUR_API_TOKEN"
POST
/api/v1/mailboxes/{mailbox_id}/messages/{message_id}/unread

Возвращает сообщению статус непрочитанного.

curl -X POST \
  "https://litemail.one/api/v1/mailboxes/15/messages/482/unread" \
  -H "Authorization: Bearer lm_YOUR_API_TOKEN"

Удаление письма

DELETE
/api/v1/mailboxes/{mailbox_id}/messages/{message_id}

Удаляет конкретное сообщение.

curl -X DELETE \
  "https://litemail.one/api/v1/mailboxes/15/messages/482" \
  -H "Authorization: Bearer lm_YOUR_API_TOKEN"

Отправка писем

Отправитель определяется сервером из выбранного mailbox. Поле From нельзя подменить через API.

POST
/api/v1/mailboxes/{mailbox_id}/send

Отправляет письмо через SMTP submission.

JSON body

{
  "to": [
    "example@gmail.com"
  ],
  "subject": "Тестовое письмо",
  "text": "Привет! Это письмо отправлено через LiteMail API.",
  "html": "<p>Привет!</p>"
}

cURL

curl -X POST \
  "https://litemail.one/api/v1/mailboxes/15/send" \
  -H "Authorization: Bearer lm_YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "to": ["example@gmail.com"],
    "subject": "Тестовое письмо",
    "text": "Привет из LiteMail API"
  }'

Поддерживаются

Поле Тип Обязательно
to array[string] Да
cc array[string] Нет
bcc array[string] Нет
subject string Да
text string Нет*
html string Нет*
reply_to string Нет
* Должно быть указано хотя бы одно из полей text или html.

Смена пароля mailbox

POST
/api/v1/mailboxes/{mailbox_id}/password

Меняет пароль конкретного почтового ящика.

curl -X POST \
  "https://litemail.one/api/v1/mailboxes/15/password" \
  -H "Authorization: Bearer lm_YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "new_password": "NewPassword123!"
  }'
После смены пароля старые SMTP/IMAP-сессии могут потребовать повторной авторизации.

MT-токены

Владелец аккаунта может выпустить отдельный токен для конкретной почты. Старый активный mt-токен этого mailbox при этом отзывается.

POST
/api/v1/mailboxes/{email}/token

Создаёт новый mt-токен для почтового ящика. Требует lm-токен владельца.

curl -X POST \
  "https://litemail.one/api/v1/mailboxes/test123@litemail.one/token" \
  -H "Authorization: Bearer lm_YOUR_API_TOKEN"
{
  "status": "ok",
  "mailbox_id": 15,
  "email": "test123@litemail.one",
  "token": "mt_xxxxxxxxxxxxxxxxxxxxxxxxx",
  "token_type": "Bearer"
}
Полный mt-токен показывается при создании. Сервер хранит его хеш, поэтому получить этот же токен повторно невозможно.
DELETE
/api/v1/mailboxes/{email}/token

Отзывает активный mt-токен mailbox.

curl -X DELETE \
  "https://litemail.one/api/v1/mailboxes/test123@litemail.one/token" \
  -H "Authorization: Bearer lm_YOUR_API_TOKEN"

Лимиты и защита

LiteMail API имеет встроенную защиту от большого количества запросов и перебора токенов.

Ограничение Значение
Общий лимит на IP 120 req/min
Общий лимит на токен 60 req/min
Mailbox + IP 100 req/min
/messages 30 req/min
/messages/latest 60 req/min
Один IP одновременно 10 requests
Один token одновременно 3 requests
Максимальный limit 100
Максимальный request body 2 MB

HTTP 429

Если лимит превышен, API возвращает 429 Too Many Requests и заголовок Retry-After.

{
  "code": "RATE_LIMITED",
  "message": "Слишком много запросов",
  "retry_after": 12
}

Защита от перебора

Серия неверных API-токенов с одного IP приводит к временной блокировке этого IP. Это относится как к lm_, так и к mt_ авторизации.

Ошибки API

Ошибки обработанных маршрутов возвращают code и message; поле detail сохранено для совместимости. HTTP 422 означает ошибку полей запроса. X-Request-ID можно передать поддержке, Server-Timing показывает время обработки приложения. Для 429 соблюдайте Retry-After; POST/DELETE автоматически не повторяйте.

Поиск поддерживает пробелы, кавычки и кириллицу. unread=true выбирает непрочитанные, unread=false — прочитанные; без unread возвращаются все. Фильтры объединяются условием И. Нет результатов: HTTP 200 и пустой массив; сбой поиска: HTTP 503, а не пустой результат.
HTTP Code Описание
401 UNAUTHORIZED Не передан токен.
401 INVALID_TOKEN Токен неправильный, отозван или истёк.
404 MAILBOX_NOT_FOUND Mailbox не найден или недоступен текущему владельцу.
404 MESSAGE_NOT_FOUND Письмо не найдено.
410 MAILBOX_EXPIRED Срок действия почты закончился.
413 REQUEST_TOO_LARGE Размер запроса превышает лимит.
429 RATE_LIMITED Превышен rate limit.
503 IMAP_UNAVAILABLE Почтовый сервер временно недоступен.
503 SMTP_SEND_FAILED Не удалось отправить письмо.

Пример обработки ошибки

{
  "detail": {
    "code": "INVALID_TOKEN",
    "message": "Неверный API-токен"
  }
}

Пример на Python

Простейший вариант получения последнего письма по email:

import requests

API = "https://litemail.one/api/v1"

TOKEN = "lm_YOUR_API_TOKEN"
EMAIL = "test123@litemail.one"

response = requests.get(
    f"{API}/mailboxes/{EMAIL}/messages/latest",
    headers={
        "Authorization": f"Bearer {TOKEN}"
    },
    timeout=20
)

response.raise_for_status()

data = response.json()

message = data.get("message")

if message:
    print("От:", message["from"])
    print("Тема:", message["subject"])
    print("Дата:", message["date"])
    print("Текст:")
    print(message["text"])
else:
    print("Писем нет")

Поиск по критериям

import requests

API = "https://litemail.one/api/v1"

TOKEN = "lm_YOUR_API_TOKEN"
EMAIL = "test123@litemail.one"

response = requests.get(
    f"{API}/mailboxes/{EMAIL}/messages",
    headers={
        "Authorization": f"Bearer {TOKEN}"
    },
    params={
        "sender": "discord",
        "subject": "verification",
        "unread": True,
        "limit": 10
    },
    timeout=20
)

response.raise_for_status()

data = response.json()

for message in data["messages"]:
    print(
        message["date"],
        message["from"],
        message["subject"]
    )

Безопасность

Хранение токена

mt-токены хранятся в базе в виде SHA-256 хеша. Сам секрет выдаётся только в момент создания.

Авторизация mailbox

mt-токен связан с одним mailbox и не предоставляет доступ к другим почтам.

HTTPS

Используйте только HTTPS endpoint LiteMail. Не передавайте токены по обычному HTTP.

Пароль

Для API-запросов пароль почтового ящика не требуется. Используется Bearer Token.

Никому не передавайте lm_-токен, если нужен доступ только к одной почте. Для такого сценария используйте отдельный mt_-токен.

Нужна помощь с интеграцией?

Опишите запрос и ошибку в поддержке. Не отправляйте действующие токены.

Поддержка