name: marketcall description: > Manage MarketCall affiliate account via CLI: browse offers, create campaigns, check calls & their statuses, manage leads, download call recordings, track expenses, and monitor broker requests. Use when staff need to work with the MarketCall dashboard programmatically instead of the web UI.
MarketCall — Skill для сотрудников
CLI-обёртка над Marketcall Affiliate API. Заменяет большинство действий, которые сотрудники выполняют в личном кабинете https://www.marketcall.ru.
Установка и настройка
# Сборка из исходников
cd ~/sandbox/marketcall-cli
go build -o ./bin/marketcall ./cmd/marketcall
# Или использовать готовый бинарник
~/sandbox/marketcall-cli/bin/marketcall --help
# Настройка API-ключа (один раз)
export MARKETCALL_API_KEY="<ваш-ключ>"
# Или через конфиг:
marketcall config init --api-key "<ваш-ключ>"
# Конфиг сохранится в ~/.config/marketcall/config.json
Бинарник: ~/sandbox/marketcall-cli/bin/marketcall
API Base: https://www.marketcall.ru/api/v1/affiliate
Авторизация: Header X-Api-Key (по умолчанию) или query-param api_key
Что умеет CLI (маппинг на ЛК)
📋 Офферы (Личный кабинет → «Офферы по звонкам / лидам»)
Просмотр доступных офферов, фильтрация по категории, региону, типу.
# Все активные офферы (по умолчанию state=1)
marketcall offers list
# Все офферы включая неактивные
marketcall offers list --all-states
# Офферы по категории или региону
marketcall offers list --category 5 --region 1
# Только конкретные офферы по ID
marketcall offers list --id 5202,1137
# Детали конкретного оффера
marketcall offers get 5202
# Проверить возможность приёма звонков на оффер
marketcall offers incoming-call-ability 5202
# Справочники
marketcall offers regions # Все регионы
marketcall offers categories # Все категории
Алиасы: marketcall offer ..., marketcall campaigns ... → то же что offers
📞 Звонки (ЛК → «Звонки»)
Основной раздел для проверки входящих звонков и их статусов.
# Звонки за сегодня (по умолчанию --last-days=1)
marketcall calls list
# Звонки за последние 7 дней
marketcall calls list --last-days 7
# Звонки за конкретный период
marketcall calls list --date-from "2026-02-01 00:00:00" --date-to "2026-02-14 23:59:59"
# Фильтр по номеру аренды
marketcall calls list --rent-number "+7 71111000234"
# Фильтр по статусу звонка
marketcall calls list --state 7 --state 8 --state 10 # только ключевые
# Количество звонков за период
marketcall calls count --last-days 7
# Скачать запись звонка (WAV)
marketcall calls record 10042986 --out ./call-10042986.wav
# Все звонки без ограничения по дате (осторожно — много данных!)
marketcall calls list --all-time --max-pages 10
Статусы звонков (из ЛК):
| Статус | Описание |
|---|---|
| Холд | Целевой звонок, оплачивается |
| Неключевой | Нецелевой, не оплачивается |
| No connect | Не удалось соединить |
| Непервичный | Повторный звонок, не оплачивается |
| Отклонен | Отклонён рекламодателем |
🏗 Кампании (ЛК → «Мои кампании»)
Создание и управление кампаниями (программами) на офферы.
# Список всех программ (кампаний)
marketcall programs list
# Только активные программы
marketcall programs list --state 1
# Детали программы
marketcall programs get 306703
# Создать новую кампанию (подключиться к офферу)
marketcall programs create --body '{"offer_id": 5202}'
# Превью без отправки
marketcall programs create --body '{"offer_id": 5202}' --dry-run
# Отменить кампанию
marketcall programs cancel 306703
👥 Лиды (ЛК → «Лиды»)
marketcall leads list
marketcall leads get 12345
marketcall leads create --body '{"...": "..."}'
💰 Расходы (ЛК → «Расходы»)
# Расходы за последние 30 дней (по умолчанию)
marketcall expense list
# За последнюю неделю
marketcall expense list --last-days 7
# Категории расходов
marketcall expense categories list
# Создать расход
marketcall expense create --field category_id=1 --field amount=500
📱 Номера (ЛК → «Номера»)
# Все арендованные номера
marketcall phones list
# Только свободные (без привязки к программе)
marketcall phones list --without-programs 1
📢 Промо-материалы (ЛК → «Проверка материалов»)
# Все промо-материалы
marketcall promo list
# По конкретной программе или офферу
marketcall promo list --program 306703
marketcall promo list --offer 5202
🔀 Каналы (ЛК → каналы трафика)
marketcall channels list
marketcall channels get 123
marketcall channels create --body '{"name": "Yandex Direct"}'
🏢 Брокер (ЛК → «Брокер»)
# Заявки брокера за последние 7 дней
marketcall broker leads list
# По конкретной программе
marketcall broker leads list --program 306703
# По номеру телефона
marketcall broker leads list --phone-number "+79001234567"
# Детали заявки
marketcall broker leads get 456
# Создать / удалить заявку
marketcall broker leads create --body '{"...": "..."}'
marketcall broker leads delete 456
🔧 Lead Pings
marketcall lead-pings create --body '{"...": "..."}'
Общие флаги
| Флаг | Описание |
|---|---|
--json |
JSON вывод (для скриптов и парсинга) |
--profile <name> |
Профиль из конфига (для мульти-аккаунта) |
--page N |
Конкретная страница (отключает --all) |
--per-page N |
Записей на страницу (макс 100) |
--all |
Все страницы (включён по умолчанию) |
--max-pages N |
Лимит запрашиваемых страниц |
--date-from / --date-to |
Период (формат: Y-m-d H:i:s) |
--last-days N |
Последние N дней |
--all-time |
Без ограничения по дате |
--dry-run / -n |
Показать запрос без отправки |
-v / --verbose |
Подробные ошибки |
Escape Hatch (любой API-эндпоинт)
Для эндпоинтов, не покрытых подкомандами:
marketcall raw GET /calls --param date_from="2026-02-01 00:00:00"
marketcall raw POST /leads --body @payload.json
Типичные сценарии сотрудников
1. «Есть ли новые офферы?»
marketcall offers list --all-states | head -20
# или в JSON для парсинга:
marketcall offers list --json | jq '.[] | {id, name: .title, state: .state}'
2. «Проверить конкретный звонок по ID»
# Через фильтр в calls list или raw:
marketcall raw GET /calls/10042986 --json
3. «Сколько звонков за неделю и сколько заработали?»
marketcall calls count --last-days 7 --json
marketcall calls list --last-days 7 --json | jq '[.[].payout // 0] | add'
4. «Создать кампанию на новый оффер»
# 1. Найти оффер
marketcall offers list --json | jq '.[] | select(.title | test("Квартал"))'
# 2. Проверить возможность приёма звонков
marketcall offers incoming-call-ability 10988
# 3. Подключиться
marketcall programs create --body '{"offer_id": 10988}' --dry-run
marketcall programs create --body '{"offer_id": 10988}'
5. «Скачать запись звонка для прослушивания»
marketcall calls record 10042986 --out ~/Downloads/call-10042986.wav
6. «Статус звонка — почему отклонён?»
marketcall raw GET /calls/10041940 --json | jq '{status, reject_reason, duration}'
Структура личного кабинета (для справки)
Личный кабинет MarketCall (/affiliate/) содержит следующие разделы:
| Раздел ЛК | CLI-команда | Описание |
|---|---|---|
| Рабочий стол | — | Дашборд (сводка, CLI не нужен) |
| Офферы по звонкам | offers list --type 1 |
Офферы с оплатой за звонки |
| Офферы по лидам | offers list --type 2 |
Офферы с оплатой за лиды |
| Мои кампании (187) | programs list |
Все подключённые кампании |
| Проверка материалов | promo list |
Промо-материалы на модерации |
| Звонки (19,252) | calls list |
Журнал всех звонков |
| Лиды | leads list |
Журнал лидов |
| Брокер | broker leads list |
Заявки брокера |
| Отчёты | calls list + фильтры |
По кампаниям/офферам/дням/UTM |
| Расходы | expense list |
Траты по расходным категориям |
| Номера (186 свободных) | phones list |
Арендованные номера |
| Баланс | — (виден в ЛК: 816 166 ₽) | Баланс и выплаты |
| Аналитика | — | Только в web-интерфейсе |
Дефолты по датам (важно!)
CLI применяет безопасные дефолты чтобы не грузить весь массив данных:
| Команда | Дефолт |
|---|---|
calls list / calls count |
Сегодня (--last-days=1) |
expense list |
30 дней |
broker leads list |
7 дней |
offers list |
Только активные (state=1) |
Для снятия ограничений: --all-time или явные --date-from / --date-to.
Менеджер аккаунта
- Имя: Максим Евсюков
- Email: maxim.evs@marketcall.ru
- Telegram: @maxevsk
- Время работы: Пн-Пт, 09:00–18:00