Перейти до основного вмісту
1PANEL PLUS

Як користуватися API SMM панелі: посібник з інтеграції API v2 для реселерів

Автор: 1PANEL PLUS16 хв читання YouTubeОстаннє оновлення


Головне

Формат запитів стандартного API v2 для SMM панелей, його 6 дій, приклади відповідей, повідомлення про помилки та ліміти запитів, написано для реселерів.

API SMM панелі це підключення, яке автоматично оформлює замовлення і перевіряє їхній статус з іншої панелі чи вашої власної програми. 1PANEL PLUS використовує стандартний API v2 для SMM панелей, тож якщо у вас уже є код, підключений до іншої панелі, просто змініть адресу та ключ, щоб одразу підключитися. API і сайт використовують ті самі послуги, ті самі ціни за 1,000 і той самий баланс.

Хто користується API SMM панелі?

  • Реселери: розміщують послуги на власній панелі й автоматично передають замовлення клієнтів
  • Агенції: оформлюють замовлення для багатьох каналів одразу у визначений час
  • Розробники: створюють скрипти, що замовляють на старті трансляції або після публікації нового відео
  • Оператори: збирають баланс і статуси замовлень у власній панелі керування

Як отримати ключ API?

Створіть його на екрані «Ключ API» у кабінеті після зарахування першого поповнення. Ключ показується лише один раз, у момент створення, тому скопіюйте його одразу й зберігайте в надійному місці. Коли ви створюєте новий ключ, старий одразу перестає працювати, тож якщо вважаєте, що ключ розкрито, просто створіть новий на заміну.

Як надсилати запити до API?

Надсилайте кожен запит методом POST на єдину адресу https://1panelplus.com/api/v2. Використовуйте зручний вам формат: поля форми (application/x-www-form-urlencoded або multipart) чи тіло JSON (Content-Type: application/json), і додавайте key та action у кожен запит. Усі відповіді надходять у JSON.

Приклад запиту (поля форми): key=YOUR_API_KEY&action=balance

Приклад запиту (JSON): {"key": "YOUR_API_KEY", "action": "balance"}

action
services
Значення для надсилання
Немає
Значення у відповіді
Список послуг
action
add
Значення для надсилання
service, link, quantity або comments
Значення у відповіді
order (ID замовлення)
action
status
Значення для надсилання
Одне order або orders (до 100, через кому)
Значення у відповіді
charge, start_count, status, remains, currency
action
refill
Значення для надсилання
order
Значення у відповіді
refill (ID відновлення)
action
refill_status
Значення для надсилання
refill
Значення у відповіді
status
action
balance
Значення для надсилання
Немає
Значення у відповіді
balance, currency

Як отримати список послуг через services?

Надішліть action=services, і ви отримаєте всі послуги в продажу у вигляді масиву. Кожна послуга містить service (ID послуги), name, type, category, rate, min, max, refill і cancel. rate це ціна за 1,000 (USD); коли type має значення Package, це ціна одного пакета. refill має значення true для послуг із періодом відновлення, а cancel завжди false. category містить назву платформи та категорії разом, тож ви можете відтворити категорії на своїй панелі як є.

Приклад відповіді: [{"service": SERVICE_ID, "name": "Назва послуги", "type": "Default", "category": "YouTube - Назва категорії", "rate": "Ціна за 1,000", "min": "Мінімальна кількість", "max": "Максимальна кількість", "refill": true, "cancel": false}]

Ціни та послуги можуть змінюватися, тож реселеру варто заново отримувати services з певним інтервалом і синхронізувати ціни та мінімальну й максимальну кількість на своїй панелі.

Як оформити замовлення через add?

Надішліть action=add із service (ID послуги), link (публічне посилання) і quantity, і замовлення буде оформлено, а вартість одразу списано з балансу. order у відповіді це ID замовлення; збережіть його й використовуйте для status і refill. Замовлення можна оформлювати з акаунтів, у яких зараховано перше поповнення.

  • Звичайні послуги: надсилайте service, link і quantity
  • Послуги Custom Comments: надсилайте comments замість quantity. Один коментар на рядок, до 500 символів у рядку, а кількість рядків є кількістю
  • Пакетні послуги: кількість не потрібна. Замовлення на один пакет

Приклад запиту: key=YOUR_API_KEY&action=add&service=SERVICE_ID&link=https://www.youtube.com/watch?v=videoid&quantity=1000

Приклад відповіді: {"order": ORDER_ID}

Як перевірити статус замовлення через status?

Надішліть action=status з order (ID одного замовлення), щоб отримати статус цього замовлення, або надішліть orders з ID замовлень через кому, щоб перевірити до 100 за раз. Якщо ви керуєте великою кількістю замовлень, групування через orders заощаджує багато запитів.

