Overview
Use CallV3.make() to call REST API version 3 methods.
The method returns a Promise with an AjaxResult object containing response data, status, and error handling methods.
// Basic usage
const response = await $b24.actions.v3.call.make({
method: 'tasks.task.get',
params: {
id: 123
},
requestId: 'unique-request-id'
})
Method Signature
make<T = unknown>(
options: ActionCallV3
): Promise<AjaxResult<T>>
Parameters
The options object contains the following properties:
Return Value
Promise<AjaxResult<T>> — a promise that resolves to an AjaxResult object.
This object provides:
.getData(): SuccessPayload<T> | undefined— returns the success envelope{ result: T, time: PayloadTime }, orundefinedwhen the request failed. Check.isSuccessfirst..isSuccess: boolean— flag indicating successful request execution..getErrorMessages(): string[]— array of error messages.
Error Handling
Calling a method that is not supported by REST API version 3 throws an SdkError with code JSSDK_CORE_METHOD_NOT_SUPPORT_IN_API_V3 before any HTTP request is made. Use CallV2.make() for legacy methods, or check apidocs.bitrix24.com to see which methods are available in v3.
For successful requests, always check isSuccess and handle errors:
// @check-ignore: top-level return in error-handling illustration
const response = await $b24.actions.v3.call.make({
method: 'some.method',
params: { /* some_params */ },
requestId: 'unique-request-id'
})
if (!response.isSuccess) {
// Handling error
console.error(new Error(`Error: ${response.getErrorMessages().join('; ')}`))
return
}
// Working with a successful result
const data = response.getData()?.result
Examples
Getting a Task
Long-Running Requests
Heavy non-idempotent methods like crm.documentgenerator.document.add
routinely exceed the default 30-second axios timeout. On a timeout the SDK
retries by default, which can create duplicate entities server-side (see
issue #24).
For any method that creates or persists state, raise the axios timeout and disable retries on transport errors:
import { ApiVersion, ParamsFactory } from '@bitrix24/b24jssdk'
// const $b24 = ...
$b24.getHttpClient(ApiVersion.v3).ajaxClient.defaults.timeout = 120_000
await $b24.setRestrictionManagerParams({
...ParamsFactory.getDefault(),
retryOnNetworkError: false
})
await $b24.actions.v3.call.make({
method: 'crm.deal.add',
params: {/*…*/}
})
See Limiters → Long-Running Requests & Non-idempotent Calls for the full explanation and alternative configurations.