[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"docs-entities\u002Fbasket-items\u002Fsearch":3,"docs-tabs-entities\u002Fbasket-items\u002Fsearch":6},{"content":4,"lastmod":5},"\n## Поиск позиций корзины\n\n`POST \u002Fv1\u002Fbasket-items\u002Fsearch`\n\nПоиск позиций корзины с фильтрацией и автоматической пагинацией. Аналогичен [`GET \u002Fv1\u002Fbasket-items`](.\u002Flist.md), но параметры передаются в теле POST-запроса — подходит для сложных запросов с большим количеством условий.\n\n## Поля запроса (тело)\n\n| Параметр | Тип | По умолч. | Описание |\n|----------|-----|-----------|---------|\n| `filter` | object | — | Фильтрация по полям позиции.\u003Cbr>[Синтаксис фильтрации](\u002Fdocs\u002Ffiltering) |\n| `limit` | number | `50` | Количество записей (до 5000) |\n| `select` | string[] | — | Выборка полей: `[\"id\", \"orderId\", \"name\", \"quantity\", \"price\"]` |\n| `order` | object | — | Сортировка: `{ \"id\": \"desc\" }` |\n\n## Примеры\n\n### curl — личный ключ\n\n```bash\ncurl -X POST \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fbasket-items\u002Fsearch\" \\\n  -H \"X-Api-Key: YOUR_API_KEY\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"filter\": { \"orderId\": 33 },\n    \"limit\": 10,\n    \"select\": [\"id\", \"orderId\", \"name\", \"quantity\", \"price\", \"currency\"]\n  }'\n```\n\n### curl — OAuth-приложение\n\n```bash\ncurl -X POST \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fbasket-items\u002Fsearch\" \\\n  -H \"X-Api-Key: YOUR_APP_KEY\" \\\n  -H \"Authorization: Bearer USER_SESSION_TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"filter\": { \"orderId\": 33 },\n    \"limit\": 10,\n    \"select\": [\"id\", \"orderId\", \"name\", \"quantity\", \"price\", \"currency\"]\n  }'\n```\n\n### JavaScript — личный ключ\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fbasket-items\u002Fsearch', {\n  method: 'POST',\n  headers: {\n    'X-Api-Key': 'YOUR_API_KEY',\n    'Content-Type': 'application\u002Fjson',\n  },\n  body: JSON.stringify({\n    filter: { orderId: 33 },\n    limit: 10,\n    select: ['id', 'orderId', 'name', 'quantity', 'price', 'currency'],\n  }),\n})\n\nconst { success, data, meta } = await res.json()\nconsole.log('Найдено:', meta.total)\n```\n\n### JavaScript — OAuth-приложение\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fbasket-items\u002Fsearch', {\n  method: 'POST',\n  headers: {\n    'X-Api-Key': 'YOUR_APP_KEY',\n    'Authorization': 'Bearer USER_SESSION_TOKEN',\n    'Content-Type': 'application\u002Fjson',\n  },\n  body: JSON.stringify({\n    filter: { orderId: 33 },\n    limit: 10,\n    select: ['id', 'orderId', 'name', 'quantity', 'price', 'currency'],\n  }),\n})\n\nconst { success, data, meta } = await res.json()\n```\n\n## Поля ответа\n\n| Поле | Тип | Описание |\n|------|-----|---------|\n| `success` | boolean | Всегда `true` при успехе |\n| `data` | array | Массив позиций корзины |\n| `meta.total` | number | Общее количество записей, соответствующих фильтру |\n| `meta.hasMore` | boolean | Есть ли ещё записи за пределами `limit` |\n\n## Пример ответа\n\n```json\n{\n  \"success\": true,\n  \"data\": [\n    {\n      \"id\": 9,\n      \"orderId\": 33,\n      \"name\": \"Домашние Тапочки Любимый Спорт\",\n      \"quantity\": 1,\n      \"price\": 470,\n      \"currency\": \"RUB\"\n    }\n  ],\n  \"meta\": {\n    \"total\": 1,\n    \"hasMore\": false\n  }\n}\n```\n\n## Пример ответа при ошибке\n\n400 — фильтр по несуществующему полю:\n\n```json\n{\n  \"success\": false,\n  \"error\": {\n    \"code\": \"UNKNOWN_FILTER_FIELD\",\n    \"message\": \"Unknown filter field 'foo' for entity 'basket-items'. Available: …\"\n  }\n}\n```\n\n## Ошибки\n\n| HTTP | Код | Описание |\n|------|-----|---------|\n| 400 | `UNKNOWN_FILTER_FIELD` | Фильтр по полю, которого нет в схеме |\n| 403 | `SCOPE_DENIED` | API-ключ не имеет скоупа `sale` |\n| 401 | `TOKEN_MISSING` | API-ключ не имеет настроенных токенов |\n\nПолный список общих ошибок API — [Ошибки](\u002Fdocs\u002Ferrors).\n\n## Известные особенности\n\n**`select` ограничивает поля в ответе.** Если передан `select`, в каждом элементе `data[]` будут только перечисленные поля. Без `select` возвращаются все поля позиции.\n\n**Поиск товара по всем заказам.** Фильтр `{\"productId\": 119}` без `orderId` найдёт все позиции с этим товаром по всему порталу — это даёт срез продаж конкретного товара.\n\n## Смотрите также\n\n- [Список позиций](.\u002Flist.md)\n- [Получить позицию](.\u002Fget.md)\n- [Заказ](..\u002Forders\u002Fget.md)\n- [Синтаксис фильтрации](\u002Fdocs\u002Ffiltering)\n- [Batch](\u002Fdocs\u002Fbatch)\n- [Лимиты и оптимизация](\u002Fdocs\u002Foptimization)\n","2026-06-29",{}]