Головне
Формат запитів стандартного 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 | Немає | Список послуг |
| add | service, link, quantity або comments | order (ID замовлення) |
| status | Одне order або orders (до 100, через кому) | charge, start_count, status, remains, currency |
| refill | order | refill (ID відновлення) |
| refill_status | refill | status |
| balance | Немає | balance, currency |
- 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 | Прийнято й очікує старту або переходить в обробку |
| In progress | Виконується |
| Completed | Виконано повністю |
| Partial | Частину виконано, а решта суми повернулася на баланс |
| Canceled | Не вдалося обробити, і вся сума повернулася на баланс |
- Значення 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 | Ключ відсутній або неправильний |
| Too many requests | Перевищено ліміт запитів за хвилину. Надішліть знову трохи згодом |
| Add funds first | Замовляти можна після зарахування першого поповнення |
| Incorrect service ID | Це не ID послуги в продажу |
| Incorrect link | Неправильний формат посилання |
| Quantity out of range | Кількість поза межами мінімуму й максимуму послуги |
| Incorrect comments | Рядки коментарів порожні або рядок довший за 500 символів |
| Not enough funds on balance | Ваш баланс менший за вартість замовлення |
| Incorrect order ID | Це не ID замовлення в цьому акаунті |
| Incorrect refill ID | Це не ID відновлення в цьому акаунті |
| Incorrect action | Значення action не належить до 6 дій |
- Значення 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?
- Поповніть баланс і створіть ключ API у кабінеті
- Перевірте ключ і підключення через balance
- Отримайте список послуг через services і розмістіть його на своїй панелі
- Надішліть один add з найменшою кількістю й отримайте ID замовлення
- Переконайтеся, що статус змінюється через status, а потім увімкніть автоматичні замовлення
Приклади на curl, PHP, Python і Node.js та повний опис полів наведено в документації API, а інші запитання в групі API розділу Часті запитання.