Подключение: от ключа до первого проекта
Семь шагов, полчаса работы. Нужен аккаунт на сайте и немного денег на балансе для первого проекта.
Зарегистрируйтесь
Аккаунт на boosttools.ru — тот же, что для кабинета. Отдельной заявки на API не нужно.
Пополните баланс
API списывает с того же баланса, что и кабинет. Цены те же, скидок и наценок для API нет.
Выпустите ключ
Кабинет → меню аккаунта → «API» → «Выпустить ключ». Ключ показывается один раз: сохраните его в переменной окружения на сервере.
Проверьте связь
GET /ping с заголовком Authorization: Bearer <ключ>. Ответ 200 — всё работает; 401 — ключ не дошёл.
Возьмите площадку из каталога
GET /catalog отдаёт marketKey, действия и границы объёма. Не храните их константами у себя — каталог меняется.
Посчитайте и запустите
POST /projects/price → POST /projects → POST /projects/{id}/pay с expectedPrice. Цена изменилась — 409, деньги целы.
Принимайте отчёты
Раз в несколько минут GET /tasks?status=ready. Не ответили до acceptUntil — отчёт примется сам.
Справочник методов
Адрес: https://boosttools.ru/v1. Ключ — в заголовке Authorization: Bearer <ключ>. Тела и ответы — JSON.
Начало
Сохраните ключ в переменную окружения и проверьте связь. Ответ 401 — ключ не дошёл или отозван.
GET /ping
Проверка ключа.
export KEY=bt_live_…
curl -s https://boosttools.ru/v1/ping -H "Authorization: Bearer $KEY"GET /account
Баланс, суточные лимиты на проекты и задания, лимит запросов.
curl -s https://boosttools.ru/v1/account -H "Authorization: Bearer $KEY"GET /catalog
Площадки (marketKey), их действия и границы объёма. Значения для создания проекта берите отсюда, а не держите у себя константами.
curl -s https://boosttools.ru/v1/catalog -H "Authorization: Bearer $KEY"Проекты
Цену считает только сервер: в теле создания и оплаты цены нет. Проект создаётся черновиком и ничего не стоит до оплаты.
POST /projects/price
Сколько будет стоить состав работ.
curl -s https://boosttools.ru/v1/projects/price -H "Authorization: Bearer $KEY" -H 'Content-Type: application/json' \
-d '{"marketKey":"yandexseo:people","days":5,"activities":[{"type":"MAIN.INFO","count":20}]}'POST /projects
Создать черновик. Лишнее поле в теле — отказ с его именем, а не тихий пропуск.
curl -s https://boosttools.ru/v1/projects -H "Authorization: Bearer $KEY" -H 'Content-Type: application/json' -d '{
"marketKey":"yandexseo:people","days":5,"title":"Кофейня",
"link":"https://example.com","city":"Москва",
"searchPhrases":["кофе с собой"],
"activities":[{"type":"MAIN.INFO","count":20}]
}'POST /projects/{id}/pay
Оплатить с баланса и запустить. expectedPrice необязателен: если цена другая — 409 price_changed, деньги не списываются. Не хватает денег — 402.
curl -s https://boosttools.ru/v1/projects/990269/pay -H "Authorization: Bearer $KEY" -H 'Content-Type: application/json' -d '{"expectedPrice":480}'GET /projects
Список проектов. Параметры: scope (active, drafts, archive), limit, offset.
curl -s "https://boosttools.ru/v1/projects?scope=active" -H "Authorization: Bearer $KEY"GET /projects/{id}
Карточка проекта: статус, пауза, прогресс, цена.
curl -s https://boosttools.ru/v1/projects/990269 -H "Authorization: Bearer $KEY"DELETE /projects/{id}
Удалить неоплаченный черновик.
curl -s -X DELETE https://boosttools.ru/v1/projects/990269 -H "Authorization: Bearer $KEY"Управление запущенным проектом
POST /projects/{id}/pause
Пауза: новые задания исполнителям не уходят, взятые доделываются.
curl -s -X POST https://boosttools.ru/v1/projects/990269/pause -H "Authorization: Bearer $KEY"POST /projects/{id}/resume
Продолжить: снимает паузу; остановленный проект перезапускается так же, как кнопка «Возобновить» в кабинете.
curl -s -X POST https://boosttools.ru/v1/projects/990269/resume -H "Authorization: Bearer $KEY"POST /projects/{id}/boost
Поднять ставку исполнителю: extraPrice — надбавка к цепочке в рублях (новое значение, а не прибавка; шаг — не меньше +10 ₽). Без taskIds — ко всем заданиям в плане и в работе, кроме отзывов. Разницу списывает сервер; задания в работе пересоздаются с новой ставкой.
curl -s https://boosttools.ru/v1/projects/990269/boost -H "Authorization: Bearer $KEY" -H 'Content-Type: application/json' -d '{"extraPrice":10}'POST /projects/{id}/cancel
Остановить проект совсем. Неотправленные задания возвращаются на баланс, взятые доделываются.
curl -s -X POST https://boosttools.ru/v1/projects/990269/cancel -H "Authorization: Bearer $KEY"Задания и отчёты
Вебхуков нет — состояние узнают опросом, раз в несколько минут достаточно. status=ready — отчёты, которые ждут решения; после acceptUntil отчёт принимается сам.
GET /tasks
Задания проекта. Параметры: projectId, status, limit, offset.
curl -s "https://boosttools.ru/v1/tasks?projectId=990269&status=ready" -H "Authorization: Bearer $KEY"GET /tasks/{id}
Одно задание с отчётом исполнителя (answer, questions).
curl -s https://boosttools.ru/v1/tasks/992632 -H "Authorization: Bearer $KEY"POST /tasks/{id}/approve
Принять отчёт — исполнитель получает оплату.
curl -s -X POST https://boosttools.ru/v1/tasks/992632/approve -H "Authorization: Bearer $KEY"POST /tasks/{id}/reject
Вернуть на доработку тому же исполнителю. comment обязателен — его читает исполнитель.
curl -s https://boosttools.ru/v1/tasks/992633/reject -H "Authorization: Bearer $KEY" -H 'Content-Type: application/json' -d '{"comment":"Нет ответа на второй вопрос."}'POST /tasks/{id}/replace
Отдать задание другому исполнителю. comment обязателен.
curl -s https://boosttools.ru/v1/tasks/992634/replace -H "Authorization: Bearer $KEY" -H 'Content-Type: application/json' -d '{"comment":"Отчёт не по нашему сайту."}'GET /reports/export
Все отчёты файлом (format=csv). Не чаще раза в 30 секунд.
curl -s "https://boosttools.ru/v1/reports/export?format=csv" -H "Authorization: Bearer $KEY" -o reports.csvОшибки
Ответ с ошибкой — всегда {"error":{"code","message"}}. Ветвитесь по code, message показывайте человеку.
validation_failed · 400Запрос неверен — исправьте, повтор не поможет.unauthorized · 401Нет ключа, ключ отозван или доступ к API снят.insufficient_funds · 402Не хватает денег на балансе.not_found · 404Нет такого объекта или он не ваш.conflict, price_changed, project_not_payable · 409Состояние изменилось: перечитайте объект.rate_limited · 429Больше 120 запросов в минуту. Ждите Retry-After.internal · 500Сбой у нас — повторите позже.Повторы
Повтор POST /projects создаёт второй проект. Оборвалась связь на создании — сначала GET /projects?scope=drafts. Повтор оплаты безопасен: второй раз денег не спишет и ответит 409 с текущим статусом.
Ключ — за минуту, в кабинете
Бесплатно и без заявок. Платите только за запущенные проекты — с того же баланса, по тем же ценам.

