{"name":"Roistat REST API","vendor":"Roistat","industry":"marketing","summary":"API системы сквозной аналитики Roistat: проекты, отчёты аналитики по источникам и метрикам, сделки (выгрузка из CRM, список, статусы), прокси-лиды, коллтрекинг (номера, скрипты, звонки), события, визиты, маркетинговые каналы, баланс. Пути строятся по схеме «контекст / сервис / ресурс / метод», например `project/calltracking/phone/list`.","docsUrl":"https://help-en.roistat.com/API/methods/about/","coverage":{"included":[],"excluded":[]},"scenarios":[{"id":"vygruzit-otchet-skvoznoy-analitiki","title":"Выгрузить отчёт сквозной аналитики","summary":"Расходы, выручка и ROI по рекламным каналам — в свою BI-систему или отчёт.","steps":["Возьми ключ API в профиле Roistat и передавай его в заголовке Api-key. Номер проекта — параметр project в строке запроса; список проектов — GET /user/projects.","Запроси отчёт: POST /project/analytics/data с dimensions (например, marker_level_1 — канал), metrics (visits, leads, sales, revenue, marketing_cost и т. п.) и period.from / period.to с часовым поясом.","Для разбивки по времени добавь interval, для отбора — filters (field, operation, value).","По умолчанию все ответы, даже ошибки, приходят с HTTP 200 — проверяй status в теле или передай заголовок Use-Http-Code: 1. Лимит — 10 запросов в секунду и 5000 в час на проект."],"code":"curl -X POST \"https://cloud.roistat.com/api/v1/project/analytics/data?project=12345\" \\\n  -H \"Api-key: $ROISTAT_KEY\" -H 'Content-Type: application/json' -H 'Use-Http-Code: 1' \\\n  -d '{\n        \"dimensions\": [\"marker_level_1\"],\n        \"metrics\": [\"visits\", \"leads\", \"sales\", \"revenue\", \"marketing_cost\"],\n        \"period\": {\"from\": \"2026-10-01T00:00:00+0300\", \"to\": \"2026-10-23T23:59:59+0300\"}\n      }'","language":"bash","methods":["GET /user/projects","POST /project/analytics/data"]},{"id":"peredat-sdelki-iz-svoey-crm","title":"Передать сделки из своей CRM","summary":"Если CRM не подключена штатно — выгружать сделки и статусы через API, чтобы Roistat считал выручку по каналам.","steps":["Один раз передай справочник статусов: POST /project/set-statuses — массив всех статусов с id, name и type (unused, in progress, paid, canceled). Передавай полный список: существующий id с новым именем переименует статус.","Выгружай сделки: POST /project/add-orders — массив сделок с id, name, date_create, status, price, cost и roistat — номером визита (его кладёт на сайт скрипт Roistat в куку roistat_visit).","В ответе uploaded, processed, saved и счётчики пропущенных — по ним видно, что не загрузилось.","Сменить статус одной сделки, созданной через API или цели, можно методом POST /project/integration/order/{orderId}/status/update."],"code":"curl -X POST \"https://cloud.roistat.com/api/v1/project/add-orders?project=12345\" \\\n  -H \"Api-key: $ROISTAT_KEY\" -H 'Content-Type: application/json' \\\n  -d '[{\"id\": \"1042\", \"name\": \"Заказ №1042\", \"date_create\": \"2026-10-23 14:05\", \"status\": \"2\", \"price\": \"15000\", \"cost\": \"9000\", \"roistat\": \"345678\"}]'","language":"bash","methods":["POST /project/add-orders","POST /project/set-statuses","POST /project/integration/order/{orderId}/status/update"]},{"id":"zabirat-zayavki-i-zvonki-s-istochnikami","title":"Забирать заявки и звонки с источниками","summary":"Прокси-лиды и звонки коллтрекинга с привязкой к визиту и рекламному источнику.","steps":["Заявки за период: GET /project/proxy-leads с period в формате YYYY-MM-DD-YYYY-MM-DD. В ответе name, phone, email, roistat (визит) и order_id. Время — UTC.","Звонки: POST /project/calltracking/call/list с filters по дате, limit и extend = [\"visit\", \"order\"], чтобы сразу получить визит и сделку. В записи есть link — ссылка на запись разговора.","Номера коллтрекинга и их настройки — POST /project/calltracking/phone/list.","Полная цепочка визитов по конкретной сделке — GET /project/orders/{orderId}/info."],"code":"curl -G \"https://cloud.roistat.com/api/v1/project/proxy-leads\" \\\n  -H \"Api-key: $ROISTAT_KEY\" -d project=12345 -d period=2026-10-01-2026-10-23\n\ncurl -X POST \"https://cloud.roistat.com/api/v1/project/calltracking/call/list?project=12345\" \\\n  -H \"Api-key: $ROISTAT_KEY\" -H 'Content-Type: application/json' \\\n  -d '{\"filters\": {\"and\": [[\"date\", \">\", \"2026-10-01T00:00:00+0000\"]]}, \"limit\": 100, \"extend\": [\"visit\", \"order\"]}'","language":"bash","methods":["GET /project/orders/{orderId}/info","GET /project/proxy-leads","POST /project/calltracking/call/list","POST /project/calltracking/phone/list"]},{"id":"sverit-sdelki-s-vyruchkoy","title":"Сверить сделки с выручкой","summary":"Проверить, какие сделки Roistat видит оплаченными и откуда они пришли.","steps":["Запроси сделки: POST /project/integration/order/list с filters (например, статус 1 — оплачен), limit и offset.","С extend = [\"visit\"] в каждой сделке будут полные данные визита — но такой запрос ограничен по частоте (при limit больше 100 — 5 в минуту), поэтому бери небольшие страницы.","Сравни revenue и status с данными своей учётной системы и при расхождении перевыгрузи сделку через POST /project/add-orders."],"code":"curl -X POST \"https://cloud.roistat.com/api/v1/project/integration/order/list?project=12345\" \\\n  -H \"Api-key: $ROISTAT_KEY\" -H 'Content-Type: application/json' \\\n  -d '{\"filters\": {\"and\": [[\"status\", \"=\", \"1\"]]}, \"limit\": 100, \"offset\": 0}'","language":"bash","methods":["POST /project/integration/order/list","POST /project/add-orders"]}],"baseUrls":[{"label":"Боевой","url":"https://cloud.roistat.com/api/v1"}],"auth":{"type":"api_key","description":"Ключ API (один на пользователя, действует для всех его проектов) берётся в профиле: `https://cloud.roistat.com/user/profile/api`. Передаётся в заголовке `Api-key` (рекомендуется; параметр `key` в URL небезопасен). Номер проекта — в параметре `project` строки запроса; без него работают только `/user/projects` и `/account/project/create`.","example":"curl 'https://cloud.roistat.com/api/v1/project/proxy-leads?project=12345&period=2021-07-07-2021-09-24' \\\n    --request GET \\\n    --header 'Content-type: application/json' \\\n    --header 'Api-key: {KEY}'"},"methods":[{"id":"GET /user/projects","title":"Проекты пользователя","httpMethod":"GET","path":"/user/projects","description":"В ответе `projects[]`: `id`, `name`, `profit`, `creation_date`, `currency`, `is_owner`.","params":[],"requestExample":"","responseExample":"","docsUrl":""},{"id":"POST /project/analytics/data","title":"Отчёт аналитики","httpMethod":"POST","path":"/project/analytics/data","description":"Excel-вариант — `POST /project/analytics/data/export/excel` (без `interval` и `next_dimensions`).\n\nВ ответе `data[]`: `items` (строки с `metrics`, `dimensions`), `mean`, `dateFrom`, `dateTo`.","params":[{"name":"project","in":"query","type":"string","required":true,"description":"Номер проекта"},{"name":"dimensions","in":"body","type":"array","required":true,"description":"Группировки, например marker_level_1"},{"name":"metrics","in":"body","type":"array","required":true,"description":"Метрики: имя или объект metric + attribution"},{"name":"period.from","in":"body","type":"string","required":true,"description":"Начало с часовым поясом, например 2016-07-01T00:00:00+0300"},{"name":"period.to","in":"body","type":"string","required":true,"description":"Конец периода"},{"name":"filters","in":"body","type":"array","required":false,"description":"Фильтры field, operation (>, <, =, <>, >=, <=, in), value"},{"name":"interval","in":"body","type":"string","required":false,"description":"Разбивка периода XmYwZd"}],"requestExample":"","responseExample":"","docsUrl":""},{"id":"POST /project/integration/order/list","title":"Список сделок","httpMethod":"POST","path":"/project/integration/order/list","description":"В ответе `data[]` (`id`, `source_type`, `creation_date`, `revenue`, `cost`, `visit_id`, `client_id`, `custom_fields`, `status`), `total`.","params":[{"name":"project","in":"query","type":"string","required":true,"description":"Номер проекта"},{"name":"filters","in":"body","type":"object","required":false,"description":"Фильтры (and); статус: 0 в работе, 1 оплачен, 2 отменён"},{"name":"extend","in":"body","type":"array","required":false,"description":"visit — вернуть полные данные визита"},{"name":"limit","in":"body","type":"integer","required":false,"description":"Число сделок"},{"name":"offset","in":"body","type":"integer","required":false,"description":"Смещение"}],"requestExample":"","responseExample":"","docsUrl":""},{"id":"POST /project/add-orders","title":"Выгрузка сделок из CRM","httpMethod":"POST","path":"/project/add-orders","description":"Тело — массив сделок.\n\nВ ответе: `uploaded`, `processed`, `saved`, счётчики пропущенных (`skipped_by_status`, `skipped_because_not_changed` и др.).","params":[{"name":"project","in":"query","type":"string","required":true,"description":"Номер проекта"},{"name":"[].id","in":"body","type":"string","required":false,"description":"ID сделки в CRM"},{"name":"[].name","in":"body","type":"string","required":false,"description":"Название сделки"},{"name":"[].date_create","in":"body","type":"string","required":false,"description":"UNIX time или YYYY-MM-DD HH:MM"},{"name":"[].status","in":"body","type":"string","required":false,"description":"ID статуса из set-statuses"},{"name":"[].roistat","in":"body","type":"string","required":false,"description":"Номер визита Roistat"},{"name":"[].price","in":"body","type":"string","required":false,"description":"Сумма (для выручки)"},{"name":"[].cost","in":"body","type":"string","required":false,"description":"Себестоимость"},{"name":"[].fields","in":"body","type":"object","required":false,"description":"Доп. поля, до 1000 символов каждое"}],"requestExample":"","responseExample":"","docsUrl":""},{"id":"POST /project/set-statuses","title":"Выгрузка статусов сделок","httpMethod":"POST","path":"/project/set-statuses","description":"Передавайте все статусы (существующие и новые) одним массивом; существующий ID с новым именем переименовывает статус.","params":[{"name":"project","in":"query","type":"string","required":true,"description":"Номер проекта"},{"name":"[].id","in":"body","type":"string","required":false,"description":"ID статуса"},{"name":"[].name","in":"body","type":"string","required":false,"description":"Название"},{"name":"[].type","in":"body","type":"string","required":false,"description":"unused, in progress, paid, canceled"}],"requestExample":"","responseExample":"","docsUrl":""},{"id":"POST /project/integration/order/{orderId}/status/update","title":"Смена статуса сделки","httpMethod":"POST","path":"/project/integration/order/{orderId}/status/update","description":"Только для интеграции через цели или API.","params":[{"name":"orderId","in":"path","type":"string","required":true,"description":"ID сделки"},{"name":"project","in":"query","type":"string","required":true,"description":"Номер проекта"},{"name":"status_id","in":"body","type":"string","required":false,"description":"ID статуса в Roistat"}],"requestExample":"","responseExample":"","docsUrl":""},{"id":"GET /project/orders/{orderId}/info","title":"Подробности сделки","httpMethod":"GET","path":"/project/orders/{orderId}/info","description":"Данные сделки, товары и полная цепочка визитов.","params":[{"name":"orderId","in":"path","type":"string","required":true,"description":"ID сделки"},{"name":"project","in":"query","type":"string","required":true,"description":"Номер проекта"}],"requestExample":"","responseExample":"","docsUrl":""},{"id":"GET /project/proxy-leads","title":"Прокси-лиды за период","httpMethod":"GET","path":"/project/proxy-leads","description":"В ответе `ProxyLeads[]`: `id`, `title`, `text`, `name`, `phone`, `email`, `roistat` (визит), `creation_date` (UTC0), `order_id`.","params":[{"name":"project","in":"query","type":"string","required":true,"description":"Номер проекта"},{"name":"period","in":"query","type":"string","required":true,"description":"Период YYYY-MM-DD-YYYY-MM-DD"}],"requestExample":"","responseExample":"","docsUrl":""},{"id":"POST /project/calltracking/call/list","title":"История звонков","httpMethod":"POST","path":"/project/calltracking/call/list","description":"Чтобы получить визит и сделку для каждого звонка, добавьте `visit` и `order` в `extend`. В записи звонка: `id`, `caller`, `callee`, `duration`, `status`, `date`, `link` (запись), `visit_id`, `order_id`.","params":[{"name":"project","in":"query","type":"string","required":true,"description":"Номер проекта"},{"name":"filters","in":"body","type":"object","required":false,"description":"Фильтры (например, по диапазону дат в and)"},{"name":"sort","in":"body","type":"array","required":false,"description":"Сортировка"},{"name":"limit","in":"body","type":"integer","required":false,"description":"Число записей"},{"name":"offset","in":"body","type":"integer","required":false,"description":"Смещение"},{"name":"extend","in":"body","type":"array","required":false,"description":"visit, order"}],"requestExample":"","responseExample":"","docsUrl":""},{"id":"POST /project/calltracking/phone/list","title":"Номера коллтрекинга","httpMethod":"POST","path":"/project/calltracking/phone/list","description":"","params":[{"name":"project","in":"query","type":"string","required":true,"description":"Номер проекта"},{"name":"filters","in":"body","type":"object","required":false,"description":"Фильтры"},{"name":"limit","in":"body","type":"integer","required":false,"description":"Число записей"},{"name":"offset","in":"body","type":"integer","required":false,"description":"Смещение"}],"requestExample":"","responseExample":"","docsUrl":""}],"codeExamples":[],"errors":[{"code":"incorrect_request","description":"400 — некорректный запрос"},{"code":"authentication_failed","description":"401 — ошибка аутентификации"},{"code":"authorization_failed","description":"401 — ошибка авторизации"},{"code":"insufficient_funds","description":"402 — недостаточно средств"},{"code":"option_not_available","description":"402 — опция недоступна"},{"code":"project_frozen","description":"402 — проект заморожен"},{"code":"access_denied","description":"403 — доступ запрещён"},{"code":"resource_not_found","description":"404 — ресурс не найден"},{"code":"resource_already_exists","description":"409 — ресурс уже существует"},{"code":"request_data_validation_error","description":"422 — ошибка валидации данных"},{"code":"request_limit_error","description":"429 — превышен лимит запросов"},{"code":"internal_error","description":"500 — внутренняя ошибка"}],"limits":"- 10 запросов в секунду и 5000 запросов в час на проект.","gotchas":["По умолчанию все методы — POST; GET допускается для методов, оканчивающихся на `/list`, и для отдельных ресурсов (проекты, прокси-лиды, детали сделки).","Тело — JSON или XML; поддерживается CORS; время по умолчанию — UTC+0.","По умолчанию все ответы, включая ошибки, приходят с HTTP 200; заголовок `Use-Http-Code: 1` включает реальные HTTP-коды.","Ответы содержат `data`, `total`, `status`.","Список сделок с `extend: visit`: при `limit` больше 1000 — 1 запрос в минуту, больше 100 — 5, меньше 100 — 10; без `extend` — 20 в минуту."],"slug":"roistat","version":2,"updatedAt":"2026-10-24T17:05:35.941Z","sources":[{"title":"Roistat REST API","url":"https://help-en.roistat.com/API/methods/about/","kind":"research","addedAt":"2026-10-17T07:39:11.422Z"},{"title":"Projects","url":"https://help-en.roistat.com/API/methods/projects/","kind":"research","addedAt":"2026-10-17T07:39:11.422Z"},{"title":"Analytics","url":"https://help-en.roistat.com/API/methods/analytics/","kind":"research","addedAt":"2026-10-17T07:39:11.422Z"},{"title":"Orders","url":"https://help-en.roistat.com/API/methods/orders/","kind":"research","addedAt":"2026-10-17T07:39:11.422Z"},{"title":"Proxy Leads","url":"https://help-en.roistat.com/API/methods/proxy-leads/","kind":"research","addedAt":"2026-10-17T07:39:11.422Z"},{"title":"Calltracking","url":"https://help-en.roistat.com/API/methods/calltracking/","kind":"research","addedAt":"2026-10-17T07:39:11.422Z"},{"title":"Вставленный текст","url":"","kind":"import","addedAt":"2026-10-17T07:39:11.422Z"},{"title":"scenarios-roistat.md","url":"","kind":"import","addedAt":"2026-10-24T17:05:26.551Z"}],"logoUrl":null}