{% note tip "" %}
If you are developing integrations for Bitrix24 using AI tools (Codex, Claude Code, Cursor), connect to the MCP server so that the assistant can utilize the official REST documentation.
{% endnote %}
Scope:
tasksWho can execute the method: any user
{% note info "" %}
This method belongs to REST 3.0. The call specifics and response format of the new API version are described in the REST 3.0 overview.
{% endnote %}
The method tasks.task.access.field.list returns a list of available access permission fields for tasks.
{% include Note on required parameters %}
#|
|| Name
type | Description ||
|| select
array | List of description fields to return in the response.
Available fields:
name— field nametype— data typetitle— titledescription— descriptionvalidationRules— validation rulesrequiredGroups— required groupsfilterable— filter availability indicatorsortable— sort availability indicatoreditable— editability indicatormultiple— multiple value indicatorelementType— element type for composite fields || |#
{% include Footnote on examples %}
{% note info "" %}
The new API call differs by adding the /api/ segment to the request URL:
https://{installation_address}/rest/api/{user_id}/{webhook_token}/tasks.task.access.field.list
{% endnote %}
{% list tabs %}
-
cURL (Webhook)
curl -X POST \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ -d '{"select":["name","type","title","description","filterable","sortable","multiple"]}' \ https://**put_your_bitrix24_address**/rest/api/**put_your_user_id_here**/**put_your_webhook_here**/tasks.task.access.field.list
-
cURL (OAuth)
curl -X POST \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ -d '{"select":["name","type","title","description","filterable","sortable","multiple"],"auth":"**put_access_token_here**"}' \ https://**put_your_bitrix24_address**/rest/api/tasks.task.access.field.list
-
JS (TS)
// This snippet is an ES module: top-level await requires type="module" or a bundler. // $b24 is an already-initialized SDK instance (see the SDK "Get started" guide). import { Text } from '@bitrix24/b24jssdk' import type { B24Frame } from '@bitrix24/b24jssdk' declare const $b24: B24Frame // Shape of the payload returned in result (match the "response handling" section of the page) type AccessFieldListResult = { items: AccessFieldItem[] } type AccessFieldItem = { name: string type: string title: string description: string validationRules: unknown[] requiredGroups: string[] | null filterable: boolean sortable: boolean editable: boolean multiple: boolean elementType: string | null } try { // tasks.task.access.field.list returns a single page (max 50 records). For the whole result set // use a list helper: $b24.actions.v3.callList.make() returns every record as one // array, $b24.actions.v3.fetchList.make() yields them in chunks (async generator). // NOTE: the list helpers do not accept `order` (it is excluded from their params, so // passing it is a TS error) — keep this call.make + `start` variant when sort matters. const response = await $b24.actions.v3.call.make<AccessFieldListResult>({ method: 'tasks.task.access.field.list', params: { select: [ 'name', 'type', 'title', 'description', 'filterable', 'sortable', 'multiple', ], start: 0, }, requestId: Text.getUuidRfc4122() }) // The payload is available only on a successful response if (!response.isSuccess) { console.error(response.getErrorMessages().join('; ')) } else { const result = response.getData()!.result console.info('Fields count:', result.items.length, 'First field:', result.items[0]) } } catch (error) { // Thrown on transport or SDK failures (AjaxError, SdkError, etc.) console.error(error) }
-
JS (UMD)
<!-- Load the SDK (UMD build); it is exposed as the global B24Js --> <script src="https://unpkg.com/@bitrix24/b24jssdk@1/dist/umd/index.min.js"></script> <script> async function fetchAccessFieldList() { try { // Initialize the SDK inside a Bitrix24 frame const $b24 = await B24Js.initializeB24Frame() // tasks.task.access.field.list returns a single page (max 50 records). For the whole result set // use a list helper: $b24.actions.v3.callList.make() returns every record as one // array, $b24.actions.v3.fetchList.make() yields them in chunks (async generator). // NOTE: the list helpers do not accept `order` (it is excluded from their params, so // passing it is a TS error) — keep this call.make + `start` variant when sort matters. const response = await $b24.actions.v3.call.make({ method: 'tasks.task.access.field.list', params: { select: [ 'name', 'type', 'title', 'description', 'filterable', 'sortable', 'multiple', ], start: 0, }, requestId: B24Js.Text.getUuidRfc4122() }) // The payload is available only on a successful response if (!response.isSuccess) { console.error(response.getErrorMessages().join('; ')) return } const result = response.getData().result console.info('Fields count:', result.items.length, 'First field:', result.items[0]) } catch (error) { // Thrown on transport or SDK failures (AjaxError, SdkError, etc.) console.error(error) } } document.addEventListener('DOMContentLoaded', fetchAccessFieldList) </script>
-
PHP
SDKs do not yet support the
/rest/api/address in calls. Use direct HTTP requests, for example, viacurlorfetch.try { $response = $b24Service ->core ->call( 'tasks.task.access.field.list', [ 'select' => [ 'name', 'type', 'title', 'description', 'filterable', 'sortable', 'multiple' ] ] ); $result = $response ->getResponseData() ->getResult(); echo 'Success: ' . print_r($result, true); } catch (Throwable $e) { error_log($e->getMessage()); echo 'Error: ' . $e->getMessage(); }
-
BX24.js
SDKs do not yet support the
/rest/api/address in calls. Use direct HTTP requests, for example, viacurlorfetch.BX24.callMethod( 'tasks.task.access.field.list', { select: [ 'name', 'type', 'title', 'description', 'filterable', 'sortable', 'multiple' ] }, function(result){ console.info(result.data()); console.log(result); } );
-
PHP CRest
SDKs do not yet support the
/rest/api/address in calls. Use direct HTTP requests, for example, viacurlorfetch.require_once('crest.php'); $result = CRest::call( 'tasks.task.access.field.list', [ 'select' => [ 'name', 'type', 'title', 'description', 'filterable', 'sortable', 'multiple' ] ] ); echo '<PRE>'; print_r($result); echo '</PRE>';
-
Go
// client and ctx are already created — see the Go SDK section res, err := client.Core().Call(ctx, "tasks.task.access.field.list", b24.Params{ "select": []string{"name", "type", "title", "description", "filterable", "sortable", "multiple"}, }, b24.WithIdempotent()) if err != nil { return fmt.Errorf("tasks.task.access.field.list: %w", err) } // The method wraps the response in an object with the "items" key. raw, ok := b24.Unwrap(res.Result, "items") if !ok { return fmt.Errorf("no items key in the response") } var items []struct { Name string `json:"name"` Type string `json:"type"` Title string `json:"title"` Description string `json:"description"` Filterable bool `json:"filterable"` Sortable bool `json:"sortable"` } if err := json.Unmarshal(raw, &items); err != nil { return fmt.Errorf("parse response: %w", err) } for _, it := range items { fmt.Println(it.Name) }
{% endlist %}
HTTP Status: 200
{
"result": {
"items": [
{
"name": "id",
"type": "int",
"title": "ID",
"description": "Identifier",
"validationRules": [],
"requiredGroups": null,
"filterable": true,
"sortable": true,
"editable": false,
"multiple": false,
"elementType": null
}
]
},
"time": {
"start": 1769780464,
"finish": 1769780464.122003,
"duration": 0.1220030784606934,
"processing": 0,
"date_start": "2026-01-30T16:41:04+01:00",
"date_finish": "2026-01-30T16:41:04+01:00",
"operating_reset_at": 1769781064,
"operating": 0
}
}#|
|| Name
type | Description ||
|| result
object | Object containing response data ||
|| items
array | Array of objects describing the fields. The response structure depends on select ||
|| time
time | Information about the request execution time ||
|#
HTTP Status: 400
{
"error": {
"code": "BITRIX_REST_V3_EXCEPTION_UNKNOWNDTOPROPERTYEXCEPTION",
"message": "Unknown field `unknownField` for entity `DtoFieldDto`"
}
}{% include notitle error handling %}
Error Code: BITRIX_REST_V3_EXCEPTION_ACCESSDENIEDEXCEPTION
#|
|| Field | Error Description | How to Fix ||
|| - | Access denied | Check user permissions and the task scope ||
|#
Error Code: BITRIX_REST_V3_EXCEPTION_UNKNOWNDTOPROPERTYEXCEPTION
#|
|| Field | Error Description | How to Fix ||
|| select | Unknown field #FIELD# for entity DtoFieldDto | Only pass fields from the list: name, type, title, description, validationRules, requiredGroups, filterable, sortable, editable, multiple, elementType ||
|#
Error Code: BITRIX_REST_V3_EXCEPTION_INVALIDSELECTEXCEPTION
#|
|| Field | Error Description | How to Fix ||
|| select | Unable to recognize select expression #SELECT# | Pass select as an array of strings, for example ["name","type"] ||
|#
{% include system errors %}