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

Get a product from a lead

GET /v1/leads/:id/products/:rowId

Returns a single lead product row by row ID.

Parameters

Parameter Type Required Description
Parameterid (path) Typenumber Requiredyes DescriptionLead ID. List: GET /v1/leads
ParameterrowId (path) Typenumber Requiredyes DescriptionProduct row ID. List: GET /v1/leads/:id/products

rowId is the product row ID, not the productId from the product catalog.

Examples

curl — personal key

Terminal
curl -X GET "https://vibecode.bitrix24.com/v1/leads/1001333/products/2373" \
  -H "X-Api-Key: YOUR_API_KEY"

curl — OAuth application

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

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

JavaScript — OAuth application

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

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

Response fields

Field Type Description
Fieldsuccess Typeboolean DescriptionAlways true on success
Fielddata Typeobject DescriptionLead product row
Fielddata.id Typenumber DescriptionProduct row ID
Fielddata.productId Typenumber DescriptionCatalog product ID
Fielddata.productName Typestring DescriptionProduct name
Fielddata.price Typenumber DescriptionUnit price
Fielddata.quantity Typenumber DescriptionQuantity
Fielddata.discount Typenumber DescriptionDiscount amount
Fielddata.discountRate Typenumber DescriptionDiscount percentage
Fielddata.discountTypeId Typenumber DescriptionDiscount type (1 — amount, 2 — percentage)
Fielddata.taxRate Typenumber | null DescriptionTax rate (%)
Fielddata.taxIncluded Typeboolean DescriptionTax included in price
Fielddata.customized Typestring DescriptionRow modification flag: Y or N
Fielddata.priceExclusive Typenumber DescriptionPrice excluding tax, with discount
Fielddata.priceNetto Typenumber DescriptionNet price
Fielddata.priceBrutto Typenumber DescriptionGross price
Fielddata.priceAccount Typenumber DescriptionPrice in the reporting currency
Fielddata.measureCode Typenumber DescriptionUnit of measure code
Fielddata.measureName Typestring DescriptionUnit of measure name
Fielddata.sort Typenumber DescriptionSort order
Fielddata.ownerId Typenumber DescriptionID of the owner entity the row belongs to
Fielddata.ownerType Typestring DescriptionRow owner type, L for a lead
Fielddata.storeId Typenumber | null DescriptionWarehouse ID. List: GET /v1/warehouses. null when inventory management is off
Fielddata.xmlId Typestring DescriptionExternal code of the row
Fielddata.type Typenumber DescriptionProduct type — the same value as the product's type in GET /v1/catalog-products/:id: 1 — simple product, 3 — parent product with variations, 7 — service

Response example

JSON
{
  "success": true,
  "data": {
    "id": 2373,
    "ownerId": 1001333,
    "ownerType": "L",
    "productId": 6967,
    "productName": "Parent product",
    "price": 25000,
    "priceAccount": 25000,
    "priceExclusive": 25000,
    "priceNetto": 25000,
    "priceBrutto": 25000,
    "quantity": 2,
    "discountTypeId": 2,
    "discountRate": 0,
    "discount": 0,
    "taxRate": null,
    "taxIncluded": false,
    "customized": "Y",
    "measureCode": 796,
    "measureName": "pcs",
    "sort": 0,
    "xmlId": "",
    "type": 3,
    "storeId": null
  }
}

Error response example

404 — no product row with this rowId:

JSON
{
  "success": false,
  "error": {
    "code": "ENTITY_NOT_FOUND",
    "message": "Item not found"
  }
}

Errors

HTTP Code Description
HTTP400 CodeINVALID_ROW_ID DescriptionrowId in the path is not a positive integer. The message is Product row ID must be a positive integer
HTTP404 CodeENTITY_NOT_FOUND DescriptionNo product row with this rowId. The message is Item not found
HTTP404 CodeENTITY_NOT_FOUND DescriptionA row with this rowId exists but belongs to another CRM record, not to lead id, or carries no owner and cannot pass the check. The message is Product row not found
HTTP403 CodeSCOPE_DENIED DescriptionAPI key lacks the crm scope
HTTP401 CodeTOKEN_MISSING DescriptionAPI 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