لوكلاء AI: ملف markdown لهذه الصفحة — /docs-content-en/entities/catalog-products.md فهرس التوثيق — /llms.txt

مقالات التوثيق متاحة حاليًا باللغة الإنجليزية فقط.

Catalog products

Trade catalog products: list, retrieve, create, update, and delete. A product describes a catalog item — name, active status, unit of measure, and sale flags. Sale prices are set separately, in Catalog prices. Catalog services have a separate section.

Bitrix24 API: catalog.product.* Scope: catalog

Create catalog product

POST /v1/catalog-products

Creates a product in the catalog. Fields are passed flat at the root of the JSON. The response contains the full object of the created product.

To create multiple products, use POST /v1/catalog-products/batch with action: "create" and an items array. Each entry in data.results contains the input array item's index and success; successful creation returns the received numeric product id. Use this identifier with GET /v1/catalog-products/:id. Aggregate counters are in data.summary.

Request fields (body)

Field Type Required Description
Fieldname Typestring Requiredyes DescriptionProduct name
FieldiblockId Typenumber Requiredyes DescriptionCatalog ID. List: GET /v1/catalogs
Fieldactive Typeboolean Requiredno DescriptionWhether the product is active. Defaults to true
FieldiblockSectionId Typenumber Requiredno DescriptionCatalog section ID. List: GET /v1/catalog-sections
Fieldmeasure Typenumber Requiredno DescriptionUnit of measure ID. List: GET /v1/catalog-measures
Fieldweight Typenumber Requiredno DescriptionWeight of a product unit
FieldvatIncluded Typeboolean Requiredno DescriptionVAT included in the price
FieldvatId Typenumber Requiredno DescriptionVAT rate ID. List: GET /v1/catalog-vat-rates
FieldcanBuyZero Typeboolean Requiredno DescriptionAllow purchase when stock is zero
FieldquantityTrace Typeboolean Requiredno DescriptionEnable quantity tracking
Fieldsubscribe Typeboolean Requiredno DescriptionAllow subscription to the product
FieldbarcodeMulti Typeboolean Requiredno DescriptionSeparate barcodes for product units
FieldwithoutOrder Typeboolean Requiredno DescriptionAvailable for ordering without stock on hand
FieldpurchasingPrice Typenumber Requiredno DescriptionPurchase price. Not applied when inventory management is enabled
FieldpurchasingCurrency Typestring Requiredno DescriptionPurchase price currency. Not applied when inventory management is enabled
Fieldquantity Typenumber Requiredno DescriptionQuantity in stock. Not applied when inventory management is enabled

Examples

curl — personal key

Terminal
curl -X POST "https://vibecode.bitrix24.com/v1/catalog-products" \
  -H "X-Api-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "USB-C cable",
    "iblockId": 25,
    "active": true,
    "measure": 9
  }'

curl — OAuth application

Terminal
curl -X POST "https://vibecode.bitrix24.com/v1/catalog-products" \
  -H "X-Api-Key: YOUR_APP_KEY" \
  -H "Authorization: Bearer USER_SESSION_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "USB-C cable",
    "iblockId": 25,
    "active": true,
    "measure": 9
  }'

JavaScript — personal key

javascript
const res = await fetch('https://vibecode.bitrix24.com/v1/catalog-products', {
  method: 'POST',
  headers: {
    'X-Api-Key': 'YOUR_API_KEY',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    name: 'USB-C cable',
    iblockId: 25,
    active: true,
    measure: 9,
  }),
})

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

JavaScript — OAuth application

javascript
const res = await fetch('https://vibecode.bitrix24.com/v1/catalog-products', {
  method: 'POST',
  headers: {
    'X-Api-Key': 'YOUR_APP_KEY',
    'Authorization': 'Bearer USER_SESSION_TOKEN',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    name: 'USB-C cable',
    iblockId: 25,
    active: true,
    measure: 9,
  }),
})

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

Response fields

Field Type Description
Fieldsuccess Typeboolean DescriptionAlways true on success
Fielddata Typeobject DescriptionFull object of the created product. The field set is the same as GET /v1/catalog-products/:id

The URL of the created product card in Bitrix24 is built from iblockId and id:

https://<portal>.bitrix24.com/shop/catalog/<iblockId>/product/<id>/

<portal> is the Bitrix24 portal domain. Access is restricted by the employee's permissions in Bitrix24.

Response example

The main fields are shown.

JSON
{
  "success": true,
  "data": {
    "id": 7027,
    "iblockId": 25,
    "iblockSectionId": null,
    "name": "USB-C cable",
    "active": true,
    "code": null,
    "measure": 9,
    "available": true,
    "bundle": false,
    "canBuyZero": true,
    "quantityTrace": true,
    "subscribe": true,
    "barcodeMulti": false,
    "withoutOrder": false,
    "vatIncluded": false,
    "purchasingPrice": null,
    "purchasingCurrency": null,
    "quantity": null,
    "dateCreate": "2026-06-15T13:11:32.000Z",
    "timestampX": "2026-06-15T13:11:32.000Z",
    "xmlId": "7027"
  }
}

Error response example

422 — a required field was not passed:

JSON
{
  "success": false,
  "error": {
    "code": "BITRIX_ERROR",
    "message": "Required fields: name"
  }
}

Errors

HTTP Code Description
HTTP422 CodeBITRIX_ERROR DescriptionA required field was not passed — the message lists the missing ones (Required fields: name, Required fields: iblockId)
HTTP422 CodeBITRIX_ERROR DescriptionThe catalog with the specified iblockId was not found (Iblock Not Found)
HTTP400 CodeREADONLY_FIELD DescriptionA read-only field was passed in the body, for example available or bundle
HTTP403 CodeSCOPE_DENIED DescriptionThe key lacks the catalog scope
HTTP401 CodeMISSING_API_KEY DescriptionThe X-Api-Key header was not passed

Full list of common API errors — Errors.

See also