Приклад відповіді (одне): {"charge": "Списана сума", "start_count": "Стартова кількість", "status": "In progress", "remains": "Залишок кількості", "currency": "USD"}

Приклад відповіді (кілька): {"ORDER_ID_1": {"charge": "...", "start_count": "...", "status": "Completed", "remains": "0", "currency": "USD"}, "ORDER_ID_2": {"error": "Incorrect order ID"}}

Значення status
Pending
Значення
Прийнято й очікує старту або переходить в обробку
Значення status
In progress
Значення
Виконується
Значення status
Completed
Значення
Виконано повністю
Значення status
Partial
Значення
Частину виконано, а решта суми повернулася на баланс
Значення status
Canceled
Значення
Не вдалося обробити, і вся сума повернулася на баланс

charge це сплачена сума мінус повернена сума, тож після часткового чи скасованого замовлення ви одразу бачите фактично витрачену суму. Статуси замовлень оновлюються автоматично приблизно щохвилини, тож запитувати status з інтервалом близько хвилини цілком достатньо.

Як користуватися refill і refill_status?

Надішліть action=refill з order, щоб запросити відновлення, і ви отримаєте refill (ID відновлення). Запит приймається для виконаних або частково виконаних замовлень послуг із періодом відновлення, у межах періоду відновлення від дня завершення замовлення, коли немає відновлення в процесі і від останнього запиту минуло 24 години. Надішліть action=refill_status з refill, і він поверне статус: Pending, In progress, Completed або Rejected.

Приклади відповідей: {"refill": REFILL_ID} і {"status": "Completed"}

Правила відновлення такі самі, як на сайті. Детальні умови наведено в статті Періоди відновлення: пояснення.

Як перевірити баланс через balance?

Надішліть action=balance, і ви отримаєте поточний баланс і валюту (USD). Як реселер, перевіряйте баланс перед передаванням замовлень і налаштуйте сповіщення, коли він опускається нижче певної суми, щоб замовлення йшли без перерв.

Приклад відповіді: {"balance": "Поточний баланс", "currency": "USD"}

Що означають повідомлення про помилки API?

Помилки повертаються в JSON з англійським реченням у полі error. Кожне речення має фіксовану причину, тож ваша програма може порівнювати його як є і обробляти.

Значення error
Invalid API key
Значення
Ключ відсутній або неправильний
Значення error
Too many requests
Значення
Перевищено ліміт запитів за хвилину. Надішліть знову трохи згодом
Значення error
Add funds first
Значення
Замовляти можна після зарахування першого поповнення
Значення error
Incorrect service ID
Значення
Це не ID послуги в продажу
Значення error
Incorrect link
Значення
Неправильний формат посилання
Значення error
Quantity out of range
Значення
Кількість поза межами мінімуму й максимуму послуги
Значення error
Incorrect comments
Значення
Рядки коментарів порожні або рядок довший за 500 символів
Значення error
Not enough funds on balance
Значення
Ваш баланс менший за вартість замовлення
Значення error
Incorrect order ID
Значення
Це не ID замовлення в цьому акаунті
Значення error
Incorrect refill ID
Значення
Це не ID відновлення в цьому акаунті
Значення error
Incorrect action
Значення
Значення action не належить до 6 дій

Запити на відновлення можуть повертати Refill is not available for this service (послуга не має періоду відновлення), Order is not finished yet (замовлення ще не завершено), Refill period has ended (період відновлення минув) або Refill already requested, try again later (відновлення вже виконується або не минуло 24 години).

Скільки запитів до API можна надсилати?

Кожен ключ може робити до 300 запитів на хвилину. Групуйте перевірки статусу по 100 через orders і отримуйте список послуг заново лише за потреби, і запасу буде вдосталь. Наприклад, якщо в процесі 1,000 замовлень, 10 запитів раз на хвилину перевіряють їх усі.

Як реселерам встановлювати ціни продажу?

rate, який ви отримуєте через API, це ціна 1PANEL PLUS за 1,000, а реселери самі встановлюють ціну продажу на своїй панелі. Наприклад, якщо додати 25% до послуги з rate $2.00, ви продаєте за $2.50 за 1,000; коли клієнт замовляє 4,000, ваш продаж становить $10.00, а в 1PANEL PLUS списується $8.00. Ці ціни є прикладами для показу розрахунку.

У якому порядку налаштовувати підключення до API?

  1. Поповніть баланс і створіть ключ API у кабінеті
  2. Перевірте ключ і підключення через balance
  3. Отримайте список послуг через services і розмістіть його на своїй панелі
  4. Надішліть один add з найменшою кількістю й отримайте ID замовлення
  5. Переконайтеся, що статус змінюється через status, а потім увімкніть автоматичні замовлення

Приклади на curl, PHP, Python і Node.js та повний опис полів наведено в документації API, а інші запитання в групі API розділу Часті запитання.