🛒

Документация API для клиентов

🔌
Всего действий
6
👤
Тип пользователя
Клиент

API-эндпоинт и аутентификация

Все вызовы клиентского API используют <strong>один HTTP POST</strong> эндпоинт. Аутентификация с помощью <code>key</code> или <code>apikey</code> (со страницы API-ключа вашего профиля) плюс <code>action</code> для выбора операции. Путь находится в <strong>корне сайта</strong> как <code>/api/v2</code> — без языкового префикса (например, без <code>/en/</code> перед <code>/api</code>).

POST
https://accplanet.com/api/v2

Отправляйте параметры как <code>application/x-www-form-urlencoded</code> (например, <code>curl -d</code>) или как JSON с <code>Content-Type: application/json</code>.

{
  "key": "YOUR_API_KEY",
  "action": "categories"
}

<strong>Примечание:</strong> Замените <code>YOUR_API_KEY</code> на свой собственный ключ. Никогда не помещайте API-ключи в URL, клиентский код или публичные репозитории. Поддерживаемые значения <code>action</code>: <code>categories</code>, <code>services</code>, <code>inventory</code>, <code>add</code>, <code>status</code>, <code>balance</code>.

Тестовый API

Выберите действие, введите необходимые параметры, затем нажмите <strong>Отправить запрос</strong>, чтобы вызвать реальный API. Если вы вошли с API-ключом, он будет заполнен ниже (скрыт).

Клиентский API v2

POST
https://accplanet.com/api/v2

Получить категории

Все родительские категории и названия их подкатегорий (для фильтрации <strong>Списка услуг</strong>).

Параметры запроса
ПараметрТипОписаниеОбязательный
key / apikeyСтрокаВаш API-ключДа
actionСтрокаcategoriesДа
Пример запроса
curl -X POST https://accplanet.com/api/v2 \
  -d "key=YOUR_API_KEY" \
  -d "action=categories"
Пример ответа
{
  "categories": [
    {
      "category": "Social",
      "subcategories": ["Premium", "Standard"]
    },
    {
      "category": "Digital goods",
      "subcategories": []
    }
  ]
}
POST
https://accplanet.com/api/v2

Список услуг

Доступные продукты (услуги) с остатками. Необязательные фильтры используют <strong>названия категорий/подкатегорий</strong>, возвращаемые методом Get Categories, или передайте <code>service</code> для получения одного продукта по id (<code>business_id</code> или MongoDB id). Параметр <code>language</code> управляет локализацией полей <code>name</code>, <code>description</code>, <code>category</code> и <code>subcategory</code> (см. таблицу ниже). <code>limit=0</code> возвращает все элементы в одном ответе.

Параметры запроса
ПараметрТипОписаниеОбязательный
key / apikeyСтрокаВаш API-ключДа
actionСтрокаservicesДа
pageЧислоНомер страницы (по умолчанию <code>1</code>), когда <code>limit</code> &gt; 0No
limitЧислоЭлементов на странице; <code>0</code> = вернуть все (по умолчанию <code>0</code>)No
categoryСтрокаНазвание родительской категории (из Get Categories)No
subcategoryСтрокаНазвание подкатегории (из Get Categories)No
serviceСтрокаВернуть только этот идентификатор услуги/продукта (тот же идентификатор, что и в элементах списка)No
languageСтрокаЯзык ответа — используйте код из списка поддерживаемых языков ниже (по умолчанию <code>en</code>)No
Поддерживаемые языковые коды (language)

Передайте одно из этих значений (регистронезависимо для сопоставления). Если опущено или указано <code>en</code>, поля остаются на <strong>английском</strong> (исходный сохранённый текст). Любой другой код из списка ниже разрешает переводы через Aitranslator, если настроен <code>AITRANSLATOR_BASE_URL</code>; отсутствующие переводы возвращаются к английскому, пока не завершатся поставленные в очередь переводы.

КодЯзыкРодное название
en English English
zh Chinese 中文
es Spanish Español
fr French Français
de German Deutsch
ja Japanese 日本語
ko Korean 한국어
pt Portuguese Português
pt-BR Portuguese (Brazil) Português (Brasil)
ru Russian Русский
ar Arabic العربية
hi Hindi हिन्दी
vi Vietnamese Tiếng Việt
ur Urdu اردو
th Thai ไทย
tr Turkish Türkçe
bn-BD Bengali (Bangladesh) বাংলা
Также принимается (псевдонимы)

Эти строки нормализуются до основного кода выше (один и тот же переводческий блок):

Вы можете отправитьПреобразуется в
zh-hans zh
zh-cn zh
zh-sg zh
zh-hant zh
zh-tw zh
zh-hk zh
zh-mo zh
pt-br pt-BR
pt_br pt-BR
ptbr pt-BR
bn-bd bn-BD
bd bn-BD
en-us en
en-gb en

<strong>Не поддерживается:</strong> любое другое значение <code>language</code> обрабатывается как английский (без перевода). Используйте точные основные коды или псевдонимы, перечисленные здесь.

Пример запроса
curl -X POST https://accplanet.com/api/v2 \
  -d "key=YOUR_API_KEY" \
  -d "action=services"
curl -X POST https://accplanet.com/api/v2 \
  -d "key=YOUR_API_KEY" \
  -d "action=services" \
  -d "page=1" \
  -d "limit=50"
curl -X POST https://accplanet.com/api/v2 \
  -d "key=YOUR_API_KEY" \
  -d "action=services" \
  -d "category=Instagram"
