لوكلاء AI: ملف markdown لهذه الصفحة — /docs-content-en/entities/workgroups.md فهرس التوثيق — /llms.txt

مقالات التوثيق متاحة حاليًا باللغة الإنجليزية فقط.

Workgroups

Manage Bitrix24 account workgroups and projects: create, get, update, delete, search. A workgroup brings employees together around a shared topic or project — it has an owner, a subject, openness and archiving flags, and a member count.

Bitrix24 API: sonet_group.* Scope: sonet_group

Create a workgroup

POST /v1/workgroups

Creates a new workgroup in the Bitrix24 account. Returns the full object of the created group. There is one required field — name; the rest of the parameters are optional.

Request fields (body)

Field Type Required Default Description
Fieldname Typestring Required★ Default— DescriptionWorkgroup name
Fielddescription Typestring Requiredno Default— DescriptionDescription
FieldownerId Typenumber Requiredno Defaultcurrent key user DescriptionGroup owner identifier. List: GET /v1/users
FieldsubjectId Typenumber Requiredno Defaultdefault Bitrix24 account subject DescriptionSubject identifier
Fieldactive Typeboolean Requiredno Defaulttrue DescriptionWhether the group is active
Fieldvisible Typeboolean Requiredno Default— DescriptionWhether it is visible in shared lists. The actual value is in the response, see "The group is created as a collab"
Fieldopened Typeboolean Requiredno Defaultfalse DescriptionWhether it is open for joining without an invitation. The actual value is in the response, see "The group is created as a collab"
Fieldarchived Typeboolean Requiredno Defaultfalse DescriptionPlace into the archive immediately on creation
FieldisProject Typeboolean Requiredno Default— DescriptionCreate as a project. The actual value is in the response, see "The group is created as a collab"
Fieldkeywords Typestring Requiredno Default— DescriptionKeywords for search. Not saved on create, see "Keywords are not saved on create"

isExtranet is read-only and derived from the group's site bindings in Bitrix24. Passing isExtranet, IS_EXTRANET, is_extranet or isextranet returns 400 READONLY_FIELD before creating a group: both false and true are rejected, including the current value. Remove this field from write bodies; reads still return the actual flag.

In POST /v1/workgroups/batch with action: create or action: update, this field causes 400 BATCH_ITEM_VALIDATION before the entire batch is sent. In POST /v1/batch, the rejected operation receives READONLY_FIELD in data.errors.<id>; the HTTP status is 400 if all operations are rejected, or 200 for a mixed result, with valid sibling operations executed.

Examples

curl — personal key

Terminal
curl -X POST "https://vibecode.bitrix24.com/v1/workgroups" \
  -H "X-Api-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Marketing 2026",
    "description": "Coordinating ad campaigns",
    "opened": true,
    "isProject": true
  }'

curl — OAuth application

Terminal
curl -X POST "https://vibecode.bitrix24.com/v1/workgroups" \
  -H "X-Api-Key: YOUR_APP_KEY" \
  -H "Authorization: Bearer USER_SESSION_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Marketing 2026",
    "description": "Coordinating ad campaigns",
    "opened": true,
    "isProject": true
  }'

JavaScript — personal key

javascript
const res = await fetch('https://vibecode.bitrix24.com/v1/workgroups', {
  method: 'POST',
  headers: {
    'X-Api-Key': 'YOUR_API_KEY',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    name: 'Marketing 2026',
    description: 'Coordinating ad campaigns',
    opened: true,
    isProject: true,
  }),
})

const { success, data } = await res.json()
console.log('Workgroup ID:', data.id)

JavaScript — OAuth application

javascript
const res = await fetch('https://vibecode.bitrix24.com/v1/workgroups', {
  method: 'POST',
  headers: {
    'X-Api-Key': 'YOUR_APP_KEY',
    'Authorization': 'Bearer USER_SESSION_TOKEN',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    name: 'Marketing 2026',
    description: 'Coordinating ad campaigns',
    opened: true,
    isProject: true,
  }),
})

const { success, data } = await res.json()

Response fields

Returns the full object of the created workgroup.

Field Type Description
Fieldsuccess Typeboolean DescriptionAlways true on success
Fielddata Typeobject DescriptionThe created workgroup object. Full field description — Get a workgroup or Workgroup fields

Response example

JSON
{
  "success": true,
  "data": {
    "id": 201,
    "siteId": "ex",
    "name": "Marketing 2026",
    "description": "Coordinating ad campaigns",
    "dateCreate": "2026-10-20T06:48:43.000Z",
    "dateUpdate": "2026-10-20T06:48:43.000Z",
    "active": true,
    "visible": false,
    "opened": false,
    "archived": false,
    "subjectId": 1,
    "ownerId": 1317,
    "keywords": null,
    "membersCount": 1,
    "dateActivity": "2026-10-20T06:48:43.000Z",
    "subjectName": "Workgroups",
    "isProject": true,
    "isExtranet": true
  }
}

Error response example

422 — the required name field was not passed:

JSON
{
  "success": false,
  "error": {
    "code": "BITRIX_ERROR",
    "message": "Title not specified"
  }
}

Errors

HTTP error.code Description
HTTP400 error.codeREADONLY_FIELD DescriptionA read-only field was passed, including isExtranet or IS_EXTRANET
HTTP422 error.codeBITRIX_ERROR DescriptionBitrix24 declined to create the group — the reason text is in error.message. Typical reason: the required name field is missing
HTTP401 error.codeMISSING_API_KEY DescriptionThe X-Api-Key header was not passed
HTTP401 error.codeINVALID_API_KEY DescriptionThe key is not recognized — no such key exists on the platform
HTTP403 error.codeSCOPE_DENIED DescriptionThe key does not have the sonet_group scope

Full list of common API errors — Errors.

Known specifics

The group is created as a collab. On the Bitrix24 accounts we checked, a new group is created as a collab regardless of the request body. The response carries isProject: true, siteId: "ex", isExtranet: true, visible: false and opened: false, even when the request passed isProject: false or opened: true. The project flag cannot be cleared on such a group: PATCH /v1/workgroups/:id with isProject: false answers 422 BITRIX_ERROR with the text Field 'PROJECT' can not be updated from 'Y' for collab. Read the actual field values from the create response.

Keywords are not saved on create. Bitrix24 does not save keywords passed when the group is created: the create response and later reads return keywords: null. The same applies to action: create in POST /v1/workgroups/batch and POST /v1/batch. To set keywords, send PATCH /v1/workgroups/:id with the keywords field after the group is created — the update saves the value.

The group chat is created together with the group. Right after creation the group has one chat, a collab chat. Its card has type set to collab, entityType set to SONET_GROUP and entityId set to the group id. There is no separate main chat. Dialog ID by external ID returns this chat's dialogId for an externalId of the form sgN, where N is the id from the response. You do not need to create a chat for the group with POST /v1/chats: type: "COLLAB" with its entityId creates a second collab chat.

The avatar and permissions of the group chat cannot be set through the API. The avatar, message permissions and the v2-mode update answer 403 BITRIX_ACCESS_DENIED for a collab chat, including for its owner. The workgroup imageUrl field is read-only: PATCH /v1/workgroups/:id with it returns 400 READONLY_FIELD. No other API method sets the avatar of this chat.

See also