Каталог
Список услуг
Возвращает все услуги, которые можно заказать, с вашей ценой, ограничениями, тегами, дополнительными полями, ограничениями постепенной подачи и доступностью. Каждая услуга — один объект, и все поля из прежних версий сохранены.
https://notpanel.com/api/v3action=services- Требуется API-ключ
- Превышен лимит запросов
- Тело:
application/x-www-form-urlencoded
Параметры
Передаётся всегда
keystringОбязательный- Ваш API-ключ.
actionstringОбязательныйservicesДолжно быть буквальной строкой «services».
Параметры действия
languagestringНеобязательно- Язык названий. Не указывайте для английского. Английское название всегда в canonical_name.en · es · pt · ru · tr · ar · hi · id · fr · zh
servicestring (CSV)Необязательно- Возвращать только эти услуги. До 100 идентификаторов услуг через запятую.
curl -X POST https://notpanel.com/api/v3 \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "key=YOUR_API_KEY&action=services&service=7,12"const res = await fetch("https://notpanel.com/api/v3", {
method: "POST",
headers: { "Content-Type": "application/x-www-form-urlencoded" },
body: new URLSearchParams({
key: "YOUR_API_KEY",
action: "services",
service: "7,12",
}),
});
const data = await res.json();
console.log(data);import requests
res = requests.post(
"https://notpanel.com/api/v3",
data={
"key": "YOUR_API_KEY",
"action": "services",
"service": "7,12",
},
)
print(res.json())<?php
$body = http_build_query([
'key' => 'YOUR_API_KEY',
'action' => 'services',
'service' => '7,12',
]);
$response = file_get_contents('https://notpanel.com/api/v3', false, stream_context_create([
'http' => [
'method' => 'POST',
'header' => "Content-Type: application/x-www-form-urlencoded\r\n",
'content' => $body,
'ignore_errors' => true,
],
]));
print_r(json_decode($response, true));
Замените YOUR_API_KEY ключом со страницы API.
[
{
"service": "7",
"name": "Instagram Followers",
"type": "Default",
"category": "Instagram Followers",
"rate": "1.20",
"min": "100",
"max": "10000",
"refill": true,
"cancel": true,
"dripfeed": true,
"type_key": "default",
"canonical_name": "Instagram Followers",
"name_language": "en",
"platform": "instagram",
"tags": ["refill", "cancel", "drip_feed"],
"fields": [],
"drip_feed": {
"mode": "batches",
"min_runs": 2,
"max_runs": 100,
"min_interval_minutes": 1,
"max_interval_minutes": 1440,
"max_total_minutes": 2880
},
"step": 1,
"availability": "available",
"average_time_minutes": 30
},
{
"service": "12",
"name": "Telegram Post Reactions",
"type": "Default",
"category": "Telegram Reactions",
"rate": "0.90",
"min": "10",
"max": "50000",
"refill": false,
"cancel": false,
"dripfeed": false,
"type_key": "default",
"canonical_name": "Telegram Post Reactions",
"name_language": "en",
"platform": "telegram",
"tags": ["reactions"],
"fields": [
{
"key": "reactions",
"kind": "reactions",
"required": false,
"label": "Reactions",
"allowed": ["👍", "👎", "❤️", "🔥", "🥰", "👏", "😁", "🤔", "🤯", "😱", "🤬", "😢", "🎉", "🤩", "🤮", "💩", "🙏", "👌", "🕊️", "🤡", "🥱", "🥴", "😍", "🐳", "❤️🔥", "🌚", "🌭", "💯", "🤣", "⚡", "🍌", "🏆", "💔", "🤨", "😐", "🍓", "🍾", "💋", "🖕", "😈", "😴", "😭", "🤓", "👻", "👨💻", "👀", "🎃", "🙈", "😇", "😨", "🤝", "✍️", "🤗", "🫡", "🎅", "🎄", "☃️", "💅", "🤪", "🗿", "🆒", "💘", "🙉", "🦄", "😘", "💊", "🙊", "😎", "👾", "🤷♂️", "🤷", "🤷♀️", "😡"],
"max_distinct": 11,
"modes": ["mix", "exact"]
}
],
"drip_feed": null,
"step": 1,
"availability": "available",
"average_time_minutes": null
}
]Ошибки
- 400
{"error":"Invalid language: not_allowed","error_code":"INVALID_PARAMETER","retryable":false,"details":{"param":"language","rule":"not_allowed"}}Язык не входит в список поддерживаемых кодов языков.
- 400
{"error":"Maximum 100 IDs per request","error_code":"TOO_MANY_IDS","retryable":false}Список услуг содержит больше 100 идентификаторов.
- 429
{"error":"Rate limit exceeded","error_code":"API_RATE_LIMITED","retryable":true,"retry_after":12}Больше 10 запросов за минуту. Подождите число секунд из Retry-After.
Поля ответа
Ответ — массив с одним объектом на услугу. Все поля из прежних версий не изменились; tags, fields, drip_feed, step, availability и average_time_minutes новые, а cancel теперь означает именно то, что указано.
Поля ответа
serviceinteger- Постоянный числовой идентификатор услуги. Используйте его как
serviceвadd. namestring- Название услуги на запрошенном языке.
typestring- Название типа услуги. Для логики используйте
type_key. categorystring- Название категории.
ratestring- Ваша цена за 1000 единиц в USD, в виде строки. Уже включает скидку вашего аккаунта. Для пакета это цена одного заказа.
mininteger- Наименьшее количество для одного заказа.
maxinteger- Наибольшее количество для одного заказа.
refillbooleantrue, когда восполнение для этой услуги работает через API.cancelbooleantrue, когда запросы на отмену поддерживаются после первых 15 с. Мгновенная отмена в начале работает для любого заказа и здесь не отображается.dripfeedbooleantrue, когда услуга принимает постепенную подачу: либоrunsсinterval, либоdrip_feed_total_minutes.type_keystring- Постоянный ключ типа, например
defaultилиcustom_comments. Он подсказывает, какие дополнительные поля ожидать. canonical_namestring- Английское название, даже если задан
language. name_languagestring- Язык
name. platformstring | null- Ключ платформы, например
instagram, илиnull, если у услуги её нет. tagsstring[]- Краткие метки того, что предлагает услуга. См. список ниже.
fieldsobject[]- Дополнительные данные, которые принимает услуга, с их ограничениями. Пусто, когда нужны только ссылка и количество.
drip_feedobject | null- Ограничения постепенной подачи или
null, если у услуги её нет. stepinteger- Количество должно быть кратно этому числу.
availabilitystringavailableилиpaused. См. «Доступность» ниже.average_time_minutesinteger | null- Среднее число минут до начала выполнения или
null, если известно слишком мало заказов.
Теги
tags позволяет фильтровать список, не читая каждое поле. У услуги есть тег на каждую её возможность.
Теги
refill- Восполнение работает через API.
cancel- Поддерживаются запросы на отмену, а не только мгновенная отмена.
drip_feed- Услуга принимает постепенную подачу.
reactions- Услуга принимает поле
reactions. last_posts- Услуга принимает поле
last_posts. poll_answer- Услуга принимает поле
answer_number. Каждое другое дополнительное поле добавляет тег со своим именем, напримерcomments.
Дополнительные поля
fields описывает каждое дополнительное поле, которое принимает услуга: ключ, тип, обязательность и ограничения. Передавайте каждое поле по его ключу в add. Для реакций перечислены допустимые эмодзи и режимы. Следующая страница объясняет каждое поле и его правила.
Ограничения постепенной подачи
drip_feed равен null или имеет одну из двух форм. Услуги batches принимают число запусков и минуты между ними. Услуги unit_delay растягивают весь заказ на общее время. В любом случае весь заказ может занимать не более 48 ч (2880 мин).
{
"mode": "batches",
"min_runs": 2,
"max_runs": 100,
"min_interval_minutes": 1,
"max_interval_minutes": 1440,
"max_total_minutes": 2880
}{
"mode": "unit_delay",
"max_total_minutes": 2880
}Доступность
Ошибки услуги при заказе
add возвращает их, когда выбранная услуга не может принять заказ.
- 404
SERVICE_NOT_FOUND
Service not foundНет услуги с таким идентификатором, либо она вам недоступна. Сначала исправьте запрос.
- 410
SERVICE_DISCONTINUED
Service has been discontinuedУслуга снята с предложения. Сначала исправьте запрос.
- 409
SERVICE_PAUSED
Service is temporarily unavailableУслуга пока приостановлена. Повторите позже. Повтор может помочь.
Другие действия для чтения
action=catalog возвращает услуги постраничным списком с платформой, категорией, средним временем и полями заказа. Необязательные фильтры: page, limit, search, platform, category, type, refill, dripfeed, available, min_rate, max_rate, sort и language. catalog ограничен 30 запросами в минуту на аккаунт.
action=account_status возвращает ваши общие расходы, уровень лимита API и вашу скидку.