
## Warehouse stock record

`GET /v1/warehouses/:id/stock/:recordId`

Reads one stock row through `catalog.storeproduct.get`. Take its ID from the [stock list](/docs/entities/warehouses/stock). This is neither a product ID nor a warehouse ID. Requires `catalog` scope. Read-only keys are accepted.

## Path parameters

| Parameter | Type | Description |
|----------|-----|---------|
| `id` | number | Warehouse ID, a canonical positive safe integer |
| `recordId` | number | Stock row ID, a canonical positive safe integer |

## Examples

### curl - personal key

```bash
curl "https://vibecode.bitrix24.com/v1/warehouses/1/stock/3" \
  -H "X-Api-Key: YOUR_API_KEY"
```

### curl - OAuth application

```bash
curl "https://vibecode.bitrix24.com/v1/warehouses/1/stock/3" \
  -H "X-Api-Key: YOUR_APP_KEY" \
  -H "Authorization: Bearer USER_SESSION_TOKEN"
```

## Response fields

| Field | Type | Description |
|------|-----|---------|
| `success` | boolean | `true` on success |
| `data.id` | number | Stock row ID |
| `data.productId` | number | Product ID |
| `data.storeId` | number | Warehouse ID |
| `data.amount` | number or null | Stock amount |
| `data.quantityReserved` | number or null | Reserved amount, which may exceed stock |

## Response example

```json
{"success":true,"data":{"id":3,"productId":200,"storeId":1,"amount":15,"quantityReserved":30}}
```

## Errors

| HTTP | Code | Description |
|------|-----|---------|
| 400 | `INVALID_PARAMS` | Invalid `id` or `recordId`, refused before calling Bitrix24 |
| 401 | `TOKEN_MISSING` | No configured credentials |
| 403 | `SCOPE_DENIED` | Missing `catalog` scope |
| 403 | `BITRIX_ACCESS_DENIED` | Bitrix24 explicitly denied method access |
| 404 | `ENTITY_NOT_FOUND` | Missing, inaccessible or foreign-warehouse row |
| 422 | `BITRIX_ERROR` | Bitrix24 business refusal |
| 429 | `QUEUE_OVERFLOW` | Call queue is full |
| 502 | `BITRIX_UNAVAILABLE` | Bitrix24 unavailable |
| 503 | `BITRIX_TIMEOUT` | Bitrix24 timeout |

An inaccessible warehouse row is indistinguishable from a missing row. The API returns `404` in both cases. Stock and reserve preserve `null` when Bitrix24 returns it.

See [Errors](/docs/errors) for common refusals.

## See also

- [Warehouse stock](/docs/entities/warehouses/stock)
- [Stock totals](/docs/entities/warehouses/stock-totals)
