Для AI-агентов: markdown этой страницы — /docs-content/entities/products/get.md индекс документации — /llms.txt
Получить товар
GET /v1/products/:id
Возвращает один товар CRM-каталога по идентификатору. В ответ входят базовые поля товара и пользовательские свойства PROPERTY_<N>, настроенные для каталога на портале.
Параметры
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
id (path) |
number | да | Идентификатор товара. Список: GET /v1/products |
Примеры
curl — личный ключ
curl "https://vibecode.bitrix24.tech/v1/products/6967" \
-H "X-Api-Key: YOUR_API_KEY"
curl — OAuth-приложение
curl "https://vibecode.bitrix24.tech/v1/products/6967" \
-H "X-Api-Key: YOUR_APP_KEY" \
-H "Authorization: Bearer USER_SESSION_TOKEN"
JavaScript — личный ключ
const res = await fetch('https://vibecode.bitrix24.tech/v1/products/6967', {
headers: {
'X-Api-Key': 'YOUR_API_KEY',
},
})
const { success, data } = await res.json()
console.log('Товар:', data.name, '—', data.price, data.currency)
JavaScript — OAuth-приложение
const res = await fetch('https://vibecode.bitrix24.tech/v1/products/6967', {
headers: {
'X-Api-Key': 'YOUR_APP_KEY',
'Authorization': 'Bearer USER_SESSION_TOKEN',
},
})
const { success, data } = await res.json()
Поля ответа
| Поле | Тип | Описание |
|---|---|---|
success |
boolean | Всегда true при успехе |
data |
object | Объект товара: базовые поля — см. Поля товара, плюс пользовательские свойства PROPERTY_<N> |
Базовые поля совпадают с элементом массива в GET /v1/products. Дополнительно приходят свойства вида PROPERTY_<N> — по одному ключу на каждое свойство каталога. Если значение не заполнено, ключ возвращается со значением null.
Пример ответа
{
"success": true,
"data": {
"id": 6967,
"name": "Головной товар",
"code": "product_sku",
"active": true,
"previewPicture": null,
"detailPicture": null,
"sort": 100,
"xmlId": "6967",
"updatedAt": "2025-05-12T09:05:27.000Z",
"createdAt": "2025-05-12T09:03:15.000Z",
"modifyBy": 1,
"createdBy": 1,
"catalogId": 25,
"sectionId": null,
"description": null,
"descriptionType": "text",
"price": 100,
"currency": "RUB",
"vatId": null,
"vatIncluded": false,
"measure": null,
"PROPERTY_309": null,
"PROPERTY_295": null,
"PROPERTY_297": null
}
}
Пример ответа при ошибке
404 — товар не найден:
{
"success": false,
"error": {
"code": "ENTITY_NOT_FOUND",
"message": "Product is not found."
}
}
Ошибки
| HTTP | Код | Описание |
|---|---|---|
| 404 | ENTITY_NOT_FOUND |
Товар с таким id не найден |
| 403 | SCOPE_DENIED |
API-ключ не имеет скоупа crm |
| 401 | MISSING_API_KEY |
Не передан заголовок X-Api-Key |
Полный список общих ошибок API — Ошибки.
Известные особенности
Набор свойств одинаков в пределах каталога. Состав ключей PROPERTY_<N> определяется настройками каталога на портале — у всех товаров одного каталога он совпадает.
Заполненное списочное свойство приходит только идентификатором, без текста. Это семейство (crm.product.*) отдаёт в PROPERTY_<N> объект { "valueId": "...", "value": "..." }, где value — ID выбранного элемента перечисления, а не его название. Читаемый текст здесь взять неоткуда, и /v1/products/fields его тоже не содержит — дескриптор свойства несёт только имя. Два пути дальше:
- за читаемым текстом одного товара —
GET /v1/catalog-products/:id: каталожное семейство возвращает готовый текст вpropertyNNN.valueEnum; - за всеми вариантами свойства (выпадашка, фильтр, экспорт) —
GET /v1/catalog-product-property-enums?filter[propertyId]=NNN&limit=1000.
Оба вызова требуют скоупа catalog — у ключа со скоупом только crm они вернут 403 SCOPE_DENIED.
Пустое значение PROPERTY_<N> означает одно из двух. Различаются они одним перекрёстным вызовом GET /v1/catalog-products/:id:
- свойство не заполнено у этого товара — каталожный эндпоинт тоже вернёт пусто, либо синтезированное
"N"для свойства-галочки (listType: "C"); - свойство обслуживается только каталожным семейством (например, строковое свойство с пользовательским типом
directory) — тогда каталожный эндпоинт значение вернёт, а/v1/productsотдаётnull.
Торговые предложения через этот эндпоинт не видны. crm.product.* работает с товарами CRM-каталога; предложения (офферы) лежат в отдельном каталоге и читаются через GET /v1/catalog-products.