API для интеграций
Как подключить сайт, 1С или свой сервис к GIPIX CRM — API-ключ, методы, лимиты и безопасность.
Что это и зачем
API для интеграций позволяет внешним системам добавлять данные в ваш CRM без входа в браузер:
- создавать записи (подтверждённые визиты);
- принимать онлайн-заявки (как с публичной страницы записи);
- добавлять товары на склад;
- читать справочники (услуги, мастера, слоты), искать клиента по телефону и просматривать список записей.
Типичные сценарии: форма на вашем сайте, обмен с 1С, скрипт на сервере, автоматизация (n8n, Make и т.п.).
Важно API не предназначен для массовой выгрузки базы клиентов. Чтение клиентов — только по номеру телефона. Список записей — с фильтрами и пагинацией.
Как открыть настройки
- Войдите в CRM как владелец аккаунта: cp.gipix-lite.ru.
- Откройте Интеграции (
/integrations) — из меню или раздела Компания. - Перейдите на вкладку API.
Подробнее о других каналах (Telegram, MAX, звонки) — в Интеграциях.
Примечание Раздел Интеграции доступен владельцу на тарифе Pro и выше.
API-ключ
Создание
- На вкладке API нажмите Создать ключ (или Перевыпустить ключ, если ключ уже был).
- Откроется окно с полным ключом вида
gpx_…. - Нажмите Скопировать ключ и сохраните его в надёжном месте (менеджер паролей, настройки вашего сервера).
Ключ показывается один раз После закрытия окна полный ключ больше не отображается в CRM. В интерфейсе останется только префикс (
gpx_…) для узнавания. Если ключ потерян — перевыпустите новый; старый перестанет работать.
Включение и отзыв
- Переключатель API включён — без него запросы с ключом отклоняются, даже если ключ известен.
- Отозвать — немедленно блокирует ключ; интеграции перестанут работать до выпуска нового.
После изменения прав (какие методы разрешены) нажмите Сохранить внизу страницы интеграций.
Права (методы)
На вкладке API можно включить или отключить каждый метод отдельно:
| Метод в CRM | Назначение |
|---|---|
| Добавить запись | Подтверждённая запись из внешней системы |
| Онлайн-запись | Заявка со статусом «ожидает подтверждения», как с публичной страницы |
| Добавить товар на склад | Новая позиция с начальным остатком |
| Справочники и слоты | Услуги, мастера, свободные слоты на дату |
| Клиент по телефону | Точечный поиск без выгрузки всей базы |
| Список записей | Все, грядущие, прошлые, сегодня (period) |
Рекомендуется включать только то, что реально использует ваша интеграция.
Базовый адрес и авторизация
Базовый URL API:
https://cp.gipix-lite.ru/api/crm/v1Авторизация — передайте ключ в заголовке запроса (предпочтительно):
Authorization: Bearer gpx_ВАШ_КЛЮЧАльтернатива:
X-GIPIX-API-Key: gpx_ВАШ_КЛЮЧНе вставляйте ключ в код сайта Ключ нельзя размещать в JavaScript на публичной странице — его увидит любой посетитель. Вызывайте API с вашего сервера (backend сайта, 1С, скрипт), а не из браузера клиента.
Только HTTPS На продакшене используйте
https://cp.gipix-lite.ru. Не передавайте ключ по незашифрованному HTTP.
Методы API
Проверка ключа
GET /api/crm/v1/health
Authorization: Bearer gpx_ВАШ_КЛЮЧОтвет подтверждает, что ключ действителен, и показывает включённые права (запись, чтение, склад и т.д.).
Справочники (чтение)
GET /api/crm/v1/services
GET /api/crm/v1/masters
GET /api/crm/v1/booking/slots?date=2026-07-01Слоты рассчитываются по настройкам онлайн-записи. Параметр master необязателен.
Клиент по телефону
GET /api/crm/v1/clients?phone=%2B79001234567Без параметра phone запрос отклоняется. Полной выгрузки клиентов нет.
Список записей
GET /api/crm/v1/appointments?period=upcoming
GET /api/crm/v1/appointments?period=today
GET /api/crm/v1/appointments?period=past
GET /api/crm/v1/appointments?period=all
GET /api/crm/v1/appointments/123| Параметр | Описание |
|---|---|
period | all — все; upcoming — грядущие (по умолчанию); past — прошлые; today — на сегодня |
phone | Фильтр по телефону клиента (необязательно) |
page, per_page | Пагинация (до 100 на страницу) |
Черновики (is_draft) в список не попадают.
Добавить запись
POST /api/crm/v1/appointments
Content-Type: application/json
Authorization: Bearer gpx_ВАШ_КЛЮЧОбязательные поля в теле (JSON):
| Поле | Описание |
|---|---|
date | Дата: YYYY-MM-DD или DD.MM.YYYY |
time | Время: ЧЧ:ММ |
customer_name | Имя клиента |
car_model | Автомобиль |
reason или services или services_planned | Услуга / причина визита |
Необязательно: customer_phone, master, master_ids, comment, estimated_price, car_vin, car_plate.
Запись создаётся подтверждённой (как из формы CRM).
Пример:
curl -X POST 'https://cp.gipix-lite.ru/api/crm/v1/appointments' \
-H 'Authorization: Bearer gpx_ВАШ_КЛЮЧ' \
-H 'Content-Type: application/json' \
-d '{
"date": "2026-07-01",
"time": "10:00",
"customer_name": "Иван",
"customer_phone": "+79001234567",
"car_model": "Toyota Camry",
"reason": "Диагностика"
}'Онлайн-запись
POST /api/crm/v1/online-bookingПравила те же, что у публичной онлайн-записи: обязательны дата, время, имя, телефон; автомобиль и услуга — если так настроено в Онлайн-записи.
Заявка попадает в CRM со статусом ожидает подтверждения; команде могут уйти уведомления (Telegram / MAX), если они настроены.
Пример:
curl -X POST 'https://cp.gipix-lite.ru/api/crm/v1/online-booking' \
-H 'Authorization: Bearer gpx_ВАШ_КЛЮЧ' \
-H 'Content-Type: application/json' \
-d '{
"date": "2026-07-01",
"time": "10:00",
"customer_name": "Иван",
"customer_phone": "+79001234567",
"car_model": "Toyota Camry",
"reason": "Замена масла"
}'Добавить товар на склад
POST /api/crm/v1/warehouse/parts| Поле | Обязательно | Описание |
|---|---|---|
name | да | Название запчасти |
price | да | Цена продажи (> 0) |
quantity | нет | Начальный остаток |
purchase_price | нет | Закупочная цена |
original_number, manufacturer_number | нет | Артикулы |
supplier, manufacturer, location | нет | Справочная информация |
Подробнее о складе в CRM — в Склад запчастей.
Пример:
curl -X POST 'https://cp.gipix-lite.ru/api/crm/v1/warehouse/parts' \
-H 'Authorization: Bearer gpx_ВАШ_КЛЮЧ' \
-H 'Content-Type: application/json' \
-d '{
"name": "Масляный фильтр",
"quantity": 5,
"purchase_price": 320,
"price": 490
}'Ответы и ошибки
| Код | Значение |
|---|---|
201 | Успешно создано |
400 | Неверные данные (проверьте обязательные поля) |
401 | Ключ не передан или неверный |
403 | Метод отключён в настройках API или аккаунт недоступен |
429 | Превышен лимит запросов (см. ниже) |
При ошибке 429 в ответе есть поле retry_after (секунды до повтора) и заголовок Retry-After.
Лимиты запросов (антиспам)
Чтобы защитить CRM от перегрузки и перебора ключей, действуют лимиты на один API-ключ:
| Правило | Лимит |
|---|---|
| Общий | 60 запросов в минуту, 500 в час |
| Добавить запись | 30 / мин |
| Онлайн-запись | 20 / мин |
| Склад | 30 / мин |
| Справочники / слоты | 60 / мин |
| Клиент по телефону | 30 / мин |
| Список записей | 60 / мин |
| Неверный ключ с одного IP | 30 попыток за 15 мин |
| Выпуск ключа в CRM | 10 раз в час |
Актуальные цифры отображаются на вкладке API → Лимиты запросов в Интеграциях.
Безопасность
Что защищено:
- ключ в базе хранится как хэш — украсть его из БД нельзя;
- полный ключ не показывается повторно в интерфейсе;
- API не отдаёт полный список клиентов — только поиск по телефону;
- список записей — с фильтрами
periodи пагинацией, без выгрузки «всей истории» одним файлом; - доступ только у владельца для создания ключа;
- есть лимиты и блокировка перебора неверных ключей.
Главный риск — утечка ключа. Тот, у кого есть ключ, может добавлять записи и товары от имени вашего сервиса, но не читать всю базу.
Рекомендации:
- Храните ключ как пароль; не коммитьте в Git и не отправляйте в мессенджеры.
- Вызывайте API только с сервера, не из браузера посетителя.
- Включайте минимум прав (отключите склад, если не нужен).
- При подозрении на утечку — Отозвать ключ и выпустить новый.
- Выключайте API (API включён), когда интеграция не используется.
Частые вопросы
- Ключ не работает (401). Проверьте, что API включён, ключ скопирован целиком (с префиксом
gpx_), в заголовкеAuthorization: Bearer …нет лишних пробелов. - 403 на метод. Откройте вкладку API и убедитесь, что нужный переключатель (запись / онлайн / склад) включён; нажмите Сохранить.
- 429 — слишком много запросов. Подождите
retry_afterсекунд или уменьшите частоту вызовов в интеграции. - Онлайн-запись отклоняется. Сверьте настройки Онлайн-записи: график, закрытые дни, запись на сегодня, обязательность автомобиля и услуги.
- Можно ли выгрузить всех клиентов через API? Нет — только поиск по
phone. Для выгрузки используйте разделы CRM (клиенты, отчёты). - Как получить только сегодняшние записи?
GET /api/crm/v1/appointments?period=today.
Связь с другими разделами
- Интеграции — Telegram, MAX, звонки, поставщики.
- Онлайн-запись — публичная страница и правила слотов.
- Склад запчастей — учёт остатков в CRM.
- Панель управления и записи — где появятся созданные записи.
- Обратная связь — если нужна помощь с нестандартной интеграцией.