curl -X POST https://accplanet.com/api/v2 \
  -d "key=YOUR_API_KEY" \
  -d "action=services" \
  -d "service=10042" \
  -d "language=zh"
Пример ответа

<strong>По умолчанию</strong> (<code>limit</code> опущен или равен <code>0</code>): все услуги в одном ответе.

{
  "services": [
    {
      "service": 10042,
      "name": "Example product A",
      "description": "Product description (may be HTML)",
      "type": "Default",
      "category": "Social",
      "subcategory": "Instagram",
      "rate": "9.99",
      "min": 1,
      "max": 100,
      "refill": false,
      "cancel": false,
      "stock": 100,
      "entityType": "product",
      "autoDelivery": true
    }
  ],
  "total": 2,
  "page": 1,
  "limit": 0,
  "total_pages": 1
}

<strong>service</strong> — это числовой <code>business_id</code> продукта, если он задан; в противном случае — идентификатор MongoDB в виде строки. Используйте то же значение для <strong>Check Inventory</strong> и <strong>Add Order</strong>. <strong>category</strong> / <strong>subcategory</strong> соответствуют названиям из <strong>Get Categories</strong> (пустое <code>subcategory</code>, если продукт прикреплён только к категории верхнего уровня). <strong>description</strong> — это полное описание продукта (может содержать HTML от редактора поставщика).

POST
https://accplanet.com/api/v2

Проверить инвентарь

Запас для одной услуги (тот же идентификатор <code>service</code>, что и в списке услуг).

Параметры запроса
ПараметрТипОписаниеОбязательный
key / apikeyСтрокаВаш API-ключДа
actionСтрокаinventoryДа
serviceСтрокаИдентификатор услуги/продукта из списка услугДа
Пример запроса
curl -X POST https://accplanet.com/api/v2 \
  -d "key=YOUR_API_KEY" \
  -d "action=inventory" \
  -d "service=10042"
Пример ответа
{
  "service": 10042,
  "stock": 42,
  "available": true,
  "entityType": "product",
  "autoDelivery": true
}
POST
https://accplanet.com/api/v2

Добавить заказ

Создаёт заказ и оплачивает его с <strong>баланса счёта</strong>. Необязательный <code>link</code> принимается для совместимости, но не сохраняется в заказе.

Параметры запроса
ПараметрТипОписаниеОбязательный
key / apikeyСтрокаВаш API-ключДа
actionСтрокаaddДа
serviceСтрокаИдентификатор услуги/продукта из списка услугДа
quantityЧислоКоличество (по умолчанию <code>1</code>)No
linkСтрокаНеобязательно (зарезервировано / для будущего использования)No
Пример запроса
curl -X POST https://accplanet.com/api/v2 \
  -d "key=YOUR_API_KEY" \
  -d "action=add" \
  -d "service=10042" \
  -d "quantity=1"
Пример ответа

HTTP статус <code>201 Created</code>.

{
  "order": "000000000000000000000001"
}

Значение <code>order</code> — это <code>ObjectId</code> MongoDB (строка). Используйте его с <strong>Order Status</strong> (<code>action=status</code>).

POST
https://accplanet.com/api/v2

Статус заказа

Параметры запроса
ПараметрТипОписаниеОбязательный
key / apikeyСтрокаВаш API-ключДа
actionСтрокаstatusДа
orderСтрокаИдентификатор заказа, возвращённый <code>add</code>Да
Пример запроса
curl -X POST https://accplanet.com/api/v2 \
  -d "key=YOUR_API_KEY" \
  -d "action=status" \
  -d "order=000000000000000000000001"
Пример ответа
{
  "status": "In progress",
  "charge": "75.00",
  "start_count": 3,
  "remains": 1,
  "delivered_units": 2,
  "currency": "USD",
  "autoDelivery": true,
  "entityType": "product"
}
{
  "status": "Completed",
  "charge": "50.00",
  "start_count": 2,
  "remains": 0,
  "delivered_units": 2,
  "currency": "USD",
  "autoDelivery": true,
  "entityType": "product",
  "accounts": ["example_user:redacted", "example_user_2:redacted"]
}
POST
https://accplanet.com/api/v2

Баланс

Параметры запроса
ПараметрТипОписаниеОбязательный
key / apikeyСтрокаВаш API-ключДа
actionСтрокаbalanceДа
Пример запроса
curl -X POST https://accplanet.com/api/v2 \
  -d "key=YOUR_API_KEY" \
  -d "action=balance"
Пример ответа
{
  "balance": "100.00",
  "currency": "USD"
}

Баланс — это ваш <strong>пользовательский</strong> кошелёк (используется для покупок).

POST
https://accplanet.com/api/v2

Ответы с ошибками

Ошибки используют одну строку <code>error</code>. Неверные или отсутствующие учётные данные API обычно возвращают HTTP <code>401</code> с <code>{"error": "Invalid API key"}</code>; проблемы с валидацией обычно возвращают <code>400</code>.

{"error": "Invalid API key"}
{"error": "Invalid action"}
{"error": "Service ID is required"}
{"error": "Service not found"}
{"error": "Product not found."}
{"error": "This product is not available for purchase."}
{"error": "Invalid quantity."}
{"error": "Minimum quantity is 2."}
{"error": "Insufficient stock. Available: 10."}
{"error": "Insufficient balance. Please recharge your account."}
{"error": "Order not found"}
{"error": "Category not found"}
{"error": "Subcategory not found"}
{"error": "Subcategory not found in category"}
Telegram