Перейти к содержимому
4SNS PLUS

SMM панель API: документация

SMM панель 4SNS PLUS принимает заказы из вашего Telegram бота или собственной панели через стандартный API v2.

Что такое API SMM панели?

API SMM панели позволяет программе получать список услуг, создавать заказы и проверять статус заказов и баланс без захода на сайт. 4SNS PLUS поддерживает стандартный формат API v2, который используют многие панели и боты, поэтому код, уже подключенный к другой панели, заработает сразу после замены URL и ключа.

Цены и баланс в API такие же, как на сайте. rate в ответе services равен цене за 1,000 (в долларах США) из прайса, а заказы через add списываются с баланса точно так же, как заказы на сайте, и тоже видны в истории заказов в личном кабинете. Суммы по отмененным и частичным заказам возвращаются на тот же баланс.

Основное

Адрес (endpoint)https://4snsplus.com/api/v2
МетодPOST
Формат запросаПоля формы (application/x-www-form-urlencoded, multipart) или тело JSON
ОтветJSON; ошибки тоже приходят с HTTP 200 и полем error
АвторизацияПараметр key (ваш API ключ) в каждом запросе
Лимит запросов300 запросов в минуту на один ключ
ВалютаДоллар США (USD)

Пример запроса

curl -X POST https://4snsplus.com/api/v2 \
  -d key=YOUR_API_KEY \
  -d action=balance
import requests

r = requests.post("https://4snsplus.com/api/v2", data={
    "key": "YOUR_API_KEY",
    "action": "add",
    "service": 2210,
    "link": "https://t.me/yourchannel",
    "quantity": 1000,
})
print(r.json())  # {"order": 31877} or {"error": "..."}

Как получить API ключ?

Как только первое пополнение зачислено на баланс, вы можете создать API ключ в разделе API ключ личного кабинета. Ключ показывается только один раз при создании, поэтому сохраните его в надежном месте. При создании нового ключа предыдущий сразу отключается.

Ключ отделен от токена аккаунта. В бот или на сервер добавляйте только API ключ, а токен аккаунта не указывайте нигде. Если вам кажется, что ключ стал известен другим, просто создайте новый на экране API ключа.

Список услуг (services)

Возвращает все услуги, доступные для заказа. rate это цена за 1,000 (USD), а при type Package это цена одного пакета. При type Custom Comments вместо количества вы отправляете список комментариев. category состоит из названия платформы и названия группы.

ПараметрОписание
keyВаш API ключ
actionservices

Пример ответа

[
  {
    "service": 2210,
    "name": "Members - 30 Days Non Drop - 30 Days Refill",
    "type": "Default",
    "category": "Telegram - Members (30 Days Non Drop)",
    "rate": "1.4300",
    "min": "100",
    "max": "50000",
    "refill": true,
    "cancel": false
  }
]

Создать заказ (add)

Создает заказ и списывает сумму с баланса. Сумма равна цене за 1,000, умноженной на количество; для Package это цена пакета, а для Custom Comments количеством считается число строк комментариев. Заказы доступны аккаунтам, у которых зачислено первое пополнение. order в ответе это ID вашего заказа.

ПараметрОписание
keyВаш API ключ
actionadd
serviceID услуги (service из services)
linkПубличная ссылка. Для Telegram: t.me/name, закрытая ссылка-приглашение t.me/+code, пост t.me/name/123, бот t.me/botname. @name тоже принимается
quantityКоличество (в пределах min и max). Не нужно для Package и Custom Comments
commentsТолько для Custom Comments. Один комментарий на строку, до 10,000 строк, до 500 символов в строке

Пример ответа

{
  "order": 31877
}

Статус заказа (status)

Статус одного заказа. charge это фактически оплаченная сумма после возвратов (USD, 6 знаков после запятой), start_count это значение счетчика на старте заказа, remains это количество, которое еще не выполнено.

ПараметрОписание
keyВаш API ключ
actionstatus
orderID заказа

Пример ответа

{
  "charge": "1.430000",
  "start_count": "8120",
  "status": "In progress",
  "remains": "410",
  "currency": "USD"
}

Статус нескольких заказов (status, orders)

