Расширенный каталог услуг
Возвращает постраничный снимок активных услуг с тарифами аккаунта и структурированными данными для поиска. Используйте старое действие services, если SDK требует исходный формат кешированного массива.
https://notpanel.com/api/v3action=catalogapplication/x-www-form-urlencodedaction=catalog возвращает снимок для поиска. catalog_updated_at — время самого нового обновления метаданных в отфильтрованном результате, а не гарантированное время цены или котировка. Авторитетна сумма из подтверждённого ответа action=add.Параметры
| Название | Тип | Описание |
|---|---|---|
| keyОбязательный | string | Ваш API-ключ. |
| actionОбязательный | string | Должно быть буквальное значение "catalog". |
| page | integer | Номер страницы от 1 до 100000. По умолчанию 1. |
| limit | integer | Строк на странице от 1 до 200. По умолчанию 100. |
| language | language code | Необязательный язык названия: en, es, pt, ru, tr, ar, hi, id, fr или zh. pt — бразильский португальский, zh — упрощённый китайский. Не передавайте его для старой английской структуры. Администраторы могут проверить или уточнить отдельные названия. |
| search | string | Поиск по имени без учёта регистра или точный числовой ID услуги. Не более 100 символов. |
| platform | integer | slug | Числовой ID или slug платформы. |
| category | integer | slug | Числовой ID или slug категории. Для slug требуется platform; числовой ID можно передать без platform. |
| type | string | Точный поддерживаемый тип услуги, например default, custom_comments, package или web_traffic. |
| sort | string | popular, price_asc, price_desc, time_asc, time_desc, name_asc или newest. По умолчанию popular. |
| refill | boolean | Фильтр поддержки refill. Принимает 1, 0, true или false. |
| dripfeed | boolean | Фильтр поддержки drip-feed. Принимает 1, 0, true или false. |
| available | boolean | Фильтр текущей доступности заказа. Принимает 1, 0, true или false; action=add повторно проверяет доступность при фиксации заказа. |
| min_rate | USD decimal | Минимальный неотрицательный тариф аккаунта в USD за 1 000 единиц. Используйте каноническое десятичное число от 0 до 999999999999.99999999, не более 12 цифр целой и 8 цифр дробной части; знаки и экспоненты запрещены. |
| max_rate | USD decimal | Максимальный неотрицательный тариф аккаунта в USD за 1 000 единиц. Не может быть меньше min_rate. Используйте каноническое десятичное число от 0 до 999999999999.99999999, не более 12 цифр целой и 8 цифр дробной части; знаки и экспоненты запрещены. |
Пример запроса
Замените YOUR_API_KEY на ключ, сгенерированный на странице API в вашей панели.
curl -X POST https://notpanel.com/api/v3 \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "key=YOUR_API_KEY&action=catalog&platform=instagram&available=true&sort=price_asc&limit=2&language=hi"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: "catalog",
platform: "instagram",
available: "true",
sort: "price_asc",
limit: "2",
language: "hi",
}),
});
const data = await res.json();
console.log(data);import requests
res = requests.post(
"https://notpanel.com/api/v3",
data={
"key": "YOUR_API_KEY",
"action": "catalog",
"platform": "instagram",
"available": "true",
"sort": "price_asc",
"limit": "2",
"language": "hi",
},
)
print(res.json())<?php
$body = http_build_query([
'key' => 'YOUR_API_KEY',
'action' => 'catalog',
'platform' => 'instagram',
'available' => 'true',
'sort' => 'price_asc',
'limit' => '2',
'language' => 'hi',
]);
$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));
Пример ответа
{
"as_of": "2026-08-25T10:30:00.000Z",
"requested_language": "hi",
"catalog_updated_at": "2026-08-25T09:45:12.000Z",
"total": 1,
"page": 1,
"per_page": 2,
"total_pages": 1,
"lowest_rate_per_1000": "0.50",
"currency": "USD",
"items": [
{
"service": "42547",
"name": "Instagram कस्टम कमेंट्स",
"canonical_name": "Instagram Custom Comments",
"name_language": "hi",
"description": "Custom comments for a public post",
"type": "custom_comments",
"rate": "0.50",
"min": "10",
"max": "5000",
"platform": {
"id": 1,
"slug": "instagram",
"name": "Instagram"
},
"category": {
"id": 12,
"slug": "comments",
"name": "Comments"
},
"refill": true,
"dripfeed": false,
"available": true,
"cancel": true,
"cancel_mode": "grace_window",
"cancel_window_seconds": 15,
"average_time": "0-30 minutes",
"average_time_minutes": 18,
"average_time_sample_size": 24,
"average_time_basis": "measured",
"input_fields": [
{
"key": "comments",
"label": "Comments",
"type": "textarea",
"required": true,
"placeholder": "One comment per line. Each line is a separate comment."
}
],
"updated_at": "2026-08-25T09:45:12.000Z"
}
]
}Распространённые ошибки
| Статус | Тело | Причина |
|---|---|---|
| 400 | {"error":"A platform is required when category is a slug"} | Slug категории неоднозначен без slug или ID платформы. Передайте platform либо числовой ID категории. |
| 400 | {"error":"Invalid catalog sort"} | Значение sort не входит в документированный список. |
| 400 | {"error":"language must be one of en, es, pt, ru, tr, ar, hi, id, fr, zh","error_code":"INVALID_LANGUAGE"} | Код языка не поддерживается. Используйте один из десяти документированных кодов для названий услуг. |