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 ключ |
| action | services |
Приклад відповіді
[
{
"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 ключ |
| action | add |
| service | ID послуги (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 ключ |
| action | status |
| order | ID замовлення |
Приклад відповіді
{
"charge": "1.430000",
"start_count": "8120",
"status": "In progress",
"remains": "410",
"currency": "USD"
}Статус кількох замовлень (status, orders)
Перевіряє до 100 замовлень за раз, ID замовлень перелічуються через кому. Для ID, яких немає або які не належать вашому акаунту, на їхньому місці повертається помилка.
| Параметр | Опис |
|---|---|
| key | Ваш API ключ |
| action | status |
| 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 ключ |
| action | refill |
| order | ID замовлення |
Приклад відповіді
{
"refill": 512
}Статус докрутки (refill_status)
Статус одного запиту на докрутку.
| Параметр | Опис |
|---|---|
| key | Ваш API ключ |
| action | refill_status |
| refill | ID докрутки (refill з відповіді refill) |
Приклад відповіді
{
"status": "Completed"
}Баланс (balance)
Ваш баланс (USD, 6 знаків після коми).
| Параметр | Опис |
|---|---|
| key | Ваш API ключ |
| action | balance |
Приклад відповіді
{
"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 comments | Custom 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.
