b24_call
Invoke any Bitrix24 REST API method directly by specifying the method name and parameters as a JSON object, supporting nested filters, fields, and authentication overrides.
Instructions
Call ANY Bitrix24 REST method directly — the universal escape hatch.
This is the most reliable tool and covers the entire API surface. Prefer it whenever a typed tool does not fit, or when a typed tool behaves oddly.
Parameters go as a JSON POST body, so nested arrays (filter, fields, select, order) are passed exactly as you write them — no manual encoding needed.
Args: method: REST method name (no leading slash), e.g. 'crm.deal.get'. params: JSON object of parameters, e.g. {"id": 42} or {"filter": {">=DATE_CREATE": "2026-01-01"}, "select": ["ID","TITLE"]}. webhook_url / personal_webhook: auth overrides (see server instructions).
Returns: JSON string with the full response envelope, e.g. {"result": , "total": <int?>, "next": <int?>, "time": {...}}. On failure: {"error": true, "code": "", "message": "..."}.
Write safety: if BITRIX_READ_ONLY=1, methods that mutate data (add/update/ delete/...) are refused with code B24_READONLY.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| method | Yes | Any Bitrix24 REST method, e.g. 'crm.deal.list', 'user.get', 'tasks.task.add'. | |
| params | No | Method parameters as a JSON object (nested filter/fields/select supported). | |
| webhook_url | No | Override the default incoming webhook for this call (https://<portal>/rest/<user_id>/<token>/). If omitted, uses personal_webhook, then the X-B24-Webhook HTTP header, then the BITRIX_WEBHOOK_URL env default. | |
| personal_webhook | No | Act as a specific user (their personal incoming webhook). Takes precedence over webhook_url. Required to write to the portal under that user's permissions. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |