SmartCommAI API (1.0.0)

Download OpenAPI specification:

Документация API SmartCommAI

authentication

Аутентификация

Вход

Вход по логину и паролю

Request Body schema: application/json
required
login
required
string

Логин пользователя

password
required
string

Пароль пользователя

Responses

Request samples

Content type
application/json
{
  • "login": "admin",
  • "password": "Qwerty123"
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Выход

Выход (закрытие сессии)

Responses

Response samples

Content type
application/problem+json
{}

Регистрация

Регистрация пользователя

Request Body schema: application/json
required
login
required
string

Логин пользователя

name
required
string

Имя пользователя

surname
required
string

Фамилия пользователя

birthDate
required
string <date>

Дата рождения пользователя

phone
required
string^\+[1-9]\d{1,14}$

Телефон пользователя

email
required
string <email>

E-mail пользователя

countryId
required
integer

Идентификатор страны пользователя

password
required
string

Пароль пользователя

Responses

Request samples

Content type
application/json
{
  • "login": "JohnDoe1987",
  • "name": "John",
  • "surname": "Doe",
  • "birthDate": "1987-05-19",
  • "phone": "+16842344567",
  • "email": "johndoe87@gmail.com",
  • "countryId": 12,
  • "password": "Qwerty123"
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Запросить код для восстановления пароля

Принимает email. Если пользователь с таким email существует — отправляет письмо с 4-значным кодом. Если не существует — ничего не делает. В любом случае возвращает success=true, чтобы исключить перебор существующих email.

Request Body schema: application/json
required

Данные для запроса кода восстановления

email
required
string <email>

Email пользователя

Responses

Request samples

Content type
application/json
{
  • "email": "user@example.com"
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Проверить код из письма и получить reset_token

Проверяет 4-значный код из письма и возвращает reset_token. reset_token используется на следующем шаге для установки нового пароля.

Request Body schema: application/json
required

Данные для проверки кода восстановления

email
required
string <email>

Email пользователя

code
required
string^\d{4}$

4-значный код из письма

Responses

Request samples

Content type
application/json
{
  • "email": "user@example.com",
  • "code": "1234"
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Сбросить пароль по reset_token

Принимает email, reset_token и новый пароль. При успехе меняет пароль пользователя и выполняет вход.

Request Body schema: application/json
required

Данные для установки нового пароля

email
required
string <email>

Email пользователя

reset_token
required
string

Токен, полученный на шаге verify-code

password
required
string >= 8 characters

Новый пароль (минимум 8 символов)

Responses

Request samples

Content type
application/json
{
  • "email": "user@example.com",
  • "reset_token": "fV3p1hKz9mQe4uTt7yXw2aBc6dEf0GhIjKlMnOpQrStUvWxYz0123456789ABCD",
  • "password": "NewStrongPassword123!"
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

profile

Профиль

Профиль пользователя

Возвращает профиль текущего пользователя

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Редактирование профиля пользователя

Редактирует и возвращает профиль текущего пользователя

Request Body schema: application/json
required
login
string

Логин пользователя

name
string

Имя пользователя

surname
string

Фамилия пользователя

birthDate
string <date>

Дата рождения пользователя

phone
string^\+[1-9]\d{1,14}$

Телефон пользователя

email
string <email>

E-mail пользователя

countryId
integer

Идентификатор страны пользователя

languageId
integer

Идентификатор языка

currencyId
integer

Идентификатор валюты

Responses

Request samples

Content type
application/json
{
  • "login": "JohnDoe1987",
  • "name": "John",
  • "surname": "Doe",
  • "birthDate": "1987-05-19",
  • "phone": "+16842344567",
  • "email": "johndoe87@gmail.com",
  • "countryId": 12,
  • "languageId": 12,
  • "currencyId": 12
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

objects

Объекты

Список объектов

Возвращает список объектов пользователя

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Создание объекта

Создаёт новый объект и возвращает его.

Request Body schema: application/json
required

Данные для создания объекта.

name
required
string

Название объекта.

area
required
number <float>

Площадь объекта (в квадратных метрах).

address
required
string

Адрес объекта.

fileIds
required
Array of strings (FileIds) [ 0 .. 20 ] items

Массив идентификаторов загруженных файлов (ULID).

Responses

Request samples

Content type
application/json
{
  • "name": "Studio Nook",
  • "area": 28.5,
  • "address": "12 Mercury Lane, Soho, London",
  • "fileIds": [
    ]
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Один объект

Возвращает объект по идентификатору.

path Parameters
id
required
integer >= 1
Example: 123

Уникальный идентификатор сущности.

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Редактирование объекта

Обновляет объект по идентификатору и возвращает его.

path Parameters
id
required
integer >= 1
Example: 123

Уникальный идентификатор сущности.

Request Body schema: application/json
required

Данные для обновления объекта.

name
string

Название объекта.

area
number <float>

Площадь объекта (в квадратных метрах).

address
string

Адрес объекта.

fileIds
Array of strings (FileIds) [ 0 .. 20 ] items

Массив идентификаторов загруженных файлов (ULID).

Responses

Request samples

Content type
application/json
{
  • "name": "Studio Nook",
  • "area": 28.5,
  • "address": "12 Mercury Lane, Soho, London",
  • "fileIds": [
    ]
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Удаление объекта

Удаляет объект по идентификатору.

path Parameters
id
required
integer >= 1
Example: 123

Уникальный идентификатор сущности.

Responses

Response samples

Content type
application/problem+json
{}

events

События

Список событий

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

query Parameters
limit
integer [ 1 .. 200 ]
Default: 50
Example: limit=50

Количество элементов в результате

cursor
string
Example: cursor=eyJuYW1lIjogItCf0YDQvtC00LDQstC10YYiLCAiaWQiOiAxMjMgfQ==

Курсор пагинации

object_id
integer
Example: object_id=101

Фильтр по объекту.

date_from
string <date>
Example: date_from=2026-01-01

Начало периода (YYYY-MM-DD).

date_to
string <date>
Example: date_to=2026-01-31

Конец периода (YYYY-MM-DD).

Responses

Response samples

Content type
application/json
{
  • "pagination": {
    },
  • "data": [
    ]
}

Добавление события

Создаёт новое событие и возвращает его.

Request Body schema: application/json
required

Данные для создания события.

date
required
string <date>

Дата события.

notification_date
required
string <date>

Дата уведомления.

income
required
integer

Доход.

expense
required
integer

Расход.

description
string

Описание/заметки.

object_id
required
integer

Идентификатор объекта, к которому относится событие.

fileIds
Array of strings (FileIds) [ 0 .. 20 ] items

Массив идентификаторов загруженных файлов (ULID).

Responses

Request samples

Content type
application/json
{
  • "date": "2025-12-13",
  • "notification_date": "2025-12-14",
  • "income": 12000,
  • "expense": 10000,
  • "description": "Оплатить до 20 числа",
  • "object_id": 101,
  • "fileIds": [
    ]
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Одно событие

Возвращает событие по идентификатору.

path Parameters
id
required
integer >= 1
Example: 123

Уникальный идентификатор сущности.

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Редактирование события

Обновляет событие по идентификатору и возвращает его.

path Parameters
id
required
integer >= 1
Example: 123

Уникальный идентификатор сущности.

Request Body schema: application/json
required

Данные для обновления события.

date
string <date>

Дата события.

notification_date
string <date>

Дата уведомления.

income
integer

Доход.

expense
integer

Расход.

description
string

Описание/заметки.

object_id
integer

Идентификатор объекта, к которому относится событие.

fileIds
Array of strings (FileIds) [ 0 .. 20 ] items

Массив идентификаторов загруженных файлов (ULID).

Responses

Request samples

Content type
application/json
{
  • "date": "2025-12-13",
  • "notification_date": "2025-12-14",
  • "income": 12000,
  • "expense": 10000,
  • "description": "Оплатить до 20 числа",
  • "object_id": 101,
  • "fileIds": [
    ]
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Удаление события

Удаляет событие по идентификатору.

path Parameters
id
required
integer >= 1
Example: 123

Уникальный идентификатор сущности.

Responses

Response samples

Content type
application/problem+json
{}

Финансовая сводка

Возвращает финансовую сводку по событиям за период.

query Parameters
date_from
string <date>
Example: date_from=2026-01-01

Начало периода (YYYY-MM-DD).

date_to
string <date>
Example: date_to=2026-01-31

Конец периода (YYYY-MM-DD).

object_id
integer
Example: object_id=101

Фильтр по объекту.

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Дни месяца, в которых есть события

Возвращает список дней указанного месяца и года, в которых есть события.

path Parameters
year
required
integer [ 2000 .. 2100 ]
Example: 2026

Год.

month
required
integer [ 1 .. 12 ]
Example: 1

Месяц.

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

dictionaries

Справочники

Страны и телефоны

Возвращает список стран и формат телефонных номеров

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Валюты

Возвращает список валют

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Языки

Возвращает список языков

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

files

Файлы

Загрузка нескольких файлов (приватно)

Загружает один или несколько файлов в приватное хранилище и возвращает информацию о созданных файлах. Файлы доступны только пользователю, который их загрузил.

Request Body schema: multipart/form-data
required
files
required
Array of strings <binary> [ 1 .. 20 ] items [ items <binary > ]

Files to upload (multipart field name "files[]")

scope
required
string
Enum: "image" "all"

image - only images; all - any file type (limited only by size)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Скачать файл (только для владельца)

Отдаёт содержимое файла потоково. Реальный путь к файлу в хранилище никогда не раскрывается. Если файл не прикреплён и срок его действия (expiresAt) истёк, возвращается код 410 (Gone).

path Parameters
fileId
required
string
Example: 01kfp3kkspgkz9hxb6wt0yc4n2

Идентификатор файла (ULID)

Responses

Response samples

Content type
application/problem+json
{}