Roistat REST API: Передать сделки из своей CRM

Сценарий из mcp-everything. Актуально на 2026-10-24.

Если CRM не подключена штатно — выгружать сделки и статусы через API, чтобы Roistat считал выручку по каналам.

  1. Один раз передай справочник статусов: POST /project/set-statuses — массив всех статусов с id, name и type (unused, in progress, paid, canceled). Передавай полный список: существующий id с новым именем переименует статус.
  2. Выгружай сделки: POST /project/add-orders — массив сделок с id, name, date_create, status, price, cost и roistat — номером визита (его кладёт на сайт скрипт Roistat в куку roistat_visit).
  3. В ответе uploaded, processed, saved и счётчики пропущенных — по ним видно, что не загрузилось.
  4. Сменить статус одной сделки, созданной через API или цели, можно методом POST /project/integration/order/{orderId}/status/update.
curl -X POST "https://cloud.roistat.com/api/v1/project/add-orders?project=12345" \
  -H "Api-key: $ROISTAT_KEY" -H 'Content-Type: application/json' \
  -d '[{"id": "1042", "name": "Заказ №1042", "date_create": "2026-10-23 14:05", "status": "2", "price": "15000", "cost": "9000", "roistat": "345678"}]'

Базовые URL

Авторизация

Тип: API-ключ

Ключ API (один на пользователя, действует для всех его проектов) берётся в профиле: https://cloud.roistat.com/user/profile/api. Передаётся в заголовке Api-key (рекомендуется; параметр key в URL небезопасен). Номер проекта — в параметре project строки запроса; без него работают только /user/projects и /account/project/create.

curl 'https://cloud.roistat.com/api/v1/project/proxy-leads?project=12345&period=2021-07-07-2021-09-24' \
    --request GET \
    --header 'Content-type: application/json' \
    --header 'Api-key: {KEY}'

Методы сценария

POST /project/add-orders — Выгрузка сделок из CRM

Тело — массив сделок.

В ответе: uploaded, processed, saved, счётчики пропущенных (skipped_by_status, skipped_because_not_changed и др.).

Параметр Где Тип Обяз. Описание
project query string да Номер проекта
[].id body string нет ID сделки в CRM
[].name body string нет Название сделки
[].date_create body string нет UNIX time или YYYY-MM-DD HH:MM
[].status body string нет ID статуса из set-statuses
[].roistat body string нет Номер визита Roistat
[].price body string нет Сумма (для выручки)
[].cost body string нет Себестоимость
[].fields body object нет Доп. поля, до 1000 символов каждое

POST /project/set-statuses — Выгрузка статусов сделок

Передавайте все статусы (существующие и новые) одним массивом; существующий ID с новым именем переименовывает статус.

Параметр Где Тип Обяз. Описание
project query string да Номер проекта
[].id body string нет ID статуса
[].name body string нет Название
[].type body string нет unused, in progress, paid, canceled

POST /project/integration/order/{orderId}/status/update — Смена статуса сделки

Только для интеграции через цели или API.

Параметр Где Тип Обяз. Описание
orderId path string да ID сделки
project query string да Номер проекта
status_id body string нет ID статуса в Roistat

Нюансы

Другие сценарии


Если этого недостаточно — официальная документация: https://help-en.roistat.com/API/methods/about/ Вся интеграция одним документом: https://mcp-everything.ru/integrations/roistat.md