Add Folder to Site landing.site.addFolder
Scope:
landingWho can execute the method: a user with "edit" access permission for the site
The method landing.site.addFolder creates a folder in the specified site and returns the identifier of the created folder.
Method Parameters
Required parameters are marked with *
|
Name |
Description |
|
siteId* |
The identifier of the site where the folder needs to be created. The site identifier can be obtained using the landing.site.getList method or from the result of the landing.site.add method |
|
fields* |
A set of fields for the folder being created (detailed description) |
Parameter fields
Required parameters are marked with *
|
Name |
Description |
|
TITLE* |
The name of the folder, maximum length |
|
CODE |
Symbolic code for the folder in the URL, maximum length If the code is empty after transliteration, a random string of length |
|
PARENT_ID |
The identifier of the parent folder. If the value is |
|
ACTIVE |
Folder activity flag |
Code Examples
How to Use Examples in Documentation
curl -X POST \
-H "Content-Type: application/json" \
-d '{
"siteId": 1817,
"fields": {
"TITLE": "New Folder",
"CODE": "new-folder",
"ACTIVE": "Y",
"PARENT_ID": 736
}
}' \
"https://**put.your-domain-here**/rest/**user_id**/**webhook_code**/landing.site.addFolder.json"
curl -X POST \
-H "Content-Type: application/json" \
-d '{
"siteId": 1817,
"fields": {
"TITLE": "New Folder",
"CODE": "new-folder",
"ACTIVE": "Y",
"PARENT_ID": 736
},
"auth": "**put_access_token_here**"
}' \
"https://**put.your-domain-here**/rest/landing.site.addFolder.json"
try
{
const response = await $b24.callMethod(
'landing.site.addFolder',
{
siteId: 1817,
fields: {
TITLE: 'New Folder',
CODE: 'new-folder',
ACTIVE: 'Y',
PARENT_ID: 736
}
}
);
const result = response.getData().result;
console.info(result);
}
catch (error)
{
console.error(error);
}
try {
$response = $b24Service
->core
->call(
'landing.site.addFolder',
[
'siteId' => 1817,
'fields' => [
'TITLE' => 'New Folder',
'CODE' => 'new-folder',
'ACTIVE' => 'Y',
'PARENT_ID' => 736,
],
]
);
$result = $response
->getResponseData()
->getResult();
echo 'Success: ' . print_r($result, true);
} catch (Throwable $e) {
error_log($e->getMessage());
echo 'Error adding folder: ' . $e->getMessage();
}
BX24.callMethod(
'landing.site.addFolder',
{
siteId: 1817,
fields: {
TITLE: 'New Folder',
CODE: 'new-folder',
ACTIVE: 'Y',
PARENT_ID: 736
}
},
function(result)
{
if (result.error())
{
console.error(result.error());
}
else
{
console.info(result.data());
}
}
);
require_once('crest.php');
$result = CRest::call(
'landing.site.addFolder',
[
'siteId' => 1817,
'fields' => [
'TITLE' => 'New Folder',
'CODE' => 'new-folder',
'ACTIVE' => 'Y',
'PARENT_ID' => 736,
],
]
);
if (isset($result['error']))
{
echo 'Error: ' . $result['error_description'];
}
else
{
echo '<pre>';
print_r($result['result']);
echo '</pre>';
}
Response Handling
HTTP Status: 200
{
"result": 89,
"time": {
"start": 1773169396,
"finish": 1773169396.875899,
"duration": 0.875899076461792,
"processing": 0,
"date_start": "2026-03-10T22:03:16+01:00",
"date_finish": "2026-03-10T22:03:16+01:00",
"operating_reset_at": 1773169996,
"operating": 0
}
}
Returned Data
|
Name |
Description |
|
result |
The identifier of the created folder |
|
time |
Information about the execution time of the request |
Error Handling
HTTP Status: 400
{
"error": "ACCESS_DENIED",
"error_description": "Site not found or access to it is denied."
}
|
Name |
Description |
|
error |
String error code. It may consist of digits, Latin letters, and underscores |
|
error_description |
Textual description of the error. The description is not intended to be shown to the end user in its raw form |
Possible Error Codes
|
Code |
Description |
|
|
Site not found or access to it is denied |
|
|
A required field is not filled, such as |
|
|
A folder with this name already exists. This error occurs when there is a conflict with |
|
|
The character |
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
- Change Folder in landing.site.updateFolder
- Get Site Folders landing.site.getFolders
- Mark Folder as Deleted landing.account.markFolderDelete