API v2 — документация
key и action, что совместимо с большинством готовых скриптов реселлера. Полную совместимость с конкретным сторонним скриптом нужно проверять отдельно.1. Начало работы
Три шага до первого запроса: получите ключ API в личном кабинете, отправьте запрос на единый адрес /api/v2 с обязательными параметрами key и action, разберите JSON-ответ. Валюта счёта — рубли (RUB).
Базовый URL
Все методы вызываются относительно базового URL. Этот же адрес сервер отдаёт в поле api_url ответа GET /api/config.
Первый запрос — проверка баланса:
curl -s "https://api.papasmm.com/api/v2" \
-d key=bc_live_xxxxxxxxxxxxxxxxxx \
-d action=balance
2. Аутентификация
Аутентификация выполняется по персональному ключу API формата bc_live_…. Ключ выдаётся в личном кабинете после регистрации и передаётся в каждом запросе параметром key.
Ключ можно перевыпустить в кабинете (старый при этом перестаёт действовать). Храните ключ в тайне: он даёт полный доступ к заказам и балансу аккаунта.
Где взять ключ:
- Зарегистрируйтесь и войдите в личный кабинет.
- Откройте раздел с API-ключом — там отображается ключ вида
bc_live_xxxxxxxxxxxxxxxxxx. - При необходимости нажмите «Перевыпустить», чтобы заменить ключ.
3. Формат запросов и ответов
Все методы вызываются по одному адресу /api/v2. Запрос можно отправить как GET (параметры в query-строке), так и POST (тело в application/x-www-form-urlencoded или application/json). Обязательные для всех запросов параметры: key (ключ API) и action (имя метода).
Ответ всегда в формате JSON. Успешный ответ содержит поля метода; ошибка возвращается объектом с полем error и текстом причины. Денежные значения — в рублях (валюта счёта RUB), в ответах присутствует поле currency; числовые поля (rate, min, max, charge, start_count, remains) приходят строками. Скидка уровня аккаунта (зависит от суммы заказов за последние 60 дней) применяется автоматически к фактическому списанию при add — одинаково в кабинете и через API; rate в services — базовая цена без скидки.
Интерфейс панели может дополнительно показывать суммы в долларах по текущему курсу — это справочный эквивалент для удобства; расчёты и списания всегда идут в рублях. Курс и округление ориентировочны, API не гарантирует бухгалтерскую точность отображаемого $-эквивалента.
4. Методы
Единый эндпоинт поддерживает действия ниже. Столбец «Статус» показывает реальную готовность метода; экспериментальные и планируемые возможности вынесены в раздел «Ограничения».
| Метод (action) | Назначение | Статус |
|---|---|---|
services |
Список услуг | ✅ Работает |
add (Default) |
Создание заказа (обычный) | ✅ Работает |
add (Drip-feed) |
Заказ с повторами runs/interval | ✅ Работает |
add (Custom Comments) |
Заказ со своими комментариями | Планируется |
add (Mentions) |
Заказ с упоминаниями | Планируется |
status |
Статус заказа | ✅ Работает |
status (multiple) |
Статус нескольких заказов | ✅ Работает |
balance |
Баланс | ✅ Работает |
refill |
Автодолив | ✅ Работает |
refill_status |
Статус долива | базово |
cancel |
Отмена заказа | ✅ Работает |
5. Справочник методов
Полное описание каждого метода: параметры, пример запроса (curl) и фактический формат ответа. Идентификаторы в примерах иллюстративны.
action=services
✅ Работает
Список услуг
Возвращает полный каталог услуг с ценами, минимальным и максимальным объёмом. Цена (rate) указывается за 1000 единиц (кроме штучных услуг, где max = 1). Поля refill и cancel зависят от конкретной услуги (нормализованная модель): refill = true, если услуга с пополнением/гарантией (теги вида [Пополнение/Refill/Guarantee], NO DROP), иначе false; cancel = true, пока заказ можно отменить до старта. Значение min — это минимальный объём с учётом минимальной стоимости заказа minOrderRub (см. /api/config → min_order_rub): если объём поля меньше, он поднимается так, чтобы сумма заказа была не ниже minOrderRub. Услуги с конфликтом данных помечены available: false и отдают сырые min/max — к заказу они не принимаются (ответ Service temporarily unavailable (data conflict)).
Уже работает в панели (по сессии-cookie, без ключа): GET /api/catalog — отдаёт каталог (платформы → услуги) без ключа.
Параметры
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
key |
string | да | Ключ API. |
action |
string | да | Значение: services. |
Пример запроса (curl)
curl -s "https://api.papasmm.com/api/v2" \
-d key=bc_live_xxxxxxxxxxxxxxxxxx \
-d action=services
Пример ответа
[
{
"service": 1001,
"name": "Instagram Followers [Refill 30D] [Max: 100K]",
"type": "Default",
"category": "Instagram — Followers",
"rate": "130.5",
"min": "115",
"max": "100000",
"refill": true,
"cancel": true,
"dripfeed": true,
"currency": "RUB",
"available": true
},
{
"service": 1002,
"name": "Instagram Likes",
"type": "Default",
"category": "Instagram — Likes",
"rate": "48.0",
"min": "313",
"max": "50000",
"refill": false,
"cancel": true,
"dripfeed": true,
"currency": "RUB",
"available": true
},
{
"service": 1003,
"name": "YouTube Views (broken data)",
"type": "Default",
"category": "YouTube — Views",
"rate": "90.0",
"min": "1000",
"max": "20",
"refill": false,
"cancel": true,
"dripfeed": true,
"currency": "RUB",
"available": false
}
]
action=add
✅ Работает
Создание заказа
Создаёт заказ на выбранную услугу. Набор параметров зависит от типа заказа. Реализованы типы Default и Drip-feed (параметры runs/interval); типы Custom Comments и Mentions пока не реализованы (см. раздел «Ограничения»). Стоимость сразу списывается с баланса; защиты от двойного заказа (идемпотентности) пока нет — см. «Ограничения».
Уже работает в панели (по сессии-cookie, без ключа): POST /api/order (по сессии) — создаёт заказ; реально принимает drip: {runs, interval} для Drip-feed. Списывает стоимость с внутреннего баланса.
Параметры
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
key |
string | да | Ключ API. |
action |
string | да | Значение: add. |
service |
int | да | ID услуги из метода services. |
link |
string | да | Публичная ссылка на объект продвижения (http(s)://…). |
quantity |
int | да | Объём заказа (в пределах min–max услуги). |
runs |
int | нет | Drip-feed: число повторов (запусков). |
interval |
int | нет | Drip-feed: интервал между повторами в минутах. |
comments |
string | нет | Custom Comments: список комментариев, по одному в строке (\n). Планируется. |
usernames |
string | нет | Mentions: список упоминаемых аккаунтов через запятую. Планируется. |
Пример запроса (curl)
# Default
curl -s "https://api.papasmm.com/api/v2" \
-d key=bc_live_xxxxxxxxxxxxxxxxxx \
-d action=add \
-d service=1001 \
-d link=https://instagram.com/example \
-d quantity=1000
# Drip-feed (повторы) — runs + interval
curl -s "https://api.papasmm.com/api/v2" \
-d key=bc_live_xxxxxxxxxxxxxxxxxx \
-d action=add -d service=1002 \
-d link=https://youtube.com/watch?v=xxxx \
-d quantity=1000 -d runs=10 -d interval=30
# Custom Comments (планируется) — comments, по одному в строке
curl -s "https://api.papasmm.com/api/v2" \
-d key=bc_live_xxxxxxxxxxxxxxxxxx \
-d action=add -d service=1001 \
-d link=https://instagram.com/p/xxxx \
--data-urlencode $'comments=Отличный пост!\nОгонь\nЖду ещё'
# Mentions (планируется) — usernames
curl -s "https://api.papasmm.com/api/v2" \
-d key=bc_live_xxxxxxxxxxxxxxxxxx \
-d action=add -d service=1001 \
-d link=https://instagram.com/p/xxxx \
-d usernames=user_a,user_b,user_c
Пример ответа
# успех — ID созданного заказа
{ "order": 23501 }
# ошибка (недостаточно средств на балансе)
{ "error": "Not enough funds on the balance" }
action=status
✅ Работает
Статус заказа
Возвращает текущее состояние одного заказа: потраченную сумму, стартовый счётчик, остаток и статус. Значения поля status: Pending, In progress, Completed, Partial, Canceled.
Уже работает в панели (по сессии-cookie, без ключа): GET /api/orders/:id (по сессии) — отдаёт статус одного заказа (start_count, delivered, remaining, percent, status).
Параметры
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
key |
string | да | Ключ API. |
action |
string | да | Значение: status. |
order |
int | да | ID заказа, полученный в ответе add. |
Пример запроса (curl)
curl -s "https://api.papasmm.com/api/v2" \
-d key=bc_live_xxxxxxxxxxxxxxxxxx \
-d action=status \
-d order=23501
Пример ответа
{
"charge": "15.32",
"start_count": "1273",
"status": "Pending",
"remains": "1000",
"currency": "RUB"
}
action=status (multiple)
✅ Работает
Статус нескольких заказов
Возвращает состояние нескольких заказов за один запрос. ID заказов перечисляются через запятую в параметре orders. Несуществующий ID возвращается объектом { "error": "Incorrect order ID" } внутри своего ключа.
Уже работает в панели (по сессии-cookie, без ключа): GET /api/orders (по сессии) — отдаёт весь список заказов пользователя (выборки по ID пока нет).
Параметры
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
key |
string | да | Ключ API. |
action |
string | да | Значение: status. |
orders |
string | да | ID заказов через запятую (например 23501,23502). |
Пример запроса (curl)
curl -s "https://api.papasmm.com/api/v2" \
-d key=bc_live_xxxxxxxxxxxxxxxxxx \
-d action=status \
-d orders=23501,23502
Пример ответа
{
"23501": { "charge": "15.32", "start_count": "1273", "status": "Completed", "remains": "0", "currency": "RUB" },
"23502": { "error": "Incorrect order ID" }
}
action=balance
✅ Работает
Баланс
Возвращает текущий баланс аккаунта и валюту.
Уже работает в панели (по сессии-cookie, без ключа): GET /api/me (по сессии) — отдаёт balance_rub и balance_usd.
Параметры
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
key |
string | да | Ключ API. |
action |
string | да | Значение: balance. |
Пример запроса (curl)
curl -s "https://api.papasmm.com/api/v2" \
-d key=bc_live_xxxxxxxxxxxxxxxxxx \
-d action=balance
Пример ответа
{
"balance": "34.68",
"currency": "RUB"
}
action=refill
✅ Работает
Автодолив (refill)
Запрашивает долив для завершённого или частично выполненного заказа (восполнение отвалившихся показателей). Возвращает идентификатор долива. Важно: сейчас идентификатор долива совпадает с ID заказа — отдельные ID запросов на долив планируются (см. «Ограничения»).
Уже работает в панели (по сессии-cookie, без ключа): POST /api/orders/:id/refill (по сессии) — перезапускает долив для заказа в статусе completed/partial.
Параметры
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
key |
string | да | Ключ API. |
action |
string | да | Значение: refill. |
order |
int | нет | ID одного заказа для долива (или используйте orders). |
orders |
string | нет | ID нескольких заказов через запятую (вместо order). |
Пример запроса (curl)
# один заказ
curl -s "https://api.papasmm.com/api/v2" \
-d key=bc_live_xxxxxxxxxxxxxxxxxx \
-d action=refill \
-d order=23501
# несколько заказов
curl -s "https://api.papasmm.com/api/v2" \
-d key=bc_live_xxxxxxxxxxxxxxxxxx \
-d action=refill \
-d orders=23501,23502
Пример ответа
# один заказ (order=ID) — идентификатор долива (= ID заказа)
{ "refill": 23501 }
# несколько (orders=ID,ID) — массив по каждому заказу
[
{ "order": "23501", "refill": 23501 },
{ "order": "23502", "error": "Refill is not available for this order" }
]
action=refill_status
базово
Статус долива
Возвращает состояние ранее запрошенного долива. Реализовано базово: отдаётся только Completed либо In progress, по ID (параметр refill или order; сейчас это один и тот же ID заказа).
Параметры
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
key |
string | да | Ключ API. |
action |
string | да | Значение: refill_status. |
refill |
int | нет | ID долива из метода refill (или укажите order). |
order |
int | нет | ID заказа (альтернатива параметру refill). |
Пример запроса (curl)
curl -s "https://api.papasmm.com/api/v2" \
-d key=bc_live_xxxxxxxxxxxxxxxxxx \
-d action=refill_status \
-d refill=23501
Пример ответа
{ "status": "Completed" }
# долив ещё выполняется
{ "status": "In progress" }
action=cancel
✅ Работает
Отмена заказа
Отменяет заказ (если он ещё не завершён и не отменён) с возвратом стоимости невыполненной части на баланс. Возвращает массив результатов по каждому ID.
Уже работает в панели (по сессии-cookie, без ключа): POST /api/orders/:id/cancel (по сессии) — отменяет не завершённый заказ и возвращает на баланс стоимость остатка.
Параметры
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
key |
string | да | Ключ API. |
action |
string | да | Значение: cancel. |
orders |
string | да | ID заказов для отмены через запятую (можно один). |
Пример запроса (curl)
curl -s "https://api.papasmm.com/api/v2" \
-d key=bc_live_xxxxxxxxxxxxxxxxxx \
-d action=cancel \
-d orders=23501,23502
Пример ответа
[
{ "order": "23501", "cancel": 1 },
{ "order": "23502", "cancel": { "error": "Order can not be canceled" } }
]
6. Ограничения и экспериментальное
Ниже — то, что реализовано частично или пока только планируется. Не используйте эти возможности как готовые.
- Планируется Custom Comments. Тип заказа «свои комментарии» (параметр
commentsвadd) пока не реализован —addпринимает только Default и Drip-feed. - Планируется Mentions. Тип заказа «упоминания» (параметр
usernames) пока не реализован. - базово refill_status. Отдаётся упрощённо: только
CompletedилиIn progress. Отдельного детального статуса долива пока нет. - Планируется Идентификатор долива. Сейчас поле
refillсовпадает с ID заказа; отдельные ID запросов на долив планируются. - Планируется Идемпотентность
add. Защиты от двойного заказа нет: повторныйaddс теми же параметрами создаст новый заказ и повторно спишет средства. Ключ идемпотентности планируется. - Поведение при таймауте. Если запрос
addзавершился сетевым таймаутом, заказ мог быть уже создан на сервере. Не повторяйте запрос вслепую: сначала проверьтеbalanceи свежийstatus, и только затем при необходимости повторяйте.
7. Ошибки
Ошибки возвращаются объектом с полем error и текстом причины. Ниже — фактические тексты ошибок, которые отдаёт API v2.
| Текст ошибки | Когда возникает |
|---|---|
Incorrect API key |
Параметр key не передан или ключ недействителен. |
Incorrect request |
Неизвестное значение action или не переданы обязательные параметры метода. |
Incorrect service ID |
Услуга с таким service не найдена (ответ метода add). |
Quantity out of range (min N, max M) |
Параметр quantity вне диапазона min–max услуги (ответ метода add). |
Incorrect link |
Параметр link отсутствует или не является ссылкой http(s)://… (ответ метода add). |
Order amount below the minimum (N RUB) |
Стоимость заказа ниже минимальной суммы заказа (ответ метода add). |
Service temporarily unavailable (data conflict) |
У услуги конфликт данных (например, поле min больше max): такая услуга помечена available: false в services и не принимается к заказу (ответ метода add). |
Not enough funds on the balance |
Недостаточно средств на балансе для создания заказа (ответ метода add). |
Incorrect order ID |
Заказ с таким ID не найден (методы status, refill). В ответе status с несколькими заказами возвращается внутри объекта соответствующего ID. |
Refill is not available for this order |
Долив недоступен: заказ не в статусе Completed/Partial (ответ метода refill). |
Incorrect refill ID |
Долив/заказ с таким ID не найден (ответ метода refill_status). |
Order can not be canceled |
Заказ нельзя отменить (например, уже завершён или отменён). В ответе cancel возвращается в поле cancel соответствующего заказа. |
Internal error |
Внутренняя ошибка сервера при обработке запроса. |
8. История изменений
Кратко о версиях публичного API.
- v2 — текущая. Публичный key-API:
services,add(Default, Drip-feed),status(один и несколько),balance,refill,cancel. Валюта счёта — RUB, числовые значения строками.refill_status— базово. - v2.1 — планируется. Типы заказа Custom Comments и Mentions, ключ идемпотентности для
add, отдельные ID запросов на долив и детальныйrefill_status.

