REST API
PrimoCRM регистрирует свои REST-маршруты в пространстве имен primocrm/v1 при
вызове rest_api_init. Административное приложение использует те же конечные точки, поэтому все, что делает интерфейс, доступно программно.
Базовый URL
Заголовок раздела «Базовый URL»https://yoursite.com/wp-json/primocrm/v1/Аутентификация
Заголовок раздела «Аутентификация»Каждая конечная точка имеет функцию обратного вызова для проверки прав (permission callback), которая проверяет возможности WordPress, поэтому вызывающий код должен быть аутентифицирован и авторизован.
- Из административного приложения (тот же источник): запросы аутентифицируются с помощью активной сессии и REST-нонца. WordPress отправляет нонц в заголовке
X-WP-Nonce. Это происходит автоматически для кода, выполняющегося внутри wp-admin. - Из внешнего кода: используйте метод аутентификации, поддерживаемый WordPress для REST API (например, пароли приложений), в сочетании с учетной записью пользователя, обладающего необходимыми правами. PrimoCRM Pro добавляет выделенные ключи API для программного доступа.
Конечные точки, управляющие настройками, отправкой или выполнением деструктивных операций, требуют прав уровня администратора. Операции чтения и стандартные операции с контактами требуют прав доступа к CRM.
Основные конечные точки
Заголовок раздела «Основные конечные точки»Ниже представлен репрезентативный, но не исчерпывающий список. Вы можете изучить полный набор через вкладку сети браузера при использовании административного приложения, так как интерфейс вызывает те же маршруты.
Контакты
Заголовок раздела «Контакты»| Method | Path | Purpose |
|---|---|---|
| GET | /contacts |
Список контактов (поддерживает постраничную навигацию и фильтры) |
| POST | /contacts |
Создать контакт |
| GET | /contacts/{id} |
Получить один контакт |
| PUT | /contacts/{id} |
Обновить контакт |
| DELETE | /contacts/{id} |
Удалить контакт |
| POST | /contacts/bulk-action |
Применить массовое действие к нескольким контактам |
| POST | /contacts/bulk-delete |
Удалить несколько контактов |
| GET | /contacts/statuses |
Список доступных статусов |
| GET | /contacts/{id}/activities |
Журнал активности контакта |
| GET | /contacts/{id}/emails |
Письма, отправленные контакту |
Автоматизация
Заголовок раздела «Автоматизация»| Method | Path | Purpose |
|---|---|---|
| GET | /automations/triggers |
Все зарегистрированные триггеры |
| GET | /automations/actions |
Все зарегистрированные действия |
| GET | /automations/condition-options |
Поля и операторы для конструктора условий |
Формы и смарт-коды
Заголовок раздела «Формы и смарт-коды»| Method | Path | Purpose |
|---|---|---|
| GET | /forms/field-types |
Все зарегистрированные типы полей форм |
| GET | /smart-codes |
Каталог тегов персонализации |
Кампании, цепочки, списки, теги, шаблоны, миграция и настройки имеют собственные маршруты в том же пространстве имен, следуя тому же шаблону контроллера.
Пример запроса
Заголовок раздела «Пример запроса»Создание контакта с аутентификацией по паролю приложения:
curl -X POST https://yoursite.com/wp-json/primocrm/v1/contacts \ -u "admin:APPLICATION_PASSWORD" \ -H "Content-Type: application/json" \ -d '{"email":"ada@example.com","first_name":"Ada","status":"subscribed"}'Структура ответа и ограничения
Заголовок раздела «Структура ответа и ограничения»Успешные ответы возвращают JSON. Когда функция Pro или лимитное ограничение тарифного плана блокируют запрос, PrimoCRM возвращает код 403, тело которого содержит pro_lock: true. Административное приложение использует это для показа предложения обновиться. Учитывайте эту структуру, если вы вызываете закрытые для Pro конечные точки из собственного кода.