Обзор API для пользователей
CRMPro предоставляет полнофункциональное REST API для интеграции с вашими приложениями и сервисами. Все запросы должны использовать протокол HTTPS и передавать данные в формате JSON.
Базовый URL: https://appap.sbs/api
Роли и права доступа
API поддерживает несколько ролей пользователей с разными уровнями доступа:
| Роль |
Описание |
Доступные функции |
| company_owner |
Владелец компании |
Полный доступ ко всем функциям компании, управление сотрудниками, подписка |
| manager |
Менеджер |
Управление клиентами, сделками, задачами, календарем |
| user |
Пользователь |
Просмотр клиентов, сделок, задач, работа с календарем |
| employee |
Сотрудник |
Базовый доступ к просмотру информации |
| developer |
Разработчик |
Расширенные права для интеграций и разработки |
Формат данных
Все запросы и ответы используют формат JSON. Заголовок Content-Type должен быть установлен как application/json.
Коды ответов
| Код |
Описание |
| 200 |
Успешный запрос |
| 201 |
Успешное создание |
| 400 |
Неверный запрос |
| 401 |
Не авторизован |
| 403 |
Доступ запрещен |
| 404 |
Не найдено |
| 422 |
Ошибка валидации |
| 500 |
Ошибка сервера |
Быстрый справочник API (Пользовательская часть)
Все доступные эндпоинты для пользователей, владельцев компаний, менеджеров и сотрудников:
Управление пользователями
Аутентификация
Для доступа к защищенным эндпоинтам API требуется аутентификация с использованием Bearer Token (API ключа).
Важно: Все защищенные эндпоинты требуют API ключ в заголовке Authorization.
Authorization: Bearer ваш_api_ключ
Регистрация
Создание нового пользователя и тенанта в системе.
Тело запроса (JSON)
{
"username": "user123",
"email": "user@example.com",
"password": "securepassword",
"company_name": "Моя компания",
"full_name": "Иван Иванов",
"user_role": "company_owner"
}
Ответ
{
"status": "success",
"api_key": "abc123def456...",
"tenant_id": "a1b2c3d4e5f6"
}
Вход в систему
Аутентификация пользователя и получение API ключа.
Тело запроса (JSON)
{
"username": "user123",
"password": "securepassword"
}
Ответ
{
"status": "success",
"api_key": "abc123def456...",
"tenant_id": "a1b2c3d4e5f6",
"company_name": "Моя компания",
"user_role": "company_owner"
}
Информация о пользователе
Получение информации о текущем авторизованном пользователе.
Требуется аутентификация: Добавьте API ключ в заголовок Authorization
Ответ
{
"id": 1,
"username": "user123",
"email": "user@example.com",
"company_name": "Моя компания",
"full_name": "Иван Иванов",
"api_key": "abc123...",
"tenant_id": "a1b2c3d4e5f6",
"user_role": "company_owner",
"subscription_type": "basic",
"phone": "+79161234567",
"position": "Директор",
"department": "Управление"
}
Информация о текущем пользователе
Получение расширенной информации о текущем авторизованном пользователе.
Требуется аутентификация: Добавьте API ключ в заголовок Authorization
Ответ
{
"id": 1,
"username": "user123",
"email": "user@example.com",
"name": "Иван Иванов",
"full_name": "Иван Иванов",
"company_name": "Моя компания",
"role": "company_owner",
"user_role": "company_owner",
"phone": "+79161234567",
"position": "Директор",
"department": "Управление",
"subscription_type": "basic",
"tenant_id": "a1b2c3d4e5f6"
}
Генерация нового API ключа
Создание нового API ключа для текущего пользователя. Старый ключ перестанет работать.
Требуется аутентификация: Добавьте текущий API ключ в заголовок Authorization
Ответ
{
"status": "success",
"api_key": "новый_сгенерированный_api_ключ"
}
Управление сотрудниками компании
Эндпоинты для управления сотрудниками компании. Доступны только для владельцев компаний и менеджеров.
Получение списка всех сотрудников компании
Требуется аутентификация: Добавьте API ключ в заголовок Authorization
Требуемые права: MANAGE_ALL_USERS (владельцы компаний, менеджеры)
Ответ
[
{
"id": 1,
"username": "employee1",
"email": "employee1@example.com",
"full_name": "Петр Петров",
"phone": "+79161234568",
"position": "Менеджер",
"department": "Продажи",
"user_role": "manager",
"is_active": true,
"created_at": "2024-01-15T10:30:00"
}
]
Создание нового сотрудника компании
Тело запроса (JSON)
{
"username": "newemployee",
"email": "new@example.com",
"password": "password123",
"full_name": "Сергей Сергеев",
"phone": "+79161234569",
"position": "Аналитик",
"department": "Аналитика",
"user_role": "employee"
}
Ответ
{
"status": "success",
"user": {
"id": 2,
"username": "newemployee",
"email": "new@example.com",
"full_name": "Сергей Сергеев",
"phone": "+79161234569",
"position": "Аналитик",
"department": "Аналитика",
"user_role": "employee",
"is_active": true,
"created_at": "2024-01-15T10:30:00"
}
}
Обновление данных сотрудника компании
Тело запроса (JSON)
{
"full_name": "Сергей Иванов",
"phone": "+79161234570",
"position": "Старший аналитик",
"department": "Аналитика",
"user_role": "manager",
"is_active": true
}
Ответ
{
"status": "success",
"user": {
"id": 2,
"username": "newemployee",
"email": "new@example.com",
"full_name": "Сергей Иванов",
"phone": "+79161234570",
"position": "Старший аналитик",
"department": "Аналитика",
"user_role": "manager",
"is_active": true
}
}
Удаление сотрудника компании
Ответ
{
"status": "success",
"message": "User deleted successfully"
}
Клиенты - физические лица
Управление клиентами - физическими лицами.
Создание нового клиента (физическое лицо)
Тело запроса (JSON)
{
"first_name": "Иван",
"last_name": "Иванов",
"phone": "+79161234567",
"email": "ivan@example.com",
"status": "new",
"comment": "Потенциальный клиент"
}
Ответ
{
"status": "success"
}
Получение списка всех клиентов (физические лица)
Ответ
[
{
"id": 1,
"first_name": "Иван",
"last_name": "Иванов",
"phone": "+79161234567",
"email": "ivan@example.com",
"status": "new",
"comment": "Потенциальный клиент",
"created_at": "2024-01-15T10:30:00",
"updated_at": "2024-01-15T10:30:00"
}
]
Получение клиента по ID
Получение информации о конкретном клиенте (физическое лицо) по его идентификатору.
Требуется аутентификация: Добавьте API ключ в заголовок Authorization
Ответ
{
"id": 1,
"first_name": "Иван",
"last_name": "Иванов",
"phone": "+79161234567",
"email": "ivan@example.com",
"status": "new",
"comment": "Потенциальный клиент",
"created_at": "2024-01-15T10:30:00",
"updated_at": "2024-01-15T10:30:00"
}
Все клиенты
Получение списка всех клиентов (физических и юридических лиц).
Требуется аутентификация: Добавьте API ключ в заголовок Authorization
Ответ
[
{
"id": 1,
"name": "Иван Иванов",
"type": "individual",
"phone": "+79161234567",
"email": "ivan@example.com",
"status": "new",
"created_at": "2024-01-15T10:30:00"
},
{
"id": 2,
"name": "ООО Ромашка",
"contact_person": "Петр Петров",
"type": "legal",
"phone": "+79161234568",
"email": "petr@romashka.ru",
"status": "active",
"created_at": "2024-01-15T11:30:00"
}
]
Клиенты - юридические лица
Управление клиентами - юридическими лицами.
Создание нового клиента (юридическое лицо)
Тело запроса (JSON)
{
"first_name": "Петр",
"last_name": "Петров",
"company": "ООО Ромашка",
"phone": "+79161234567",
"email": "petr@romashka.ru",
"status": "active",
"comment": "Корпоративный клиент"
}
Ответ
{
"status": "success"
}
Получение списка всех клиентов (юридические лица)
Ответ
[
{
"id": 1,
"first_name": "Петр",
"last_name": "Петров",
"company": "ООО Ромашка",
"phone": "+79161234567",
"email": "petr@romashka.ru",
"status": "active",
"comment": "Корпоративный клиент",
"created_at": "2024-01-15T10:30:00",
"updated_at": "2024-01-15T10:30:00"
}
]
Создание сделки
Создание новой сделки в системе.
Тело запроса (JSON)
{
"title": "Продажа ПО",
"client_id": 1,
"client_type": "individual",
"budget": 50000.00,
"expected_close_date": "2024-02-15",
"status": "active"
}
Ответ
{
"status": "success"
}
Получение списка сделок
Получение списка всех сделок пользователя.
Требуется аутентификация: Добавьте API ключ в заголовок Authorization
Ответ
[
{
"id": 1,
"title": "Продажа ПО",
"client_id": 1,
"client_type": "individual",
"budget": 50000.00,
"expected_close_date": "2024-02-15",
"actual_close_date": null,
"status": "active",
"loss_reason": null,
"created_at": "2024-01-15T10:30:00",
"updated_at": "2024-01-15T10:30:00",
"closed_at": null
}
]
Получение сделки по ID
Получение информации о конкретной сделке по её идентификатору.
Требуется аутентификация: Добавьте API ключ в заголовок Authorization
Ответ
{
"id": 1,
"title": "Продажа ПО",
"client_id": 1,
"client_type": "individual",
"budget": 50000.00,
"expected_close_date": "2024-02-15",
"actual_close_date": null,
"status": "active",
"loss_reason": null,
"created_at": "2024-01-15T10:30:00",
"updated_at": "2024-01-15T10:30:00",
"closed_at": null
}
Обновление сделки
Обновление информации о существующей сделке.
Тело запроса (JSON)
{
"title": "Продажа ПО (обновлено)",
"budget": 55000.00,
"status": "completed"
}
Ответ
{
"status": "success",
"deal": {
"id": 1,
"title": "Продажа ПО (обновлено)",
"client_id": 1,
"client_type": "individual",
"budget": 55000.00,
"expected_close_date": "2024-02-15",
"actual_close_date": "2024-02-10",
"status": "completed",
"loss_reason": null,
"created_at": "2024-01-15T10:30:00",
"updated_at": "2024-02-10T14:30:00",
"closed_at": "2024-02-10T14:30:00"
}
}
Создание задачи
Создание новой задачи в системе.
Тело запроса (JSON)
{
"title": "Позвонить клиенту",
"priority": "high",
"deadline": "2024-01-20",
"status": "pending",
"action": "Обсудить условия",
"price": 15000.00,
"profit": 5000.00,
"comment": "Важный клиент"
}
Ответ
{
"status": "success"
}
Получение списка задач
Получение списка всех задач пользователя.
Требуется аутентификация: Добавьте API ключ в заголовок Authorization
Ответ
[
{
"id": 1,
"title": "Позвонить клиенту",
"priority": "high",
"deadline": "2024-01-20",
"status": "pending",
"action": "Обсудить условия",
"price": 15000.00,
"profit": 5000.00,
"comment": "Важный клиент",
"created_at": "2024-01-15T10:30:00",
"updated_at": "2024-01-15T10:30:00"
}
]
Получение задачи по ID
Получение информации о конкретной задаче по её идентификатору.
Требуется аутентификация: Добавьте API ключ в заголовок Authorization
Ответ
{
"id": 1,
"title": "Позвонить клиенту",
"priority": "high",
"deadline": "2024-01-20",
"status": "pending",
"action": "Обсудить условия",
"price": 15000.00,
"profit": 5000.00,
"comment": "Важный клиент",
"created_at": "2024-01-15T10:30:00",
"updated_at": "2024-01-15T10:30:00"
}
Обновление задачи
Обновление информации о существующей задаче.
Тело запроса (JSON)
{
"title": "Позвонить клиенту (обновлено)",
"status": "completed",
"comment": "Клиент подтвердил условия"
}
Ответ
{
"status": "success",
"task": {
"id": 1,
"title": "Позвонить клиенту (обновлено)",
"priority": "high",
"deadline": "2024-01-20",
"status": "completed",
"action": "Обсудить условия",
"price": 15000.00,
"profit": 5000.00,
"comment": "Клиент подтвердил условия",
"created_at": "2024-01-15T10:30:00",
"updated_at": "2024-01-16T14:30:00"
}
}
Создание заявки (Lead)
Создание новой заявки в системе.
Тело запроса (JSON)
{
"first_name": "Алексей",
"last_name": "Смирнов",
"phone": "+79161234571",
"email": "alexey@example.com",
"company_name": "ООО ТехноПро",
"message": "Интересует внедрение CRM",
"source": "website",
"status": "new",
"priority": "high",
"assigned_to": 1,
"tags": ["crm", "внедрение"],
"custom_fields": {
"budget": "50000",
"timeline": "1 месяц"
}
}
Ответ
{
"status": "success",
"lead": {
"id": 1,
"first_name": "Алексей",
"last_name": "Смирнов",
"phone": "+79161234571",
"email": "alexey@example.com",
"company_name": "ООО ТехноПро",
"message": "Интересует внедрение CRM",
"source": "website",
"status": "new",
"priority": "high",
"assigned_to": 1,
"tags": ["crm", "внедрение"],
"custom_fields": {
"budget": "50000",
"timeline": "1 месяц"
},
"created_at": "2024-01-15T10:30:00"
}
}
Получение списка заявок
Получение списка всех заявок с возможностью фильтрации.
Требуется аутентификация: Добавьте API ключ в заголовок Authorization
Ответ
[
{
"id": 1,
"first_name": "Алексей",
"last_name": "Смирнов",
"phone": "+79161234571",
"email": "alexey@example.com",
"company_name": "ООО ТехноПро",
"message": "Интересует внедрение CRM",
"source": "website",
"status": "new",
"priority": "high",
"assigned_to": 1,
"tags": ["crm", "внедрение"],
"custom_fields": {
"budget": "50000",
"timeline": "1 месяц"
},
"created_at": "2024-01-15T10:30:00"
}
]
Получение заявки по ID
Получение информации о конкретной заявке по её идентификатору.
Требуется аутентификация: Добавьте API ключ в заголовок Authorization
Ответ
{
"id": 1,
"first_name": "Алексей",
"last_name": "Смирнов",
"phone": "+79161234571",
"email": "alexey@example.com",
"company_name": "ООО ТехноПро",
"message": "Интересует внедрение CRM",
"source": "website",
"status": "new",
"priority": "high",
"assigned_to": 1,
"tags": ["crm", "внедрение"],
"custom_fields": {
"budget": "50000",
"timeline": "1 месяц"
},
"created_at": "2024-01-15T10:30:00",
"updated_at": "2024-01-15T10:30:00"
}
Обновление заявки
Обновление информации о существующей заявке.
Тело запроса (JSON)
{
"status": "in_progress",
"assigned_to": 2,
"priority": "medium"
}
Ответ
{
"status": "success",
"lead": {
"id": 1,
"first_name": "Алексей",
"last_name": "Смирнов",
"phone": "+79161234571",
"email": "alexey@example.com",
"company_name": "ООО ТехноПро",
"message": "Интересует внедрение CRM",
"source": "website",
"status": "in_progress",
"priority": "medium",
"assigned_to": 2,
"tags": ["crm", "внедрение"],
"custom_fields": {
"budget": "50000",
"timeline": "1 месяц"
},
"created_at": "2024-01-15T10:30:00",
"updated_at": "2024-01-16T14:30:00"
}
}
Удаление заявки
Удаление заявки из системы.
Внимание: Удаление заявки невозможно отменить.
Ответ
{
"status": "success"
}
События календаря
Получение событий календаря с возможностью фильтрации по дате.
Требуется аутентификация: Добавьте API ключ в заголовок Authorization
Ответ
[
{
"id": 1,
"title": "Встреча с клиентом",
"description": "Обсуждение условий договора",
"start_time": "2024-01-20T14:00:00",
"end_time": "2024-01-20T15:00:00",
"event_type": "meeting",
"client_id": 1,
"deal_id": 1,
"location": "Офис клиента",
"created_by": 1,
"created_at": "2024-01-15T10:30:00"
}
]
Создание события календаря
Создание нового события в календаре.
Тело запроса (JSON)
{
"title": "Презентация продукта",
"description": "Демонстрация новых возможностей CRM",
"start_time": "2024-01-25T10:00:00",
"end_time": "2024-01-25T11:30:00",
"event_type": "presentation",
"client_id": 1,
"deal_id": 1,
"location": "Конференц-зал"
}
Ответ
{
"status": "success",
"event": {
"id": 2,
"title": "Презентация продукта",
"description": "Демонстрация новых возможностей CRM",
"start_time": "2024-01-25T10:00:00",
"end_time": "2024-01-25T11:30:00",
"event_type": "presentation",
"client_id": 1,
"deal_id": 1,
"location": "Конференц-зал",
"created_by": 1,
"created_at": "2024-01-16T10:30:00"
}
}
Обновление события календаря
Обновление информации о существующем событии календаря.
Тело запроса (JSON)
{
"title": "Презентация продукта (обновлено)",
"start_time": "2024-01-25T11:00:00",
"location": "Главный конференц-зал"
}
Ответ
{
"status": "success",
"event": {
"id": 2,
"title": "Презентация продукта (обновлено)",
"description": "Демонстрация новых возможностей CRM",
"start_time": "2024-01-25T11:00:00",
"end_time": "2024-01-25T12:30:00",
"event_type": "presentation",
"client_id": 1,
"deal_id": 1,
"location": "Главный конференц-зал",
"created_by": 1,
"created_at": "2024-01-16T10:30:00",
"updated_at": "2024-01-17T14:30:00"
}
}
Удаление события календаря
Удаление события из календаря.
Ответ
{
"status": "success"
}
Уведомления
Получение уведомлений пользователя.
Требуется аутентификация: Добавьте API ключ в заголовок Authorization
Ответ
[
{
"id": 1,
"user_id": 1,
"title": "Новая задача",
"message": "Вам назначена новая задача",
"type": "info",
"is_read": false,
"created_at": "2024-01-15T10:30:00"
}
]
Отметить уведомление как прочитанное
Отметить конкретное уведомление как прочитанное.
Ответ
{
"status": "success"
}
Отметить все уведомления как прочитанные
Отметить все уведомления пользователя как прочитанные.
Ответ
{
"status": "success"
}
Внутренние сообщения
Получение внутренних сообщений между сотрудниками компании.
Требуется аутентификация: Добавьте API ключ в заголовок Authorization
Ответ
[
{
"id": 1,
"sender_id": 2,
"recipient_id": 1,
"subject": "По поводу встречи",
"content": "Переносим встречу на 15:00",
"is_read": false,
"created_at": "2024-01-15T10:30:00"
}
]
Создание сообщения
Создание нового внутреннего сообщения.
Тело запроса (JSON)
{
"recipient_id": 2,
"subject": "Отчет по продажам",
"content": "Прошу предоставить отчет за январь"
}
Ответ
{
"status": "success",
"message": {
"id": 2,
"sender_id": 1,
"recipient_id": 2,
"subject": "Отчет по продажам",
"content": "Прошу предоставить отчет за январь",
"is_read": false,
"created_at": "2024-01-16T10:30:00"
}
}
Отметить сообщение как прочитанное
Отметить конкретное сообщение как прочитанное.
Ответ
{
"status": "success"
}
Сообщения техподдержки
Получение сообщений техподдержки.
Требуется аутентификация: Добавьте API ключ в заголовок Authorization
Ответ
[
{
"id": 1,
"tenant_id": "a1b2c3d4e5f6",
"user_id": 1,
"subject": "Проблема с интеграцией",
"message": "Не работает интеграция с Telegram",
"status": "open",
"is_from_admin": false,
"is_read": false,
"created_at": "2024-01-15T10:30:00"
}
]
Создание обращения в техподдержку
Создание нового обращения в техподдержку.
Тело запроса (JSON)
{
"subject": "Проблема с отчетами",
"message": "Не формируются отчеты за последнюю неделю"
}
Ответ
{
"status": "success",
"message": {
"id": 2,
"tenant_id": "a1b2c3d4e5f6",
"user_id": 1,
"subject": "Проблема с отчетами",
"message": "Не формируются отчеты за последнюю неделю",
"status": "open",
"is_from_admin": false,
"is_read": false,
"created_at": "2024-01-16T10:30:00"
}
}
Отметить сообщение поддержки как прочитанное
Отметить конкретное сообщение техподдержки как прочитанное.
Ответ
{
"status": "success"
}
Информация о подписке
Получение информации о текущей подписке компании.
Требуется аутентификация: Добавьте API ключ в заголовок Authorization
Ответ
{
"id": 1,
"tenant_id": "a1b2c3d4e5f6",
"plan_type": "basic",
"max_users": 10,
"max_clients": 100,
"max_deals": 50,
"features": {
"crm": true,
"analytics": true,
"api_access": true
},
"status": "active",
"start_date": "2024-01-01T00:00:00",
"end_date": "2025-01-01T00:00:00",
"created_at": "2024-01-01T00:00:00"
}
Обновление подписки
Обновление информации о подписке компании.
Только для владельцев компаний: Требуется роль company_owner
Ответ
{
"status": "success",
"subscription": {
"id": 1,
"tenant_id": "a1b2c3d4e5f6",
"plan_type": "pro",
"max_users": 25,
"max_clients": 100,
"max_deals": 50,
"features": {
"crm": true,
"analytics": true,
"api_access": true,
"priority_support": true
},
"status": "active",
"start_date": "2024-01-01T00:00:00",
"end_date": "2025-01-01T00:00:00",
"created_at": "2024-01-01T00:00:00",
"updated_at": "2024-01-16T14:30:00"
}
}
Платежи
Получение информации о платежах компании.
Требуется аутентификация: Добавьте API ключ в заголовок Authorization
Только для владельцев компаний: Требуется роль company_owner
Ответ
[
{
"id": 1,
"tenant_id": "a1b2c3d4e5f6",
"amount": 5000.00,
"currency": "RUB",
"payment_method": "bank_card",
"subscription_plan": "basic",
"status": "completed",
"payment_data": {
"card_last_four": "4242"
},
"created_at": "2024-01-01T00:00:00",
"completed_at": "2024-01-01T00:05:00"
}
]
Создание платежа
Создание нового платежа для компании.
Только для владельцев компаний: Требуется роль company_owner
Ответ
{
"status": "success",
"payment": {
"id": 2,
"tenant_id": "a1b2c3d4e5f6",
"amount": 10000.00,
"currency": "RUB",
"payment_method": "bank_transfer",
"subscription_plan": "pro",
"status": "pending",
"payment_data": {
"bank_name": "Сбербанк",
"account_number": "1234567890"
},
"created_at": "2024-01-16T10:30:00"
}
}
Отчеты
Получение созданных отчетов.
Требуется аутентификация: Добавьте API ключ в заголовок Authorization
Ответ
[
{
"id": 1,
"tenant_id": "a1b2c3d4e5f6",
"title": "Отчет по продажам за январь",
"report_type": "sales",
"data": {
"total_sales": 150000,
"completed_deals": 15,
"average_deal_size": 10000
},
"created_by": 1,
"created_at": "2024-01-31T23:59:59"
}
]
Создание отчета
Создание нового отчета.
Ответ
{
"status": "success",
"report": {
"id": 2,
"tenant_id": "a1b2c3d4e5f6",
"title": "Отчет по клиентам",
"report_type": "clients",
"data": {
"total_clients": 50,
"new_clients_this_month": 10,
"active_clients": 35
},
"created_by": 1,
"created_at": "2024-01-16T10:30:00"
}
}
Общая статистика
Получение общей статистики по клиентам, сделкам и задачам.
Требуется аутентификация: Добавьте API ключ в заголовок Authorization
Ответ
{
"clients": {
"individual": 15,
"legal": 3,
"total": 18
},
"tasks": 25,
"deals": {
"total": 10,
"active": 7,
"completed": 3
}
}
Дашборд
Получение данных для отображения на дашборде (быстрые цифры).
Требуется аутентификация: Добавьте API ключ в заголовок Authorization
Ответ
{
"new_clients": 5,
"monthly_sales": 150000.00,
"completed_deals": 3,
"pending_tasks": 8,
"conversion_rate": 30.0,
"monthly_revenue": 150000.00,
"total_clients": 18
}
Активности
Получение последних активностей в системе.
Требуется аутентификация: Добавьте API ключ в заголовок Authorization
Ответ
[
{
"id": 1,
"tenant_id": "a1b2c3d4e5f6",
"user_id": 1,
"action_type": "client_created",
"details": "Создан новый клиент: Иван Иванов",
"created_at": "2024-01-15T10:30:00"
}
]
Логи API
Получение логов API действий.
Требуется аутентификация: Добавьте API ключ в заголовок Authorization
Ограниченный доступ: Только для владельцев компаний, супер-админов и разработчиков
Ответ
[
{
"id": 1,
"tenant_id": "a1b2c3d4e5f6",
"user_id": 1,
"user_role": "company_owner",
"endpoint": "/api/clients/individual",
"method": "POST",
"response_status": 200,
"ip_address": "192.168.1.1",
"user_agent": "Mozilla/5.0...",
"execution_time_ms": 150,
"created_at": "2024-01-15T10:30:00"
}
]
Публичные лиды
Прием лидов с сайтов и приложений без аутентификации (требуется только API ключ).
Универсальный эндпоинт для приема лидов. Работает с GET и POST запросами.
Ответ
{
"status": "success",
"message": "Заявка успешно добавлена в CRM!"
}
Заявки через публичный API
Создание заявок через публичный API без авторизации (требуется tenant_id в заголовке или параметре).
Без авторизации: Этот endpoint не требует API ключа, но требует tenant_id в заголовке X-Tenant-ID или параметре запроса
Заголовки запроса
Content-Type: application/json
X-Tenant-ID: ваш_tenant_id
Параметры запроса (JSON)
{
"first_name": "Анна",
"last_name": "Сидорова",
"phone": "+79161234572",
"email": "anna@example.com",
"company_name": "ИП Сидорова",
"message": "Интересуюсь демо-версией",
"source": "landing_page",
"status": "new",
"priority": "medium",
"assigned_to": null,
"tags": ["важный", "новый_клиент"],
"custom_fields": {
"utm_source": "google",
"utm_campaign": "summer2024"
}
}
Параметры (все опциональны, кроме tenant_id)
first_name (string, optional) - Имя
last_name (string, optional) - Фамилия
phone (string, optional) - Телефон
email (string, optional) - Email
company_name (string, optional) - Название компании
message (string, optional) - Сообщение/комментарий
source (string, default: "api") - Источник заявки
status (string, default: "new") - Статус: "new", "contacted", "qualified", "converted", "lost"
priority (string, default: "medium") - Приоритет: "low", "medium", "high"
assigned_to (integer, optional) - ID пользователя, которому назначена заявка
tags (array, optional) - Массив тегов
custom_fields (object, optional) - Дополнительные поля
Ответ
{
"status": "success",
"lead": {
"id": 3,
"first_name": "Анна",
"last_name": "Сидорова",
"phone": "+79161234572",
"email": "anna@example.com",
"company_name": "ИП Сидорова",
"message": "Интересуюсь демо-версией",
"source": "landing_page",
"status": "new",
"priority": "medium",
"created_at": "2024-01-16T10:30:00Z"
}
}
Восстановление пароля
Отправка нового пароля на email пользователя.
Без авторизации: Этот endpoint не требует API ключа
Параметры запроса (JSON)
{
"email": "user@example.com"
}
Ответ
{
"status": "success",
"message": "Новый пароль отправлен на ваш email"
}
Отправка кода двухфакторной аутентификации
Отправка 6-значного кода 2FA на email пользователя.
Без авторизации: Этот endpoint не требует API ключа
Параметры запроса (JSON)
{
"user_id": 123
}
Ответ
{
"status": "success",
"message": "Код отправлен на ваш email"
}
Важно: Код действителен 10 минут
Google OAuth
Вход и привязка Google аккаунта.
Вход через Google OAuth. Требуется код авторизации от Google.
Параметры запроса (Form Data)
code: authorization_code_from_google
Ответ
{
"status": "success",
"api_key": "your_api_key",
"tenant_id": "your_tenant_id",
"user_role": "company_owner"
}
Получить статус привязки Google аккаунта.
Ответ
{
"linked": true,
"email": "user@gmail.com",
"name": "Иван Иванов",
"picture_url": "https://...",
"connected_at": "2024-01-15T10:30:00Z"
}
Привязать Google аккаунт через код авторизации.
Параметры запроса (Form Data)
code: authorization_code_from_google
redirect_uri: https://appap.sbs/dashboard.html
Отвязать Google аккаунт от пользователя.
Ответ
{
"status": "success"
}
Сессии пользователя
Управление активными сессиями пользователя.
Получить все активные сессии пользователя.
Ответ
{
"sessions": [
{
"id": 1,
"session_token": "abc123...",
"device_info": "Chrome on Windows",
"ip_address": "192.168.1.1",
"location": "Москва, Россия",
"created_at": "2024-01-15T10:30:00Z",
"last_activity": "2024-01-15T15:45:00Z"
}
]
}
Завершить конкретную сессию пользователя.
Ответ
{
"status": "success",
"message": "Сессия завершена"
}
Настройки уведомлений
Управление настройками email уведомлений и двухфакторной аутентификации.
Получить текущие настройки уведомлений.
Ответ
{
"email_notifications_enabled": true,
"two_factor_enabled": false
}
Обновить настройки уведомлений.
Параметры запроса (JSON)
{
"email_notifications_enabled": true,
"two_factor_enabled": true
}
Ответ
{
"status": "success",
"message": "Настройки обновлены"
}
Проверка здоровья системы
Проверка работоспособности API сервера.
Корневой эндпоинт
Базовый эндпоинт для проверки доступности API.
Ответ
{
"message": "CRMPro API работает!",
"version": "3.0"
}
Ошибки API
Стандартные форматы ошибок, возвращаемых API.
Ошибка аутентификации (401)
{
"detail": "Invalid API key"
}
Ошибка доступа (403)
{
"detail": "Permission denied"
}
Ошибка валидации (400/422)
{
"detail": "User already exists"
}
Не найдено (404)
{
"detail": "Client not found"
}
Базовый URL
Все API запросы должны отправляться на следующие базовые URL:
# Для разработки
http://appap.sbs
# Для продакшена
https://appap.sbs
Пример полного URL: https://appap.sbs/api/register
Готовы начать работу с API?
Получите API ключ и начните интегрировать CRMPro с вашими приложениями уже сегодня
Получить API ключ