For AI agents: markdown of this page — /docs-content-en/entities/catalog-products/get.md documentation index — /llms.txt

Get catalog product

GET /v1/catalog-products/:id

Returns a single catalog product by identifier. The response contains more fields than the list: in addition to the fields from the reference, it returns the symbolic code, dimensions, type, and custom catalog properties.

Read the product's native images through the separate GET /v1/catalog-products/:productId/images endpoint. It returns the detail picture, preview picture, and MORE_PHOTO gallery, but not files stored in other custom File properties (propertyNNN).

Parameters

Parameter Type Req. Description
id (path) number yes Product identifier

Examples

curl — personal key

Terminal
curl "https://vibecode.bitrix24.com/v1/catalog-products/541" \
  -H "X-Api-Key: YOUR_API_KEY"

curl — OAuth application

Terminal
curl "https://vibecode.bitrix24.com/v1/catalog-products/541" \
  -H "X-Api-Key: YOUR_APP_KEY" \
  -H "Authorization: Bearer USER_SESSION_TOKEN"

JavaScript — personal key

javascript
const res = await fetch('https://vibecode.bitrix24.com/v1/catalog-products/541', {
  headers: {
    'X-Api-Key': 'YOUR_API_KEY',
  },
})

const { success, data } = await res.json()
console.log('Product:', data.name)

JavaScript — OAuth application

javascript
const res = await fetch('https://vibecode.bitrix24.com/v1/catalog-products/541', {
  headers: {
    'X-Api-Key': 'YOUR_APP_KEY',
    'Authorization': 'Bearer USER_SESSION_TOKEN',
  },
})

const { success, data } = await res.json()

Response fields

Field Type Description
success boolean Always true on success
data object Product object. The base field set — see Catalog product fields

In addition to the reference fields, a single record contains:

  • code — symbolic code
  • sort — sort order
  • type — product type
  • vatId — VAT rate ID
  • quantityReserved — reserved stock
  • weight, width, height, length — product dimensions
  • xmlId — external code
  • custom catalog properties of the form propertyNNN — see the "List-property values" section below

Fields with an empty value are returned as null.

Response example

The main fields are shown.

JSON
{
  "success": true,
  "data": {
    "id": 541,
    "iblockId": 25,
    "iblockSectionId": null,
    "name": "USB-C cable",
    "active": true,
    "code": null,
    "measure": 9,
    "weight": null,
    "vatId": 1,
    "vatIncluded": false,
    "available": true,
    "bundle": false,
    "canBuyZero": true,
    "quantityTrace": false,
    "subscribe": true,
    "barcodeMulti": false,
    "withoutOrder": false,
    "purchasingPrice": 110,
    "purchasingCurrency": "USD",
    "quantity": null,
    "quantityReserved": null,
    "sort": 500,
    "type": 1,
    "dateCreate": "2021-08-06T12:59:15.000Z",
    "timestampX": "2025-10-31T10:24:18.000Z",
    "xmlId": "541"
  }
}

List-property values (`propertyNNN`)

Custom catalog properties arrive in fields of the form propertyNNN, where NNN is the property id from GET /v1/catalog-product-properties. For a list property the value arrives as an object, and the readable text is already in the response — no extra request is needed to decode it:

JSON
{
  "id": 160,
  "iblockId": 26,
  "name": "T-shirt (L)",
  "property166": {
    "value": "116",
    "valueEnum": "L",
    "valueId": "674"
  }
}
Key What it is
value Identifier of the enumeration element, as a string. This is the id of a record in List-property values
valueEnum Readable text of the selected option. Here L is a size, not the listType code
valueId Identifier of the value row on the product. Internal — not needed to match against the reference

The shape depends on the property's listType. Read it from GET /v1/catalog-product-properties/:id:

Property listType What arrives in propertyNNN
L (dropdown) an object { value, valueEnum, valueId }, as above
C (checkbox) a bare "Y" or "N" scalar — the checkbox state, not an option ID

When multiple: true, the same shape arrives as an array — expand every element.

For all possible options of a property (a dropdown, a filter, an export) use GET /v1/catalog-product-property-enums?filter[propertyId]=166&limit=1000. Match against the product with String(element.id) === product.propertyNNN.value.

Error response example

422 — no product with the specified id exists:

JSON
{
  "success": false,
  "error": {
    "code": "BITRIX_ERROR",
    "message": "product does not exist."
  }
}

Errors

HTTP Code Description
422 BITRIX_ERROR No product with the specified id exists (product does not exist.)
403 SCOPE_DENIED The API key does not have the catalog scope
401 MISSING_API_KEY The X-Api-Key header was not passed

Full list of common API errors — Errors.

See also