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

Price fields

GET /v1/catalog-prices/fields

Returns a reference of product-price fields with their types, read-only and nullable flags, plus the list of operations available in a batch request.

Examples

curl — personal key

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

curl — OAuth app

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

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

JavaScript — OAuth app

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

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

Response fields

data.fields — 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), nullable (present when the field can come back as null), label (a human-readable field name) and description (a short description). label/description are returned in English. data.batch — the list of operations accepted by a batch request.

Field Type RO Description
id number yes Price record identifier
catalogGroupId number no Price type. Base price is 1. To see which price types are configured in your Bitrix24 account, check the catalogGroupId values in the price list
currency string no Price currency, e.g. USD. List: GET /v1/currencies
price number no Price value
productId number no ID of the product the price belongs to. List: GET /v1/catalog-products
quantityFrom number | null no Lower bound of the quantity range. null in responses when the price does not depend on quantity
quantityTo number | null no Upper bound of the quantity range. null in responses when the price does not depend on quantity
priceScale number yes Price in the Bitrix24 account's base currency. Set by the system
extraId number | null yes Markup identifier (catalog_extra). Deprecated Bitrix24 field. Set by the system. null when no markup is assigned
timestampX datetime yes Date and time the price record was last modified, in ISO 8601 format (UTC)
Field Type Description
success boolean Always true on success
data.fields.<name>.type string Field type: number, string, datetime
data.fields.<name>.readonly boolean true — the field is set by the system and is not accepted on creation or update
data.fields.<name>.nullable boolean true — the field can come back as null. The key is present only on such fields
data.fields.<name>.label string Human-readable field name
data.fields.<name>.description string Short field description
data.batch string[] Price operations available in a batch request: create, update, delete

Response example

JSON
{
  "success": true,
  "data": {
    "fields": {
      "id": { "type": "number", "readonly": true, "label": "ID", "description": "Record identifier of the catalog price." },
      "catalogGroupId": { "type": "number", "readonly": false, "label": "Price type", "description": "Price type identifier; base price type is 1." },
      "currency": { "type": "string", "readonly": false, "label": "Currency", "description": "Currency code of the price." },
      "price": { "type": "number", "readonly": false, "label": "Price", "description": "Numeric value of the price." },
      "productId": { "type": "number", "readonly": false, "label": "Product", "description": "ID of the product this price belongs to." },
      "quantityFrom": { "type": "number", "readonly": false, "nullable": true, "label": "Quantity from", "description": "Lower bound of the quantity range." },
      "quantityTo": { "type": "number", "readonly": false, "nullable": true, "label": "Quantity to", "description": "Upper bound of the quantity range." },
      "priceScale": { "type": "number", "readonly": true, "label": "Base price", "description": "Price in the Bitrix24 account's base currency." },
      "extraId": { "type": "number", "readonly": true, "nullable": true, "label": "Markup ID", "description": "Markup identifier (catalog_extra)." },
      "timestampX": { "type": "datetime", "readonly": true, "label": "Modified at", "description": "Date and time the price was last modified." }
    },
    "batch": ["create", "update", "delete"]
  }
}

The system fields priceScale, extraId, and timestampX are set by Bitrix24 and are read-only — they cannot be passed on creation or update.

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 TOKEN_MISSING The X-Api-Key header was not provided

The full list of common API errors — Errors.

See also