[{"data":1,"prerenderedAt":7},["ShallowReactive",2],{"docs-entities\u002Ftasks\u002Ftime\u002Flist":3,"docs-tabs-entities\u002Ftasks\u002Ftime\u002Flist":6},{"content":4,"lastmod":5},"\n## List time-tracking entries\n\n`GET \u002Fv1\u002Ftasks\u002F:taskId\u002Ftime`\n\nReturns all time-tracking entries of a specific task, sorted by `id` (newest first).\n\n## Parameters\n\n| Parameter | Type | Required | Default | Description |\n|----------|-----|:-----:|-----------|---------|\n| `taskId` (path) | number | yes | — | Task ID |\n| `limit` (query) | number | | `50` | Page size |\n| `offset` (query) | number | | `0` | Skip N entries |\n\n**Filter format.** The task is provided by the `taskId` path parameter. The generic `filter` envelope is not supported: any bracket key `filter[...]`, a non-empty `filter` value, a JSON form including `filter={}`, or a repeated `filter` parameter returns `400 UNSUPPORTED_FILTER`. A single empty `filter=` parameter means no filter and still returns `200`. To filter by employee or period, use [GET \u002Fv1\u002Ftask-time](.\u002Fglobal-list.md) with the named parameters `userId`, `taskId`, `from`, and `to`.\n\n## Examples\n\n### curl — personal key\n\n```bash\ncurl \"https:\u002F\u002Fvibecode.bitrix24.com\u002Fv1\u002Ftasks\u002F289\u002Ftime\" \\\n  -H \"X-Api-Key: YOUR_API_KEY\"\n```\n\n### curl — OAuth application\n\n```bash\ncurl \"https:\u002F\u002Fvibecode.bitrix24.com\u002Fv1\u002Ftasks\u002F289\u002Ftime\" \\\n  -H \"X-Api-Key: YOUR_APP_KEY\" \\\n  -H \"Authorization: Bearer USER_SESSION_TOKEN\"\n```\n\n### JavaScript — personal key\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.com\u002Fv1\u002Ftasks\u002F289\u002Ftime', {\n  headers: {\n    'X-Api-Key': 'YOUR_API_KEY',\n  },\n})\n\nconst { success, data, meta } = await res.json()\nconst totalSeconds = data.reduce((sum, r) => sum + r.seconds, 0)\nconsole.log(`Total for the task: ${totalSeconds \u002F 60} min`)\n```\n\n### JavaScript — OAuth application\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.com\u002Fv1\u002Ftasks\u002F289\u002Ftime', {\n  headers: {\n    'X-Api-Key': 'YOUR_APP_KEY',\n    'Authorization': 'Bearer USER_SESSION_TOKEN',\n  },\n})\n\nconst { success, data, meta } = await res.json()\n```\n\n## Response fields\n\n| Field | Type | Description |\n|------|-----|---------|\n| `success` | boolean | Always `true` on success |\n| `data` | array | Array of time-tracking entries |\n| `data[].id` | number | Entry identifier |\n| `data[].taskId` | number | Parent task ID |\n| `data[].userId` | number | Author. Profile: `GET \u002Fv1\u002Fusers\u002F:userId` |\n| `data[].seconds` | number | Duration in seconds |\n| `data[].minutes` | number | Duration in minutes (derived from `seconds`) |\n| `data[].commentText` | string | Comment for the entry |\n| `data[].source` | string | Source: `2` — REST API |\n| `data[].createdDate` | datetime | When the entry was created |\n| `data[].dateStart` | datetime | Start of the tracked interval (filled automatically) |\n| `data[].dateStop` | datetime | End of the tracked interval (filled automatically) |\n| `meta.total` | number | Total number of time-tracking entries for the task |\n\n## Response example\n\n```json\n{\n  \"success\": true,\n  \"data\": [\n    {\n      \"id\": 163,\n      \"taskId\": 289,\n      \"userId\": 1,\n      \"commentText\": \"Draft preparation\",\n      \"seconds\": 1800,\n      \"minutes\": 30,\n      \"source\": \"2\",\n      \"createdDate\": \"2026-05-13T16:15:43+00:00\",\n      \"dateStart\": \"2026-05-13T17:15:43+00:00\",\n      \"dateStop\": \"2026-05-13T17:15:43+00:00\"\n    },\n    {\n      \"id\": 161,\n      \"taskId\": 289,\n      \"userId\": 1,\n      \"commentText\": \"\",\n      \"seconds\": 600,\n      \"minutes\": 10,\n      \"source\": \"2\",\n      \"createdDate\": \"2026-05-13T16:15:41+00:00\",\n      \"dateStart\": \"2026-05-13T17:15:41+00:00\",\n      \"dateStop\": \"2026-05-13T17:15:41+00:00\"\n    }\n  ],\n  \"meta\": {\n    \"total\": 2\n  }\n}\n```\n\n## Error response example\n\n403 — no scope:\n\n```json\n{\n  \"success\": false,\n  \"error\": {\n    \"code\": \"SCOPE_DENIED\",\n    \"message\": \"This endpoint requires 'task' scope\"\n  }\n}\n```\n\n## Errors\n\n| HTTP | Code | Description |\n|------|-----|---------|\n| 400 | `UNSUPPORTED_FILTER` | An unsupported `filter` was provided; the task comes from the path, while employee and period filters are available on `GET \u002Fv1\u002Ftask-time` |\n| 403 | `SCOPE_DENIED` | The API key lacks the `task` scope |\n| 401 | `TOKEN_MISSING` | The API key has no configured tokens |\n| 404 | `TASK_NOT_FOUND` | There is no task with this `taskId`, or it is not visible to this key |\n| 422 | `BITRIX_ERROR` | Bitrix24 returned an error while reading |\n\nFull list of common API errors — [Errors](\u002Fdocs\u002Ferrors).\n\n## Known specifics\n\n**Descending sort by `id`.** The most recently added entries are returned first. `limit` and `offset` work on top of this sort.\n\n## See also\n\n- [Get a time-tracking entry](.\u002Fget.md)\n- [Add an entry](.\u002Fcreate.md)\n- [Update a time-tracking entry](.\u002Fupdate.md)\n- [Delete a time-tracking entry](.\u002Fdelete.md)\n- [Tasks](\u002Fdocs\u002Fentities\u002Ftasks)\n","2026-10-09",{},1794739439285]