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

Catalog fields

GET /v1/catalogs/fields

Returns a reference of commercial catalog fields with their types. All fields are read-only.

Examples

curl — personal key

Terminal
curl "https://vibecode.bitrix24.com/v1/catalogs/fields" \
  -H "X-Api-Key: YOUR_API_KEY"

curl — OAuth application

Terminal
curl "https://vibecode.bitrix24.com/v1/catalogs/fields" \
  -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/catalogs/fields', {
  headers: {
    'X-Api-Key': 'YOUR_API_KEY',
  },
})

const { success, data } = await res.json()
console.log('Fields:', Object.keys(data.fields).length)

JavaScript — OAuth application

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

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

Response fields

data.fields is an object whose key matches the field name, and whose value contains type (the field type), readonly (true — the field cannot be passed on create or update), label (the display name), and description (a short description). The label/description values are returned in English. Request headers do not switch the language.

Field Type RO Description
id number yes Catalog identifier. Matches iblockId
iblockId number yes ID of the catalog information block. Used to filter GET /v1/catalog-products, GET /v1/catalog-sections, GET /v1/catalog-prices
iblockTypeId string yes Information block type, for example CRM_PRODUCT_CATALOG
lid string yes ID of the site the catalog is bound to
name string yes Catalog name
productIblockId number yes For an offers catalog — the iblockId of the linked product catalog. For a base product catalog — null
skuPropertyId number yes For an offers catalog — ID of the property linking the offer to the product. For a base catalog — null
subscription string yes Subscription catalog flag: Y or N
vatId number yes ID of the default VAT rate for the catalog's products
yandexExport boolean yes Whether the catalog is exported to Yandex.Market (true / false)

Response example

JSON
{
  "success": true,
  "data": {
    "fields": {
      "id": { "type": "number", "readonly": true, "label": "ID", "description": "Unique identifier of the commercial catalog." },
      "iblockId": { "type": "number", "readonly": true, "label": "Information block", "description": "ID of the information block backing the catalog; needed for /v1/catalog-products and /v1/catalog-sections." },
      "iblockTypeId": { "type": "string", "readonly": true, "label": "Information block type", "description": "Symbolic code of the information block type." },
      "lid": { "type": "string", "readonly": true, "label": "Site", "description": "Symbolic code of the site the catalog belongs to." },
      "name": { "type": "string", "readonly": true, "label": "Name", "description": "Catalog name as displayed to the user." },
      "productIblockId": { "type": "number", "readonly": true, "label": "Products information block", "description": "ID of the products information block for a catalog with SKUs (offers)." },
      "skuPropertyId": { "type": "number", "readonly": true, "label": "SKU property", "description": "ID of the property that links SKUs (offers) to their parent product." },
      "subscription": { "type": "string", "readonly": true, "label": "Subscription", "description": "Whether the catalog is a subscription catalog (Y/N)." },
      "vatId": { "type": "number", "readonly": true, "label": "VAT rate", "description": "ID of the VAT rate applied to the catalog by default." },
      "yandexExport": { "type": "boolean", "readonly": true, "label": "Yandex.Market export", "description": "Whether the catalog is exported to Yandex.Market." }
    }
  }
}

All fields are marked readonly: true — a catalog cannot be changed through the API.

Error response example

403 — no scope:

JSON
{
  "success": false,
  "error": {
    "code": "SCOPE_DENIED",
    "message": "This endpoint requires 'catalog' scope"
  }
}

Errors

HTTP Code Description
403 SCOPE_DENIED The API key does not have the catalog scope
401 MISSING_API_KEY The X-Api-Key header was not provided
429 RATE_LIMITED Rate limit exceeded: 300 requests per minute per portal, all API keys of the portal share one limit. The exact value arrives in the x-ratelimit-limit header (the cap is divided across replicas). Retry after the delay in the Retry-After header

Full list of common API errors — Errors.

See also