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 the product price field reference with 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 application

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 application

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 is an object keyed by field name. Each 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). The label/description values are returned in English. Request headers do not switch the language. data.batch is the list of operations accepted by a batch request.

Field Type RO Description
Fieldid Typenumber ROyes DescriptionPrice record identifier
FieldcatalogGroupId Typenumber ROno DescriptionPrice type. Type IDs vary by Bitrix24 account. List: GET /v1/catalog-price-types. The base type is the record whose base equals Y
Fieldcurrency Typestring ROno DescriptionPrice currency, e.g. USD. List: GET /v1/currencies
Fieldprice Typenumber ROno DescriptionPrice value
FieldproductId Typenumber ROno DescriptionID of the product the price belongs to. List: GET /v1/catalog-products
FieldquantityFrom Typenumber | null ROno DescriptionLower bound of the quantity range. null in responses when the price does not depend on quantity
FieldquantityTo Typenumber | null ROno DescriptionUpper bound of the quantity range. null in responses when the price does not depend on quantity
FieldpriceScale Typenumber ROyes DescriptionPrice in the Bitrix24 account's base currency. Set by the system
FieldextraId Typenumber | null ROyes DescriptionMarkup identifier (catalog_extra). Deprecated Bitrix24 field. Set by the system. null when no markup is assigned
FieldtimestampX Typedatetime ROyes DescriptionDate and time the price record was last modified, in ISO 8601 format (UTC)
Field Type Description
Fieldsuccess Typeboolean DescriptionAlways true on success
Fielddata Typeobject DescriptionThe field reference and the list of batch operations
Fielddata.fields Typeobject DescriptionPrice field descriptions, keyed by the field name from the table above
Fielddata.fields.<name>.type Typestring DescriptionField type: number, string, datetime
Fielddata.fields.<name>.readonly Typeboolean Descriptiontrue — the field is set by the system and is not accepted on creation or update
Fielddata.fields.<name>.nullable Typeboolean Descriptiontrue — the field can come back as null. The key is present only on such fields
Fielddata.fields.<name>.label Typestring DescriptionHuman-readable field name in English
Fielddata.fields.<name>.description Typestring DescriptionShort field description
Fielddata.batch Typestring[] DescriptionPrice 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, portal-specific. Read the ids from GET /v1/catalog-price-types; the base price type is the entry whose `base` is \"Y\" and its id is not necessarily 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
HTTP403 CodeSCOPE_DENIED DescriptionThe API key does not have the catalog scope
HTTP401 CodeTOKEN_MISSING DescriptionThe API key has no configured tokens
HTTP429 CodeRATE_LIMITED DescriptionRate limit exceeded: 300 requests per minute per portal. All API keys of the portal share one limit. The current limit is returned in the x-ratelimit-limit header. Retry after the delay in the Retry-After header

For the full list of common API errors, see Errors.

See also