{"name":"Carrot quest Web API","vendor":"Carrot quest","industry":"crm","summary":"Web API платформы автоматизации маркетинга и чатов Carrot quest: данные пользователей (лидов) и их свойства, события, ручные сообщения в чат, диалоги приложения и пользователя, список пользователей приложения. Отправлять запросы из браузерного JavaScript нельзя — для браузера используется JS-библиотека Carrot quest.","docsUrl":"https://developers.carrotquest.io/webapi/","coverage":{"included":[],"excluded":[]},"scenarios":[{"id":"peredat-dannye-polzovatelya-s-servera","title":"Передать данные пользователя с сервера","summary":"Обновлять карточку лида в Carrot quest данными из своей системы: имя, email, телефон, тариф, сумма покупок.","steps":["Создай API-ключ: «Настройки» → «Разработчикам» → «API-ключи». Передавай его в заголовке Authorization: Token <ключ>. Вызывай API только с сервера — из браузерного JavaScript нельзя, для сайта есть JS-библиотека.","Запиши свойства: POST /users/{id}/props, где id — твой User ID и by_user_id = true. В operations — список операций с op, key и value; системные свойства начинаются с $ ($name, $email, $phone), свои — без него.","Если пользователя с таким User ID ещё нет, Carrot quest его создаст. За запрос — до 250 свойств.","Невалидные операции не дают ошибку, а попадают в meta.ignored_operations — проверяй этот список в ответе.","Лимит — 60 запросов в минуту на ключ; при превышении придёт 429 TooManyRequests."],"code":"curl -X POST https://api.carrotquest.io/users/user_42/props \\\n  -H \"Authorization: Token $CQ_TOKEN\" \\\n  --data-urlencode 'by_user_id=true' \\\n  --data-urlencode 'operations=[\n    {\"op\": \"update_or_create\", \"key\": \"$name\", \"value\": \"Иван Петров\"},\n    {\"op\": \"update_or_create\", \"key\": \"$email\", \"value\": \"ivan@example.ru\"},\n    {\"op\": \"update_or_create\", \"key\": \"Тариф\", \"value\": \"Про\"}\n  ]'","language":"bash","methods":["POST /users/{id}/props"]},{"id":"zapisat-sobytie-polzovatelya","title":"Записать событие пользователя","summary":"Сообщить Carrot quest о действии, которое произошло на сервере: оплата, продление подписки, отмена заказа — для сегментов и автосообщений.","steps":["Запиши событие: POST /users/{id}/events с by_user_id = true, event — именем события (до 255 символов) и params — его свойствами.","Если событие произошло раньше, передай created — время в UTC (timestamp). Для таких событий автосообщения не планируются.","Проверь, что событие записалось: GET /users/{id}/events.","Используй одинаковые имена событий везде — по ним строятся сегменты и триггерные рассылки."],"code":"curl -X POST https://api.carrotquest.io/users/user_42/events \\\n  -H \"Authorization: Token $CQ_TOKEN\" \\\n  --data-urlencode 'by_user_id=true' \\\n  --data-urlencode 'event=Оплатил заказ' \\\n  --data-urlencode 'params={\"Номер заказа\": \"1042\", \"Сумма\": 15000}'","language":"bash","methods":["POST /users/{id}/events","GET /users/{id}/events"]},{"id":"napisat-polzovatelyu-v-chat","title":"Написать пользователю в чат","summary":"Отправить сообщение от имени поддержки: статус заказа, ответ на обращение из другой системы.","steps":["Найди пользователя: GET /users/{id} с by_user_id = true. Если его нет, вернётся 400 LookupError.","Отправь сообщение: POST /users/{id}/sendmessage с body — текстом. type задаёт вид: popup_chat (по умолчанию), popup_small или popup_big.","В ответе data.conversation — ID диалога и data.message — ID сообщения. По ID диалога можно получить переписку: GET /conversations/{id}."],"code":"curl -X POST https://api.carrotquest.io/users/user_42/sendmessage \\\n  -H \"Authorization: Token $CQ_TOKEN\" \\\n  --data-urlencode 'by_user_id=true' \\\n  --data-urlencode 'body=Ваш заказ №1042 передан в доставку. Курьер привезёт его завтра с 14 до 16.'","language":"bash","methods":["GET /users/{id}","POST /users/{id}/sendmessage","GET /conversations/{id}"]},{"id":"vygruzit-nerazobrannye-dialogi","title":"Выгрузить неразобранные диалоги","summary":"Забирать открытые обращения, которые никому не назначены, — для отчёта или своей системы поддержки.","steps":["Запроси диалоги приложения: GET /apps/{id}/conversations с closed = false и assigned = 0 (неразобранные). Отбор по тегам — tags, по каналу — channel.","Для следующей страницы используй параметры пагинации из meta, например next_after.","Полную переписку по диалогу получай через GET /conversations/{id}, а все диалоги конкретного пользователя — через GET /users/{id}/conversations.","Для событий в реальном времени (новое сообщение, закрытие диалога) удобнее вебхуки — опрос упрётся в лимит 60 запросов в минуту."],"code":"curl -G https://api.carrotquest.io/apps/<ID приложения>/conversations \\\n  -H \"Authorization: Token $CQ_TOKEN\" \\\n  -d closed=false -d assigned=0","language":"bash","methods":["GET /users/{id}/conversations","GET /apps/{id}/conversations","GET /conversations/{id}"]}],"baseUrls":[{"label":"Боевой","url":"https://api.carrotquest.io"}],"auth":{"type":"api_key","description":"Токен берётся в панели администратора: «Настройки» → «Разработчикам» → «API-ключи». Передаётся в заголовке `Authorization: Token <токен>` (или `Bearer <токен>`) либо параметром `auth_token`.","example":"curl -X GET -H \"Authorization: Token <ваш_токен>\" https://api.carrotquest.io/users/123"},"methods":[{"id":"GET /users/{id}","title":"Данные пользователя","httpMethod":"GET","path":"/users/{id}","description":"Если пользователя нет — `400 LookupError`.","params":[{"name":"id","in":"path","type":"string","required":true,"description":"ID в Carrot quest или ваш User ID (с by_user_id=true)"},{"name":"by_user_id","in":"query","type":"boolean","required":false,"description":"Искать по вашему User ID, по умолчанию false"},{"name":"props","in":"query","type":"boolean","required":false,"description":"Системные свойства, по умолчанию true"},{"name":"props_events","in":"query","type":"boolean","required":false,"description":"Свойства, связанные с событиями"},{"name":"props_custom","in":"query","type":"boolean","required":false,"description":"Пользовательские свойства"},{"name":"events","in":"query","type":"boolean","required":false,"description":"События"},{"name":"segments","in":"query","type":"boolean","required":false,"description":"Сегменты"},{"name":"notes","in":"query","type":"boolean","required":false,"description":"Заметки"},{"name":"tags","in":"query","type":"boolean","required":false,"description":"Теги"},{"name":"email_status","in":"query","type":"boolean","required":false,"description":"Статус подписки на email"},{"name":"app","in":"query","type":"integer","required":false,"description":"ID приложения (по умолчанию из токена)"}],"requestExample":"","responseExample":"","docsUrl":""},{"id":"POST /users/{id}/props","title":"Установка свойств пользователя","httpMethod":"POST","path":"/users/{id}/props","description":"Операции выполняются по порядку; невалидные не дают ошибку, а попадают в `meta.ignored_operations`. Если пользователя с таким User ID нет, он создаётся.","params":[{"name":"id","in":"path","type":"string","required":true,"description":"ID в Carrot quest или ваш User ID"},{"name":"by_user_id","in":"body","type":"boolean","required":false,"description":"Искать по вашему User ID"},{"name":"operations","in":"body","type":"array","required":true,"description":"Операции op, key, value, до 250 свойств; системные свойства начинаются с $"},{"name":"double_subscribe","in":"body","type":"boolean","required":false,"description":"Переподписать отписанного при обновлении $email"},{"name":"parse_custom_props_type","in":"body","type":"boolean","required":false,"description":"Определять тип пользовательских свойств, по умолчанию true"},{"name":"source","in":"body","type":"object","required":false,"description":"Источник контакта для $email/$phone (type, id)"}],"requestExample":"curl -X POST \\\n  --data-urlencode \"operations=[{\"op\": \"update_or_create\", \"key\": \"$name\", \"value\": \"Maks\"}]\" \\\n  -H \"Authorization: Token XXX\" \\\n  https://api.carrotquest.io/users/8173131/props","responseExample":"{\n  \"meta\": {\n    \"status\": 200,\n    \"affected_props\": [],\n    \"ignored_operations\": []\n  },\n  \"data\": {\n    \"id\": 123123123,\n    \"app\": 12345\n  }\n}","docsUrl":""},{"id":"POST /users/{id}/events","title":"Запись события","httpMethod":"POST","path":"/users/{id}/events","description":"","params":[{"name":"id","in":"path","type":"string","required":true,"description":"ID в Carrot quest или ваш User ID"},{"name":"by_user_id","in":"body","type":"boolean","required":false,"description":"Искать по вашему User ID"},{"name":"event","in":"body","type":"string","required":true,"description":"Имя события, 1–255 символов; системные — с $"},{"name":"params","in":"body","type":"object","required":false,"description":"Свойства события"},{"name":"created","in":"body","type":"integer","required":false,"description":"Время события (timestamp UTC); при передаче автосообщения не планируются"}],"requestExample":"","responseExample":"","docsUrl":""},{"id":"GET /users/{id}/events","title":"События пользователя","httpMethod":"GET","path":"/users/{id}/events","description":"","params":[{"name":"id","in":"path","type":"string","required":true,"description":"ID пользователя"},{"name":"by_user_id","in":"query","type":"boolean","required":false,"description":"Искать по вашему User ID"}],"requestExample":"","responseExample":"","docsUrl":""},{"id":"POST /users/{id}/sendmessage","title":"Ручное сообщение пользователю","httpMethod":"POST","path":"/users/{id}/sendmessage","description":"В ответе `data`: `conversation` (ID диалога) и `message` (ID сообщения).","params":[{"name":"id","in":"path","type":"string","required":true,"description":"ID пользователя"},{"name":"by_user_id","in":"body","type":"boolean","required":false,"description":"Искать по вашему User ID"},{"name":"body","in":"body","type":"string","required":true,"description":"Текст сообщения"},{"name":"type","in":"body","type":"string","required":false,"description":"popup_chat (по умолчанию), popup_small, popup_big"}],"requestExample":"curl -X POST \\\n  --data-urlencode 'body=Hello' \\\n  -H \"Authorization: Token XXX\" \\\n  https://api.carrotquest.io/users/2137216/sendmessage","responseExample":"","docsUrl":""},{"id":"GET /users/{id}/conversations","title":"Диалоги с пользователем","httpMethod":"GET","path":"/users/{id}/conversations","description":"","params":[{"name":"id","in":"path","type":"string","required":true,"description":"ID пользователя"}],"requestExample":"","responseExample":"","docsUrl":""},{"id":"GET /apps/{id}/conversations","title":"Диалоги приложения","httpMethod":"GET","path":"/apps/{id}/conversations","description":"В `meta` — параметры пагинации (например, `next_after`).","params":[{"name":"id","in":"path","type":"integer","required":true,"description":"ID приложения"},{"name":"closed","in":"query","type":"boolean","required":false,"description":"Закрытые (true) или открытые (false)"},{"name":"answered","in":"query","type":"boolean","required":false,"description":"Последним ответил админ (true) или пользователь (false)"},{"name":"assigned","in":"query","type":"integer","required":false,"description":"ID администратора; 0 — неразобранные"},{"name":"tags","in":"query","type":"array","required":false,"description":"Диалоги со всеми указанными тегами"},{"name":"channel","in":"query","type":"integer","required":false,"description":"ID канала; 0 — без канала"}],"requestExample":"","responseExample":"","docsUrl":""},{"id":"GET /apps/{id}/users","title":"Пользователи (лиды) приложения","httpMethod":"GET","path":"/apps/{id}/users","description":"","params":[{"name":"id","in":"path","type":"integer","required":true,"description":"ID приложения"}],"requestExample":"","responseExample":"","docsUrl":""},{"id":"GET /conversations/{id}","title":"Диалог","httpMethod":"GET","path":"/conversations/{id}","description":"","params":[{"name":"id","in":"path","type":"integer","required":true,"description":"ID диалога"}],"requestExample":"","responseExample":"","docsUrl":""}],"codeExamples":[],"errors":[{"code":"400 LookupError","description":"Пользователь не найден"},{"code":"429 TooManyRequests","description":"Превышен лимит запросов"}],"limits":"- 60 запросов в минуту на один API-ключ.\n- До 250 свойств за один запрос `props`.","gotchas":["Параметры передаются GET- или POST-параметрами в UTF-8.","Ответы — JSON с полями `meta` и `data`; `meta.status` дублирует HTTP-код.","`{id}` пользователя — ID Carrot quest или ваш User ID с `by_user_id=true`; запись свойств и событий по неизвестному User ID создаёт пользователя.","Токен даёт почти неограниченный доступ к данным приложения — не передавайте его третьим лицам.","Для получения событий в реальном времени есть вебхуки и Realtime Services API."],"slug":"carrot-quest","version":2,"updatedAt":"2026-10-24T17:05:32.132Z","sources":[{"title":"Web API — общее","url":"https://developers.carrotquest.io/webapi/","kind":"research","addedAt":"2026-10-17T07:39:29.469Z"},{"title":"Авторизация","url":"https://developers-v2.carrotquest.io/webapi/auth/","kind":"research","addedAt":"2026-10-17T07:39:29.469Z"},{"title":"Ограничения","url":"https://developers-v2.carrotquest.io/webapi/limits/","kind":"research","addedAt":"2026-10-17T07:39:29.469Z"},{"title":"Методы Web API","url":"https://developers-v2.carrotquest.io/webapi/endpoints/","kind":"research","addedAt":"2026-10-17T07:39:29.469Z"},{"title":"Свойства пользователя","url":"https://developers-v2.carrotquest.io/webapi/endpoints/users/props/","kind":"research","addedAt":"2026-10-17T07:39:29.469Z"},{"title":"Запись события","url":"https://developers-v2.carrotquest.io/webapi/endpoints/users/events/post/","kind":"research","addedAt":"2026-10-17T07:39:29.469Z"},{"title":"Ручное сообщение","url":"https://developers-v2.carrotquest.io/webapi/endpoints/users/sendmessage/","kind":"research","addedAt":"2026-10-17T07:39:29.469Z"},{"title":"Данные пользователя","url":"https://developers-v2.carrotquest.io/webapi/endpoints/users/user/","kind":"research","addedAt":"2026-10-17T07:39:29.469Z"},{"title":"Диалоги приложения","url":"https://developers-v2.carrotquest.io/webapi/endpoints/apps/conversations/","kind":"research","addedAt":"2026-10-17T07:39:29.469Z"},{"title":"Вставленный текст","url":"","kind":"import","addedAt":"2026-10-17T07:39:29.469Z"},{"title":"scenarios-carrot-quest.md","url":"","kind":"import","addedAt":"2026-10-24T17:05:23.876Z"}],"logoUrl":null}