Управление миграциями почты через API
Управляйте миграциями почты через TrekMail API: проверяйте подключения, запускайте импорт, следите за ходом, отменяйте, повторяйте и удаляйте задания.
Сведения о статье
Тип, сложность, тарифы и дата последнего обновления.
▼
Сведения о статье
Тип, сложность, тарифы и дата последнего обновления.
- Тип
- Справочная статья
- Сложность
- Средний уровень
- Тарифы
- Starter · Pro · Agency
- Обновлено
- 9 сен 2026 г.
API миграций позволяет интеграции или агенту импортировать почту от любого поставщика IMAP в ящик TrekMail. Вы можете проверять подключения, запускать импорт, отслеживать ход обработки каждой папки, отменять выполняемые задания, повторять завершившиеся с ошибкой операции и удалять старые записи.
Перед началом
- Требуется тариф Starter или выше. Тариф Nano не включает инструмент миграции.
- На тарифах Pro и Agency миграции можно запускать, отменять, повторять и удалять через API (
migrations:read+migrations:write). На тарифе Starter можно читать данные миграций через API и запускать новые миграции из панели управления. - Одновременно для аккаунта может выполняться только одна миграция. Запускайте новую после завершения текущей или сначала отмените текущую.
Области
| Область | Что позволяет | Тарифы |
|---|---|---|
migrations:read |
Получать список миграций и просматривать сведения о миграции | Starter · Pro · Agency |
migrations:write |
Проверять подключения, запускать, отменять, повторять и удалять миграции | Pro · Agency |
Конечные точки
Проверка подключения
POST /api/v1/migrations/test-connection
Scope: migrations:write
Проверяет учётные данные IMAP и возвращает список исходных папок с количеством сообщений. Используйте эту конечную точку перед запуском миграции, чтобы проверить подключение и позволить пользователю выбрать папки для импорта.
Тело запроса:
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
source_host |
string | Да | Имя хоста сервера IMAP (например, imap.gmail.com) |
source_port |
integer | Да | Порт IMAP (обычно 993 для SSL) |
source_security |
string | Да | ssl, tls или none |
source_email |
string | Да | Адрес электронной почты на исходном сервере |
source_username |
string | Нет | Имя пользователя, если оно отличается от адреса электронной почты |
source_password |
string | Да | Пароль или пароль приложения |
Ответ (успех):
{
"success": true,
"folders": {
"INBOX": 1234,
"Sent": 567,
"Drafts": 12,
"Work": 89
}
}
Ответ (ошибка): 422 с кодом ошибки connection_failed.
Список миграций
GET /api/v1/migrations
Scope: migrations:read
Возвращает постраничный список заданий миграции для вашего аккаунта.
Параметры запроса:
| Параметр | Тип | Описание |
|---|---|---|
status |
string | Фильтр по состоянию (pending, validating, planning, processing, completed, failed, cancelled) |
mailbox_id |
integer | Фильтр по целевому ящику |
per_page |
integer | Количество результатов на странице (по умолчанию: 20, максимум: 100) |
Получение миграции
GET /api/v1/migrations/{id}
Scope: migrations:read
Возвращает подробное состояние миграции, включая ход обработки каждой папки.
Ответ:
{
"data": {
"id": 5,
"mailbox_id": 10,
"mailbox_email": "support@acme.com",
"provider": "gmail",
"source_host": "imap.gmail.com",
"source_email": "j***e@gmail.com",
"status": "processing",
"progress": 45,
"total_messages": 1234,
"imported_messages": 556,
"failed_messages": 2,
"skipped_duplicates": 12,
"selected_folders": ["INBOX", "Sent"],
"import_since": "2025-01-01",
"skip_duplicates": true,
"folders": [
{ "name": "INBOX", "status": "processing", "expected": 1000, "imported": 450, "failed": 2, "skipped": 10 },
{ "name": "Sent", "status": "pending", "expected": 234, "imported": 0, "failed": 0, "skipped": 0 }
],
"error_message": null,
"poll_hint_seconds": 10,
"started_at": "2026-03-13T10:00:00+00:00",
"finished_at": null,
"created_at": "2026-03-13T09:59:50+00:00"
}
}
poll_hint_seconds указывает частоту проверки обновлений: 5 секунд в состояниях pending/validating/planning, 10 секунд в состоянии processing, null в конечных состояниях.
source_email маскируется в целях безопасности (например, j***e@gmail.com).
Запуск миграции
POST /api/v1/migrations
Scope: migrations:write
Запускает новую миграцию почты. Одновременно для аккаунта может выполняться только одна миграция.
Тело запроса:
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
mailbox_id |
integer | Да | Идентификатор целевого ящика TrekMail |
provider |
string | Да | gmail, outlook, yahoo, icloud или generic_imap |
source_host |
string | Да | Имя хоста сервера IMAP |
source_port |
integer | Да | Порт IMAP |
source_security |
string | Да | ssl, tls или none |
source_email |
string | Да | Исходный адрес электронной почты |
source_username |
string | Нет | Имя пользователя, если оно отличается от адреса электронной почты |
source_password |
string | Да | Исходный пароль или пароль приложения |
selected_folders |
string[] | Нет | Отдельные папки для импорта (по умолчанию: все) |
import_since |
date | Нет | Импортировать только письма после этой даты |
skip_duplicates |
boolean | Нет | Пропускать дубликаты сообщений (по умолчанию: true) |
Ответ: 201 с ресурсом задания миграции.
Ответы с ошибками:
| Состояние | Код | Значение |
|---|---|---|
409 |
conflict | В этом аккаунте уже выполняется активная миграция |
503 |
migration_capacity_reached |
Достигнут общий для сервера лимит миграций (можно повторить запрос) |
422 |
validation_error | Недопустимые параметры или ящик не найден |
Отмена миграции
POST /api/v1/migrations/{id}:cancel
Scope: migrations:write
Отменяет выполняемую миграцию. Миграция должна находиться в активном состоянии (pending, validating, planning или processing).
Повтор миграции
POST /api/v1/migrations/{id}:retry
Scope: migrations:write
Повторяет миграцию в состоянии failed или cancelled. Сбрасывает ход выполнения до 0 и заново запускает конвейер проверки.
Возвращает 409, если в аккаунте уже выполняется другая миграция.
Частичные миграции
TrekMail может попытаться продолжить частично завершённую миграцию, когда это безопасно. Перед выполнением действий проверьте состояние миграции. Если она больше не продвигается, проверьте учётные данные и лимиты исходного аккаунта, а затем используйте конечную точку повтора или действие Продолжить в панели управления. Не считайте, что частичный импорт завершится, не проверив его итоговое состояние.
Удаление миграции
DELETE /api/v1/migrations/{id}
Scope: migrations:write
Удаляет запись миграции. Миграция не должна выполняться (сначала отмените её).
При успехе возвращает 204 No Content.
Ограничения частоты запросов
Для операций записи миграций действует отдельное ограничение частоты: 10 запросов в минуту на токен, независимо от стандартного ограничения частоты API.
Кроме того, сервер применяет глобальное ограничение параллельного выполнения (по умолчанию: 20 одновременных миграций). При достижении лимита новые запросы миграции возвращают 503 с migration_capacity_reached и retryable: true. Подождите несколько минут и повторите попытку.
События аудита
Все действия API миграций записываются в журнал аудита:
- migration_started: запущена новая миграция
- migration_cancelled: выполняемая миграция отменена
- migration_retried: повторно запущена миграция с ошибкой или отменённая миграция
- migration_deleted: запись миграции удалена
Инструменты MCP
Те же возможности миграции доступны через сервер MCP, включая проверку, получение списка, запуск, отмену, повтор, возобновление, обновление пароля и удаление отдельных и массовых миграций. Администратор локально размещённого MCP может требовать явного подтверждения операций записи миграций. Подробнее см. в статье Подключение агентов ИИ (MCP).
API массовой миграции
API массовой миграции позволяет одновременно переносить множество аккаунтов с помощью полезной нагрузки данных в стиле CSV. Руководство для пользователей приведено в статье Массовая миграция почты, а формат данных описан в статье Формат CSV для массовой миграции.
Конечные точки
| Метод | Конечная точка | Область | Описание |
|---|---|---|---|
| POST | /api/v1/migrations/bulk/preview |
migrations:write |
Предварительный просмотр и проверка данных CSV |
| POST | /api/v1/migrations/bulk |
migrations:write |
Запуск пакета массовой миграции |
| GET | /api/v1/migrations/bulk |
migrations:read |
Получение списка пакетов массовой миграции |
| GET | /api/v1/migrations/bulk/{id} |
migrations:read |
Получение сведений о пакете с состоянием каждого задания |
| POST | /api/v1/migrations/bulk/{id}:cancel |
migrations:write |
Отмена всего пакета |
| POST | /api/v1/migrations/bulk/{id}:retry |
migrations:write |
Повтор заданий пакета, завершившихся с ошибкой |
| POST | /api/v1/migrations/bulk/{id}:resume |
migrations:write |
Возобновление приостановленного пакета |
| DELETE | /api/v1/migrations/bulk/{id} |
migrations:write |
Удаление записи пакета |
| PATCH | /api/v1/migrations/bulk/{id}/jobs/{job}/password |
migrations:write |
Обновление исходного пароля для задания с ошибкой |
Запрос предварительного просмотра
POST /api/v1/migrations/bulk/preview
Scope: migrations:write
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
data |
string | Да | Данные CSV (одна запись в строке) |
provider |
string | Нет | gmail, outlook, yahoo, icloud, generic_imap |
source_host |
string | Нет | Хост IMAP (если поставщик generic_imap) |
source_port |
integer | Нет | Порт IMAP (по умолчанию 993) |
source_security |
string | Нет | ssl, tls, none |
per_row_server |
boolean | Нет | Каждая строка содержит собственные настройки сервера (формат с 6 столбцами) |
Ответ содержит строки по категориям (valid, invalid_source_email, invalid_destination и т. д.), ограничения тарифа, оценку времени и сведения о хранилище.
Запрос запуска пакета
POST /api/v1/migrations/bulk
Scope: migrations:write
Те же поля, что в предварительном просмотре, а также:
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
name |
string | Нет | Имя пакета (создаётся автоматически, если не задано) |
folder_strategy |
string | Нет | all, standard, inbox_only (по умолчанию: all) |
import_since |
string | Нет | Фильтр по дате (YYYY-MM-DD) |
skip_duplicates |
boolean | Нет | Пропускать дубликаты сообщений (по умолчанию: true) |
idempotency_key |
string | Нет | Предоставленный клиентом ключ идемпотентности |
Ограничения параллельного выполнения
| Тариф | Максимальное число строк в пакете | Одновременно для аккаунта |
|---|---|---|
| Starter | 100 | 2 |
| Pro | 300 | 5 |
| Agency | 1,000 | 10 |
Глобальное ограничение сервера (20 одновременных миграций) совместно используется одиночными и массовыми миграциями.
Инструменты MCP
Инструменты MCP для массовой миграции: preview_bulk_migration, start_bulk_migration, list_bulk_migrations, get_bulk_migration, cancel_bulk_migration, retry_bulk_migration, resume_bulk_migration, delete_bulk_migration и update_bulk_migration_job_password. Администратор локально размещённого MCP может требовать явного подтверждения действий записи.
Быстрые решения
- 403 "insufficient_scope": токену требуется
migrations:readилиmigrations:write. Создайте новый токен с нужными областями. - 403 "token_scope_blocked_by_plan": области миграции требуют платного тарифа (Starter или выше).
- 409 "active migration running": отмените существующую миграцию или дождитесь её завершения.
- 503 "migration_capacity_reached": сервер достиг предельной нагрузки. Повторите попытку через несколько минут.
- 422 при test-connection: проверьте учётные данные IMAP, имя хоста, порт и настройку безопасности.
Связанные статьи
Похожие статьи
Перейдите к близким руководствам, которые продолжают рабочий процесс.