Table of Contents
This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
API
Все endpoints начинаются с /api/. Авторизация через cookie z51_token (кроме /api/auth/*).
Авторизация
| Метод | URL | Body | Описание |
|---|---|---|---|
| POST | /api/auth/login |
{login, password} |
Логин, возвращает user object, ставит cookie |
| POST | /api/auth/logout |
— | Выход, удаляет cookie |
| GET | /api/auth/me |
— | Текущий пользователь {id, login, name, role, projects, theme} |
| PUT | /api/auth/preferences |
{theme} |
Сохранить настройки пользователя |
Проекты
| Метод | URL | Body | Описание |
|---|---|---|---|
| GET | /api/projects |
— | Список проектов (фильтруется по user.projects) |
| POST | /api/projects |
{name} |
Создать проект |
| GET | /api/project/:name |
— | Все данные: meta, settings, draft, presets, letters, notes, blockText |
| PUT | /api/project/:name/block |
{blockText, sourceName} |
Сохранить block.pug |
| PUT | /api/project/:name/settings |
{...settings} |
Сохранить настройки проекта |
| PUT | /api/project/:name/draft |
[...blocks] |
Сохранить черновик |
| PUT | /api/project/:name/presets |
[...presets] |
Сохранить пресеты |
Письма
| Метод | URL | Body | Описание |
|---|---|---|---|
| GET | /api/project/:name/letters |
— | Индекс писем {list, currentId} |
| PUT | /api/project/:name/letters |
{list, currentId} |
Обновить индекс |
| GET | /api/project/:name/letter/:id |
— | Данные письма |
| PUT | /api/project/:name/letter |
{id, blocks, ...} |
Сохранить (сервер добавляет createdBy/updatedBy) |
| DELETE | /api/project/:name/letter/:id |
— | Удалить письмо |
| GET | /api/project/:name/letter/:id/history |
— | История изменений |
| PUT | /api/project/:name/letter/:id/history |
{snapshot} |
Добавить в историю |
Заметки
| Метод | URL | Body | Описание |
|---|---|---|---|
| GET/PUT | /api/project/:name/notes |
{list, currentId} |
Индекс заметок |
| GET | /api/project/:name/note/:id |
— | Данные заметки |
| PUT | /api/project/:name/note |
{id, content, ...} |
Сохранить |
| DELETE | /api/project/:name/note/:id |
— | Удалить |
Рендер
| Метод | URL | Body | Описание |
|---|---|---|---|
| POST | /api/project/:name/render-email |
{pugCode, layout} |
Рендер Pug→HTML. Обрабатывает Mindbox/RetailCRM теги для превью |
Фиды и товары
| Метод | URL | Body | Описание |
|---|---|---|---|
| POST | /api/project/:name/feed-refresh |
— | Сбросить кэш фида, вернуть diff |
| POST | /api/project/:name/feed-lookup |
{ids} |
Поиск товаров по массиву ID |
| POST | /api/project/:name/feed-suggest |
{productId, excludeIds, search} |
Подбор замены (по серии, стране, цене) |
| POST | /api/project/:name/auto-assemble |
{type, layout, productType, priceMin, priceMax, excludeMaterials, excludeIds, anchorIds} |
Авто-подбор. Возвращает {blocks, total} с usedDaysAgo для каждого товара |
FTP / Картинки
| Метод | URL | Body | Описание |
|---|---|---|---|
| POST | /api/project/:name/ftp/test |
— | Проверить подключение (FTP или локальное) |
| POST | /api/project/:name/ftp/upload |
{imageData, fileName, folder} |
Загрузить (base64). Max 30 MB |
| POST | /api/project/:name/ftp/list |
{folder} |
Список файлов в папке |
Прочее
| Метод | URL | Описание |
|---|---|---|
| POST | /api/upload-image |
Локальная загрузка (fallback без FTP) |
| POST | /api/check-links |
Проверка массива URL на доступность |
| GET/PUT | /api/config |
Google Sheets конфиг |
| GET | /api/stats |
Статистика по всем проектам |
Админ (role: admin)
| Метод | URL | Описание |
|---|---|---|
| GET | /api/admin/users |
Список пользователей |
| POST | /api/admin/users |
Создать {login, password, name, role, projects} |
| PUT | /api/admin/users/:id |
Обновить |
| DELETE | /api/admin/users/:id |
Удалить (нельзя удалить себя) |
| GET | /api/admin/logs?user=&project=&action=&from=&to=&page=&limit= |
Аудит-логи |