Базовые правила для всех публичных методов: как обращаться к платформе, как передавать ключи и токены, как читать ответы. Прочитайте этот раздел перед интеграцией.
https://<host>/
Все пути ниже — относительно base URL. В prod используется только HTTPS.
/api/v1/…/api/module/имя_расширения/…| Метод | Заголовок | Применение |
|---|---|---|
| токен доступа (JWT) | Authorization: Bearer <access_token> | Public Auth, Files API (access token, audience public для auth routes) |
| API Key | X-API-Key: <key> | Mail, Database, Files (service integration) |
| None | — | Register/login, plugin routes (policy-based), OpenAPI |
API-ключи создаются в админ-панели: Настройки → API-ключи. Каждому ключу назначаются разрешения:
| Permission | Доступ |
|---|---|
mail:send, mail:* | Mail Service |
db:query, db:* | Database Service |
files:upload, files:download, files:* | Files Service |
/api/v1/auth/*)Успех:
{
"success": true,
"data": { }
}
Ошибка:
{
"success": false,
"error": {
"code": "invalid_credentials",
"message": "Human-readable message",
"retry_after": 60
}
}
Используется при отправке почты и в методах некоторых расширений.
Успех:
{
"success": true,
"data": { },
"meta": { "trace_id": "...", "execution_ms": 12.3 },
"errors": []
}
Ошибка:
{
"success": false,
"data": {},
"meta": {},
"errors": [{ "code": "validation_error", "message": "...", "details": {} }]
}
/api/v1/db/*, Files)Успех:
{ "success": true, ...payload fields... }
Ошибка:
{ "success": false, "error": "message string" }
| Код | Значение |
|---|---|
| 200 | Успех |
| 201 | Ресурс создан (register) |
| 202 | Принято в очередь (async mail) |
| 400 | Ошибка валидации / бизнес-логики |
| 401 | Не авторизован (нет/неверный token/key) |
| 403 | Доступ запрещён (permissions, plugin policy) |
| 404 | Ресурс не найден |
| 422 | Ошибка проверка формата данных-валидации (Public Auth) |
| 429 | Rate limit |
| 502/503 | Сервис недоступен (mail provider, auth service) |
| Тип запроса | Header |
|---|---|
| JSON body | Content-Type: application/json |
| File upload | Content-Type: загрузка файлов (multipart) |
| Idempotency (mail) | ключ идемпотентности: <uuid> (опционально, дублирует body-поле) |
Public Auth применяет rate limit на login/register (код rate_limited, заголовок Retry-After). Прочие service API — по конфигурации платформы.
Настраивается администратором платформы. Если ваш сайт на другом домене — согласуйте список разрешённых адресов с оператором.
Mail Service поддерживает ключ идемпотентности (header или body idempotency_key) для предотвращения дублирования отправок.
public_api_separate)Если в конфигурации включено разделение портов, платформа слушает два адреса:
| Порт | Параметр | Назначение |
|---|---|---|
| Основной | web.port (обычно 5000) | Админ-панель; почта и файлы — при раздельных портах |
| Публичный | web.public_port (обычно 5001) | Авторизация, данные, расширения, Swagger UI |
На публичном порту доступны только методы для внешних приложений. На основном — управление платформой.
Важно: методы почты (/api/v1/mail/*) и файлов (/api/v1/files/*) при раздельных портах вызываются на основном порту (web.port), а не на публичном.
Если разделение выключено (public_api_separate: false), все публичные методы доступны на одном порту.
В интерактивный справочник (/api/openapi.json) по умолчанию входят:
/v1/auth/*/v1/db/*/module/*