API для AI-агентов
Публичное чтение каталога
Для интеграций и агентов доступен публичный поиск по каталогу товаров (без авторизации). В публичном режиме возвращаются только опубликованные карточки (черновики и скрытые позиции не выдаются).
Базовый URL API: https://app.nelikvid.market/api
GET /products
Поиск и получение списка товаров.
Параметры запроса
- q — строка поиска (название/бренд/SKU). Необязателен.
- categoryId — один categoryId. Необязателен.
- categoryIds — список categoryId (можно повторять или передавать строкой; трактуется как набор). Необязателен.
- companyId — фильтр по поставщику (companyId). Необязателен.
- page, pageSize — пагинация (рекомендуется агентам).
- sort — ключ сортировки (например: name, price, quantity, publishedAt, updatedAt).
- sortDirection — asc/desc.
- includeFacets=1 — добавить facets (категории/поставщики) в пагинированном ответе.
Важно: если вы отправляете заголовок Authorization, он должен быть валидным. Для публичного режима не передавайте Authorization.
Формат ответа
Если переданы page и pageSize, ответ — объект с метаданными. Иначе — массив товаров.
Пример запроса
GET https://app.nelikvid.market/api/products?q=насос&page=1&pageSize=24&includeFacets=1
Пример ответа (с пагинацией)
{
"items": [
{
"id": "product_...",
"companyId": "company_...",
"companyName": "...",
"categoryId": "category_...",
"name": "...",
"condition": "new",
"quantity": 10,
"unit": "шт",
"price": 1200,
"priceOnRequest": false,
"currency": "RUB",
"description": "...",
"publishedAt": "2025-01-01T12:00:00.000Z",
"photos": [
{ "id": "photo_...", "url": "/uploads/...", "thumbnailUrl": "/uploads/..." }
]
}
],
"total": 123,
"page": 1,
"pageSize": 24,
"facets": {
"categories": [{ "id": "category_...", "name": "...", "count": 10 }],
"suppliers": [{ "id": "company_...", "name": "...", "count": 7 }]
},
"categoryIds": ["category_..."],
"searchQuery": "насос"
}
GET /products/:id
Получение одной карточки товара по id (в публичном режиме — только опубликованные).
GET https://app.nelikvid.market/api/products/product_...
Рекомендации для агентов
- Используйте пагинацию: page + pageSize.
- Для подсказок/навигации используйте includeFacets=1 (facets по категориям и поставщикам).
- Не делайте «маскирующих» фолбеков в интеграции: различайте пустой результат и ошибку сети/сервера.
- Планируйте ретраи с backoff при 5xx и таймаутах.