Проверяет до 100 заказов за раз, ID заказов перечисляются через запятую. Для ID, которых нет или которые не относятся к вашему аккаунту, на их месте возвращается ошибка.

ПараметрОписание
keyВаш API ключ
actionstatus
ordersСписок ID заказов, например 1,10,100

Пример ответа

{
  "1": { "charge": "0.300000", "start_count": "120", "status": "Completed", "remains": "0", "currency": "USD" },
  "10": { "error": "Incorrect order ID" }
}

Запрос докрутки (refill)

Для заказа услуги с периодом докрутки, который завершился со статусом Completed или Partial, отправьте запрос в течение периода докрутки, считая с момента завершения. На каждый заказ может быть один открытый запрос, с интервалом 24 часа между запросами.

ПараметрОписание
keyВаш API ключ
actionrefill
orderID заказа

Пример ответа

{
  "refill": 512
}

Статус докрутки (refill_status)

Статус одного запроса на докрутку.

ПараметрОписание
keyВаш API ключ
actionrefill_status
refillID докрутки (refill из ответа refill)

Пример ответа

{
  "status": "Completed"
}

Баланс (balance)

Ваш баланс (USD, 6 знаков после запятой).

ПараметрОписание
keyВаш API ключ
actionbalance

Пример ответа

{
  "balance": "84.120000",
  "currency": "USD"
}

Значения статуса заказа

PendingПринят. Передается в работу, ожидает старта, или оператор проверяет результат передачи
In progressВыполняется
CompletedВыполнен полностью
PartialВыполнен частично. Невыполненная часть возвращается на баланс
CanceledНе выполнен. Полный возврат на баланс

Значения статуса докрутки

PendingЗапрос на докрутку принят
In progressДокрутка выполняется
CompletedДокрутка выполнена
RejectedЗапрос на докрутку не принят

Сообщения об ошибках

Ошибки приходят в JSON с полем error в ответе HTTP 200. В коде сначала проверяйте наличие поля error.

{
  "error": "Not enough funds on balance"
}
Invalid API keyКлюч не указан, неверный или заменен новым ключом
Too many requestsБолее 300 запросов в минуту. Повторите чуть позже
Incorrect actionЗначения action нет в списке выше
Add funds firstЗаказ с аккаунта, у которого еще не зачислено первое пополнение
Incorrect service IDНет доступной для заказа услуги с таким ID
Incorrect linkСсылка пустая или не является веб адресом
Quantity out of rangeКоличество меньше минимального или больше максимального
Incorrect commentsCustom Comments пустые или превышают 10,000 строк или 500 символов в строке
Not enough funds on balanceБаланс меньше суммы заказа. Пополните баланс и закажите снова
Incorrect order IDЗаказа с таким ID нет в вашем аккаунте
Refill is not available for this serviceУ услуги нет периода докрутки
Order is not finished yetДокрутка доступна, когда заказ в статусе Completed или Partial
Refill period has endedПериод докрутки, считая с завершения заказа, истек
Refill already requestedУ этого заказа уже есть открытый запрос на докрутку
Refill already requested, try again laterС последнего запроса не прошло 24 часа
Incorrect refill IDДокрутки с таким ID нет в вашем аккаунте

Как подключить API SMM панели к боту Telegram?

1. Сохраните список услуг

Вызывайте services несколько раз в день и сохраняйте у себя ID услуги, название, rate, min и max. Цену для клиентов рассчитывайте, добавляя свою наценку к rate, а при заказе используйте сохраненный ID услуги без изменений.

2. Проверяйте количество и ссылку перед заказом

Если заранее проверять, что количество находится между min и max, а ссылка в формате t.me, ошибок Quantity out of range и Incorrect link станет гораздо меньше. Также полезно заранее проверить баланс через balance.

3. Проверяйте статус пачками

Проверяйте заказы в работе каждые несколько минут пачками по 100 через параметр orders. Так вы с запасом укладываетесь в лимит 300 запросов в минуту на ключ. Когда заказ переходит в Completed, Partial или Canceled, сообщите клиенту результат.

4. Докрутку запрашивайте только для завершенных заказов

Когда заказ услуги с докруткой переходит в Completed или Partial, можно отправить refill. Сохраните ID докрутки из ответа и следите за ходом через refill_status.