Перейти к основному содержанию
1PANEL PLUS

Как пользоваться API SMM панели: подключение API v2 для реселлеров

Автор: 1PANEL PLUS16 мин чтения YouTubeОбновлено


Кратко

Способ отправки запросов стандартного API v2 SMM панели, 6 action, примеры ответов, сообщения об ошибках и лимиты запросов с точки зрения реселлера.

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 (номер заказа)
action
status
Что передать
Один order или orders (через запятую, до 100)
Что вернется
charge, start_count, status, remains, currency
action
refill
Что передать
order
Что вернется
refill (номер рефилла)
action
refill_status
Что передать
refill
Что вернется
status
action
balance
Что передать
Ничего
Что вернется
balance, currency

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

Отправьте action=services, и все услуги в продаже придут массивом. У каждой услуги есть service (номер услуги), 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 (номер услуги), link (публичная ссылка) и quantity (количество), и заказ будет принят, а сумма сразу спишется с баланса. order в ответе это номер заказа, сохраните его для status и refill. Заказы доступны для аккаунтов с зачисленным первым пополнением.

  • Обычные услуги: передайте service, link, quantity
  • Услуги Custom Comments: вместо quantity передайте comments. Один комментарий на строку, до 500 символов в строке, число строк это количество
  • Услуги Package: количество можно не передавать. Заказ оформляется на один пакет

Пример запроса: 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 (один номер заказа), и придет статус этого заказа, а если передать в orders номера заказов через запятую, можно получить до 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 (номер рефилла). Запрос принимается для выполненного или частично выполненного заказа по услуге с периодом рефилла, в пределах периода рефилла со дня завершения заказа, если нет рефилла в процессе и с последнего запроса прошло 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
Значение
Нет услуги в продаже с таким номером
Значение error
Incorrect link
Значение
Неверный формат ссылки
Значение error
Quantity out of range
Значение
Количество вне диапазона минимума и максимума услуги
Значение error
Incorrect comments
Значение
Строки комментариев пустые или строка длиннее 500 символов
Значение error
Not enough funds on balance
Значение
Баланс меньше суммы заказа
Значение error
Incorrect order ID
Значение
Это не номер заказа вашего аккаунта
Значение error
Incorrect refill 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, а цену продажи в своей панели реселлер устанавливает сам. Например, если к услуге с rate $2.00 добавить 25%, получится $2.50 за 1,000, и если клиент закажет 4,000, сумма продажи будет $10.00, а с баланса 1PANEL PLUS спишется $8.00. Эти цены приведены для примера расчета.

В каком порядке подключать API?

  1. Пополните баланс и создайте API ключ в кабинете
  2. Проверьте ключ и подключение запросом balance
  3. Получите список услуг через services и разместите их в своей панели
  4. Отправьте один add с минимальным количеством и получите номер заказа
  5. Убедитесь через status, что статус меняется, и включите автоматические заказы

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