## Текст и картинки блока

`PATCH /v1/pages/:pageId/blocks/:blockId/nodes`

Меняет черновик узлов. Значение: строка, объект картинки {src, alt}, ссылки {href, text, target} или массив иконки. Для текстового узла нужны строка, целое число или объект с полем text такого же типа; неподходящее значение получает 400. Ключи attrs, dynamicState, dynamicBlock, dynamicParams не принимаются. Б24 обезвреживает script и обработчики on*, может сохранить изменённый текст. Ответ содержит перечитанный HTML. Число должно передаваться в JSON десятичным целым в диапазоне PHP int64; значения вне диапазона получают 400, потому что Б24 пропускает float без изменения текста.

Требуется скоуп `landing`; READONLY-ключ получает 403 до обращения к Б24.

## Параметры

`pageId` и `blockId`: положительные целые безопасные числа; блок должен принадлежать странице. Необязательный query `scope=KNOWLEDGE|GROUP|MAINPAGE` для контекста страницы.

Селектор: `.class` или `.class@N`, индекс с нуля. Набор не может быть пустым. Доступные селекторы берите из манифеста блока; ошибка неизвестного селектора содержит доступные селекторы.

## Пример

```bash
curl -X PATCH "https://vibecode.bitrix24.tech/v1/pages/42/blocks/7/nodes" \
  -H "X-Api-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"nodes":{".landing-block-node-title":"Title"}}'
```

## Ответ

```json
{
  "success": true,
  "data": {
    "id": 7,
    "pageId": 42,
    "anchor": "chapter",
    "content": "<h2 class=\"landing-block-node-title\">Title</h2>",
    "nodes": {},
    "styles": {},
    "attrs": {},
    "cards": {},
    "active": true
  }
}
```

HTML — строка данных: при отображении используйте санитайзер. Отсутствующие в ответе Б24 nodes/styles/attrs/cards возвращаются пустыми объектами; сохранённые значения видны в content.

## Ошибки

400 `INVALID_PARAMS` / `MISSING_REQUIRED_FIELDS` / `INVALID_SCOPE`; 403 `SCOPE_DENIED` / `WRITE_BLOCKED_READONLY_KEY`; 404 `ENTITY_NOT_FOUND`; 409 `LANDING_MODULE_NOT_ENABLED` / `PORTAL_ADDRESS_CHANGED`; 422 `BITRIX_ERROR`; 429, 502, 503.
