HTTP API для автоматизации заказов. Совместимо с форматом Perfect Panel и производными: один endpoint, параметры key и action, ответ — JSON, HTTP-статус всегда 200.
Аутентификация
В каждом запросе — параметр key с вашим ключом (значение доступно выше после входа). Ключ хранится в зашифрованном виде.
Базовый URL
https://smmtrand.ru/api/v2
GET и POST равнозначны. POST — с типом application/x-www-form-urlencoded. service — числовой id услуги; order — числовой номер заказа.
Методы
action=services
Список доступных услуг с ценой и лимитами.
Параметр
Обяз.
Описание
key
да
ваш ключ API
action
да
= services
Запрос
POST https://smmtrand.ru/api/v2
key=<KEY>&action=services
fields присутствует только у услуг с настраиваемыми полями заказа — их значения передаются в add дополнительными параметрами (по key).
type — одна из 16 стандартных строк PerfectPanel (Default, Web Traffic, Subscriptions, Invites from Groups, Comment Replies, Poll, Comment Likes, Custom Comments Package, Mentions Media Likers, Mentions User Followers, Mentions Hashtag, Mentions Custom List, Mentions with Hashtags, Mentions, Custom Comments, Package) — набор параметров add зависит от неё, см. ниже.
action=add
Создать заказ.
Параметр
Обяз.
Описание
key
да
ваш ключ API
action
да
= add
service
да
id услуги из services
link
да
ссылка на цель; не нужна для услуг из стока и услуг без ссылки
quantity
да
целое количество в пределах min–max
idempotency_key
нет
ваш уникальный id запроса — защита от дублей при ретраях
Запрос
POST https://smmtrand.ru/api/v2
key=<KEY>&action=add&service=SERVICE_ID&link=https://...&quantity=1000
Ответ
{ "order": 23501 }
Повтор с тем же idempotency_key (или тот же набор параметров в ту же минуту) вернёт id существующего заказа, второго списания не будет.
action=status
Статус заказа — одиночный (order) или массовый (orders, до 100).
Параметр
Обяз.
Описание
key
да
ваш ключ API
action
да
= status
order
нет
номер одного заказа
orders
нет
номера через запятую, до 100
Запрос
POST https://smmtrand.ru/api/v2
key=<KEY>&action=status&order=23501
key=<KEY>&action=status&orders=23501,23502
Только для заказов из стока; для остальных — ошибка "No content available for this order".
Ошибки
При ошибке тело — JSON-объект с единственным полем error (текст), HTTP-статус всё равно 200. Частые причины: неверный ключ, нехватка средств, количество вне диапазона min/max, неизвестный service, заказ не найден или не ваш.
{ "error": "Not enough funds on balance" }
Пример (curl)
# список услуг
curl "https://smmtrand.ru/api/v2?key=<KEY>&action=services"
# создать заказ
curl -X POST "https://smmtrand.ru/api/v2" \
-d "key=<KEY>" -d "action=add" \
-d "service=SERVICE_ID" \
-d "link=https://instagram.com/username" \
-d "quantity=1000"
# статус заказа
curl "https://smmtrand.ru/api/v2?key=<KEY>&action=status&order=23501"