#Task fields
GET /v1/tasks/fields
Returns the task field schema: types, read-only flags, static value enumerations for status and priority.
#Examples
#curl — personal key
curl "https://vibecode.bitrix24.com/v1/tasks/fields" \
-H "X-Api-Key: YOUR_API_KEY"
#curl — OAuth application
curl "https://vibecode.bitrix24.com/v1/tasks/fields" \
-H "X-Api-Key: YOUR_APP_KEY" \
-H "Authorization: Bearer USER_SESSION_TOKEN"
#JavaScript — personal key
const res = await fetch('https://vibecode.bitrix24.com/v1/tasks/fields', {
headers: {
'X-Api-Key': 'YOUR_API_KEY',
},
})
const { success, data } = await res.json()
console.log('Fields:', Object.keys(data.fields).length)
console.log('status values:', data.fields.status.enum)
#JavaScript — OAuth application
const res = await fetch('https://vibecode.bitrix24.com/v1/tasks/fields', {
headers: {
'X-Api-Key': 'YOUR_APP_KEY',
'Authorization': 'Bearer USER_SESSION_TOKEN',
},
})
const { success, data } = await res.json()
#Response fields
Below are the main fields documented in the API. The response also returns their Bitrix24 UPPER_SNAKE_CASE equivalents (TITLE, RESPONSIBLE_ID, CREATED_DATE, etc.) — kept for backward compatibility.
| Field | Bitrix24 | Type | RO | Description |
|---|---|---|---|---|
id |
ID |
number | yes | Task identifier |
title |
TITLE |
string | Task title | |
description |
DESCRIPTION |
string | Description (supports BB-code) | |
responsibleId |
RESPONSIBLE_ID |
number | Responsible person. List: GET /v1/users |
|
createdBy |
CREATED_BY |
number | Creator. Set on create only (defaults to the key's user); rejected on PATCH. List: GET /v1/users |
|
status |
STATUS |
number | Task status. Allowed values in fields.status.enum |
|
priority |
PRIORITY |
number | Task priority. Allowed values in fields.priority.enum |
|
groupId |
GROUP_ID |
number | Workgroup. List: GET /v1/workgroups |
|
parentId |
PARENT_ID |
number | Parent task. List: GET /v1/tasks |
|
deadline |
DEADLINE |
datetime | Deadline (ISO 8601) | |
dateStart |
DATE_START |
datetime | yes | Actual date work on the task started. Filterable: ?filter[>=dateStart]=2026-05-01T00:00:00 |
startDatePlan |
START_DATE_PLAN |
datetime | Planned start date | |
endDatePlan |
END_DATE_PLAN |
datetime | Planned end date | |
timeEstimate |
TIME_ESTIMATE |
number | Effort estimate in seconds | |
tags |
TAGS |
object | array | Task tags. For a task WITH tags — a dictionary object { "<id>": { "id": <id>, "title": "<tag>" } }; for a task WITHOUT tags an empty array [] comes (not an empty object) — the type depends on the data, check Array.isArray() before accessing by key. Filter by a single tag: ?filter[tags]=tag (translated to B24 TAG) |
|
accomplices |
ACCOMPLICES |
array | Collaborators. List: GET /v1/users. Filter by a single user: ?filter[accomplices]=25 (translated to B24 ACCOMPLICE) |
|
auditors |
AUDITORS |
array | Watchers. List: GET /v1/users. Filter by a single user: ?filter[auditors]=25 (translated to B24 AUDITOR) |
|
closedDate |
CLOSED_DATE |
datetime | yes | Closing date (set on transition to status 5 or 6) |
createdDate |
CREATED_DATE |
datetime | yes | Creation date |
changedDate |
CHANGED_DATE |
datetime | yes | Date of the last change |
Decoding status — the fields.status.enum field:
| Value | Label | Description |
|---|---|---|
1 |
New | Initial state. New tasks are created with status 2; 1 is found in tasks imported from external systems or migrated from older portal versions |
2 |
Pending | Pending. The default status for new tasks |
3 |
In Progress | In progress |
4 |
Awaiting Control | Awaiting control. The assignee marked the task as done; the creator must confirm |
5 |
Completed | Completed |
6 |
Deferred | Deferred |
7 |
Declined | Declined |
Decoding priority — the fields.priority.enum field:
| Value | Label |
|---|---|
0 |
Low |
1 |
Normal |
2 |
High |
User fields (UF_*) are accepted on create/update and in filters in both spellings — ufCrmTask and UF_CRM_TASK (camelCase is converted automatically). ⚠ UF_CRM_TASK (the CRM binding) accepts an array of binding identifiers — ["D_123"] (deal), ["C_45"] (contact), ["CO_7"] (company), ["L_9"] (lead). A string instead of an array ("D_123") is silently ignored by Bitrix24 — the value will not be saved (verified on a live portal).
Nullability. Many optional fields come as null when not filled: parentId, dateStart, startDatePlan, endDatePlan, deadline, closedBy, closedDate, mark, sprintId, backlogId, durationFact, durationPlan, timeSpentInLogs, sorting, flowId, xmlId, ufCrmTask, ufMailMessage, and others. For type-safe clients (TS), declare such fields as T | null. The documented empty cases accomplices/auditors/checklist come as []; tags is the exception: without tags it comes as [], with tags — an object (see above).
#Response example
The main fields are shown. The full response additionally contains UPPER_SNAKE equivalents and system service fields.
{
"success": true,
"data": {
"fields": {
"id": { "type": "number", "readonly": true },
"title": { "type": "string", "readonly": false },
"description": { "type": "string", "readonly": false },
"responsibleId": { "type": "number", "readonly": false },
"createdBy": { "type": "number", "readonly": false, "createOnly": true },
"status": {
"type": "number",
"readonly": false,
"enum": [
{ "value": 1, "label": "New", "labelRu": "New" },
{ "value": 2, "label": "Pending", "labelRu": "Pending" },
{ "value": 3, "label": "In Progress", "labelRu": "In Progress" },
{ "value": 4, "label": "Awaiting Control", "labelRu": "Awaiting Control" },
{ "value": 5, "label": "Completed", "labelRu": "Completed" },
{ "value": 6, "label": "Deferred", "labelRu": "Deferred" },
{ "value": 7, "label": "Declined", "labelRu": "Declined" }
]
},
"priority": {
"type": "number",
"readonly": false,
"enum": [
{ "value": 0, "label": "Low", "labelRu": "Low" },
{ "value": 1, "label": "Normal", "labelRu": "Normal" },
{ "value": 2, "label": "High", "labelRu": "High" }
]
},
"deadline": { "type": "datetime", "readonly": false },
"createdDate": { "type": "datetime", "readonly": true },
"changedDate": { "type": "datetime", "readonly": true }
}
}
}
#Error response example
403 — no scope:
{
"success": false,
"error": {
"code": "SCOPE_DENIED",
"message": "This endpoint requires 'tasks' scope"
}
}
#Errors
| HTTP | Code | Description |
|---|---|---|
| 403 | SCOPE_DENIED |
The API key does not have the tasks scope |
| 401 | TOKEN_MISSING |
The API key has no configured tokens |
The full list of common API errors — Errors.
#See also
- Create task — which fields to pass
- Update task — which fields can be changed
- List tasks — filtering and sorting by fields
- Search tasks — the same fields in the POST variant
- Aggregate tasks — grouping by fields
- Entity API —
selectfor picking the needed fields