For AI agents: markdown of this page — /docs-content-en/entities/tasks/templates-list.md documentation index — /llms.txt
List task templates
GET /v1/task-templates
Returns one page of task templates. The filter and the field set are specified with Bitrix24 parameters in params.
Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
Parameterparams (query) |
Typestring | Requiredno | Default— | DescriptionURL-encoded JSON object of Bitrix24 parameters: filter — selection conditions, select — the field set. Field names are not converted. Example before encoding: {"filter":{"ID":75},"select":["ID","TITLE"]} |
Parameterstart (query) |
Typenumber | Requiredno | Default0 |
DescriptionPage offset. For the next page, pass meta.next from the previous response |
The method accepts no other query parameters.
Pagination. The response is one page. While the response contains meta.next, request the next page with start equal to meta.next. Pages are not loaded automatically.
Examples
curl — personal key
curl "https://vibecode.bitrix24.com/v1/task-templates" \
-H "X-Api-Key: YOUR_API_KEY"
curl — OAuth application
curl "https://vibecode.bitrix24.com/v1/task-templates" \
-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/task-templates', {
headers: {
'X-Api-Key': 'YOUR_API_KEY',
},
})
const { success, data, meta } = await res.json()
const templates = Object.values(data.task_templates)
console.log('Templates:', templates.map((t) => `${t.ID}: ${t.TITLE}`))
console.log('Next page:', meta.next ?? 'none')
JavaScript — OAuth application
const res = await fetch('https://vibecode.bitrix24.com/v1/task-templates', {
headers: {
'X-Api-Key': 'YOUR_APP_KEY',
'Authorization': 'Bearer USER_SESSION_TOKEN',
},
})
const { success, data, meta } = await res.json()
Response fields
| Field | Type | Description |
|---|---|---|
Fieldsuccess |
Typeboolean | Descriptiontrue on success |
Fielddata.task_templates |
Typeobject | DescriptionTemplates on the page: the key is the template ID, the value is the template. If there are no templates, the field is an empty array [] |
Fielddata.task_templates.<id>.ID |
Typenumber | DescriptionTemplate ID |
Fielddata.task_templates.<id>.TITLE |
Typestring | DescriptionTemplate title |
Fielddata.task_templates.<id>.DESCRIPTION |
Typestring | null | DescriptionTask description |
Fielddata.task_templates.<id>.PRIORITY |
Typestring | DescriptionPriority: 0 — low, 1 — normal, 2 — high |
Fielddata.task_templates.<id>.CREATED_BY |
Typestring | DescriptionCreator ID. Get: GET /v1/users/:id |
Fielddata.task_templates.<id>.RESPONSIBLE_ID |
Typenumber | DescriptionResponsible person ID. If RESPONSIBLE_ID is passed in select, it comes as a string. Get: GET /v1/users/:id |
Fielddata.task_templates.<id>.RESPONSIBLES |
Typearray | DescriptionResponsible person IDs. List: GET /v1/users |
Fielddata.task_templates.<id>.ACCOMPLICES |
Typearray | DescriptionParticipant IDs. List: GET /v1/users |
Fielddata.task_templates.<id>.AUDITORS |
Typearray | DescriptionObserver IDs. List: GET /v1/users |
Fielddata.task_templates.<id>.DEPENDS_ON |
Typearray | DescriptionIDs of the tasks the future task depends on. Get: GET /v1/tasks/:id |
Fielddata.task_templates.<id>.* |
Type— | DescriptionOther template fields, including user fields UF_*. See Get a task template |
Fieldmeta.total |
Typenumber | DescriptionNumber of templates matching the filter |
Fieldmeta.next |
Typenumber | Descriptionstart of the next page. Absent on the last page |
When a single template is retrieved, ID, RESPONSIBLE_ID and the member lists come as strings.
Response example
The main template fields are shown:
{
"success": true,
"data": {
"task_templates": {
"75": {
"ID": 75,
"TITLE": "Weekly status report",
"DESCRIPTION": null,
"PRIORITY": "1",
"CREATED_BY": "1295",
"GROUP_ID": null,
"RESPONSIBLE_ID": 1295,
"ACCOMPLICES": [],
"AUDITORS": [],
"RESPONSIBLES": [
1295
],
"DEPENDS_ON": []
}
}
},
"meta": {
"total": 1
}
}
Error response example
400 — a query parameter other than params and start was passed:
{
"success": false,
"error": {
"code": "INVALID_PARAMS",
"message": "Only params and start are supported"
}
}
Errors
| HTTP | Code | Description |
|---|---|---|
| HTTP400 | CodeINVALID_PARAMS |
DescriptionA query parameter other than params and start was passed. Message Only params and start are supported |
| HTTP400 | CodeINVALID_PARAMS |
Descriptionparams is not a JSON object. Message params must be a JSON object |
| HTTP400 | CodeINVALID_PARAMS |
Descriptionstart is not a non-negative integer. Message start must be a non-negative integer |
| HTTP401 | CodeMISSING_API_KEY |
DescriptionThe X-Api-Key header is missing |
| HTTP401 | CodeTOKEN_MISSING |
DescriptionThe key has no Bitrix24 tokens |
| HTTP403 | CodeSCOPE_DENIED |
DescriptionThe key does not have the task scope |
| HTTP422 | CodeBITRIX_ERROR |
DescriptionBitrix24 rejected the call. The text is in error.message |
| HTTP429 | CodeRATE_LIMITED |
DescriptionRequest rate exceeded. The effective cap is in the x-ratelimit-limit header |
Full list of common API errors — Errors.