Attach Files to Task tasks.task.file.attach
Scope:
taskWho can execute the method: task Creator or a user with edit access to the task
The method tasks.task.file.attach adds files from Disk to a task. The user must have read access or higher to the file.
Method Parameters
Required parameters are marked with *
|
Name |
Description |
|
taskId* |
The identifier of the task to which files need to be attached. The task identifier can be obtained when creating a new task or by using the old method of getting the task list |
|
fileIds* |
An array of file identifiers from Disk. File identifiers can be obtained in two ways. Use one of the file upload methods: Use one of the file list retrieval methods: |
Code Examples
How to Use Examples in Documentation
The call to the new API differs by the addition of the /api/ parameter in the request:
https://{installation_address}/rest/api/{user_id}/{webhook_token}/tasks.task.file.attach
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"taskId":8017,"fileIds":[1065,1077]}' \
https://**put_your_bitrix24_address**/rest/api/**put_your_user_id_here**/**put_your_webhook_here**/tasks.task.file.attach
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"taskId":8017,"fileIds":[1065,1077],"auth":"**put_access_token_here**"}' \
https://**put_your_bitrix24_address**/rest/api/tasks.task.file.attach
The SDK does not yet support calls to the address /rest/api/. Use direct HTTP requests, for example, via curl or fetch.
try
{
const response = await $b24.callMethod(
'tasks.task.file.attach',
{
taskId: 8017,
fileIds: [1065, 1077],
}
);
const result = response.getData().result;
console.log('Files attached:', result);
processResult(result);
}
catch( error )
{
console.error('Error:', error);
}
The SDK does not yet support calls to the address /rest/api/. Use direct HTTP requests, for example, via curl or fetch.
try {
$response = $b24Service
->core
->call(
'tasks.task.file.attach',
[
'taskId' => 8017,
'fileIds' => [1065, 1077]
]
);
$result = $response
->getResponseData()
->getResult();
echo 'Success: ' . print_r($result, true);
processData($result);
} catch (Throwable $e) {
error_log($e->getMessage());
echo 'Error attaching file: ' . $e->getMessage();
}
The SDK does not yet support calls to the address /rest/api/. Use direct HTTP requests, for example, via curl or fetch.
BX24.callMethod(
'tasks.task.file.attach',
{
taskId: 8017,
fileIds: [1065, 1077]
},
function(result){
console.info(result.data());
console.log(result);
}
);
The SDK does not yet support calls to the address /rest/api/. Use direct HTTP requests, for example, via curl or fetch.
require_once('crest.php');
$result = CRest::call(
'tasks.task.file.attach',
[
'taskId' => 8017,
'fileIds' => [1065, 1077]
]
);
echo '<PRE>';
print_r($result);
echo '</PRE>';
Response Handling
HTTP Status: 200
{
"result": {
"result": true
},
"time": {
"start": 1765357239,
"finish": 1765357239.724951,
"duration": 0.7249510288238525,
"processing": 0,
"date_start": "2025-12-10T12:00:39+01:00",
"date_finish": "2025-12-10T12:00:39+01:00",
"operating_reset_at": 1765357839,
"operating": 0
}
}
Returned Data
|
Name |
Description |
|
result |
The root element of the response. Contains an object with the key |
|
time |
Information about the execution time of the request |
Error Handling
HTTP Status: 400
{
"error": {
"code": "BITRIX_REST_V3_EXCEPTION_VALIDATION_REQUESTVALIDATIONEXCEPTION",
"message": "Error during request object validation",
"validation": [
{
"message": "Required field `taskId` is missing",
"field": "taskId"
}
]
}
}
|
Name |
Description |
|
error.code |
String error code. Use it to identify the type of exception |
|
error.message |
Text description of the error |
|
error.validation |
Array with error details. Present only in data validation errors |
|
error.validation[].field |
Name of the field where the validation error occurred |
|
error.validation[].message |
Description of the error related to the specified field |
Possible Error Codes
Request Validation Errors
Error Code: BITRIX_REST_V3_EXCEPTION_VALIDATION_REQUESTVALIDATIONEXCEPTION
|
Field |
Error Description |
How to Fix |
|
|
Required field |
Add the specified field to the request body |
|
|
Field |
Ensure that the provided value is of the correct type |
|
— |
Insufficient permissions |
No access to the specified file or task |
Statuses and System Error Codes
HTTP Status: 20x, 40x, 50x
The errors described below may occur when calling any method.
|
Status |
Code |
Description |
|
|
|
An internal server error has occurred, please contact the server administrator or Bitrix24 technical support |
|
|
|
An internal server error has occurred, please contact the server administrator or Bitrix24 technical support |
|
|
|
The request intensity limit has been exceeded |
|
|
|
The current method is not allowed to be called using batch |
|
|
|
The maximum length of parameters passed to the batch method has been exceeded |
|
|
|
Invalid access token or webhook code |
|
|
|
The methods must be called using the HTTPS protocol |
|
|
|
The REST API is blocked due to overload. This is a manual individual block, to remove it you need to contact Bitrix24 technical support |
|
|
|
The REST API is available only on commercial plans |
|
|
|
The user whose access token or webhook was used to call the method lacks permissions |
|
|
|
The manifest is not available |
|
|
|
The request requires higher privileges than those provided by the webhook token |
|
|
|
The provided access token has expired |
|
|
|
The user does not have access to the application. This means that the application is installed, but the account administrator has allowed access to this application only for specific users |
|
|
|
The public part of the site is closed. To open the public part of the site on an on-premise installation, disable the option "Temporary closure of the public part of the site". Path to the setting: Desktop > Settings > Product Settings > Module Settings > Main Module > Temporary closure of the public part of the site |
Continue Learning
- Update Task tasks.task.update
- Send Message to Task Chat tasks.task.chat.message.send
- Delete Task tasks.task.delete