สำหรับเอเจนต์ AI: markdown ของหน้านี้ — /docs-content-en/workday/work-reports.md ดัชนีเอกสาร — /llms.txt
บทความในเอกสารมีให้บริการเป็นภาษาอังกฤษในขณะนี้
Work reports
An employee's work report for a period: the employee creates and submits the report, and the manager reads their subordinates' reports and marks them.
Report contents — Report fields.
Scope: timeman | Base URL: https://vibecode.bitrix24.com/v1 | Authorization: X-Api-Key
List work reports
GET /v1/workday/work-reports
Returns an employee's work reports, filtered by period and paginated.
Requires the timeman scope. Bitrix24 checks the credential owner’s permissions. READONLY keys can read reports and cannot write them.
Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
userId (query) |
integer | yes | — | ID of the employee whose reports you need. List: GET /v1/users |
activeOnly (query) |
boolean | no | — | true returns submitted reports only |
dateFrom (query) |
string | no | — | Period start in ISO 8601 format with a time zone. Reports whose period overlaps the given one are returned; the boundaries are inclusive |
dateTo (query) |
string | no | — | Period end in the same format |
limit (query) |
integer | no | 50 |
How many reports to return, from 1 to 50 |
offset (query) |
integer | no | 0 |
How many reports to skip. Cannot be combined with page |
page (query) |
integer | no | 1 |
Page number, with limit reports per page. Cannot be combined with offset |
order (query) |
string | no | {"id":"desc"} |
Sort order — a JSON object with asc or desc directions, for example {"id":"asc"} |
select (query) |
string | no | — | Comma-separated report fields. For the list, see Report fields |
Examples
curl — personal key
curl "https://vibecode.bitrix24.com/v1/workday/work-reports?userId=101" \
-H "X-Api-Key: YOUR_API_KEY"
curl — OAuth application
curl "https://vibecode.bitrix24.com/v1/workday/work-reports?userId=101" \
-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/workday/work-reports?userId=101', {
headers: {
'X-Api-Key': 'YOUR_API_KEY',
},
})
const { data, meta } = await res.json()
JavaScript — OAuth application
const res = await fetch('https://vibecode.bitrix24.com/v1/workday/work-reports?userId=101', {
headers: {
'X-Api-Key': 'YOUR_APP_KEY',
'Authorization': 'Bearer USER_SESSION_TOKEN',
},
})
const { data, meta } = await res.json()
Response fields
| Field | Type | Description |
|---|---|---|
success |
boolean | true when the request succeeds |
data |
array | Array of reports. For the fields of each report, see Report fields |
meta.limit |
integer | Page size |
meta.offset |
integer | How many reports were skipped |
meta.hasMore |
boolean | true when the page holds limit reports and more may follow |
Response example
The main report fields are shown. For the full list, see Report fields:
{
"success": true,
"data": [
{
"id": 145,
"userId": 101,
"active": false,
"reportType": "day",
"reportDate": "2026-10-06T18:33:06.000Z",
"dateFrom": "2026-10-06T21:00:00.000Z",
"dateTo": "2026-10-06T21:00:00.000Z",
"report": "Sprint summary",
"type": "REPORT",
"mark": "N",
"approve": "N"
},
{
"id": 143,
"userId": 101,
"active": false,
"reportType": "day",
"reportDate": "2026-10-06T18:22:40.000Z",
"dateFrom": "2026-10-05T21:00:00.000Z",
"dateTo": "2026-10-05T21:00:00.000Z",
"report": "Weekly report",
"type": "REPORT",
"mark": "N",
"approve": "N"
}
],
"meta": {
"limit": 50,
"offset": 0,
"hasMore": false
}
}
Error response example
400 — userId is missing:
{
"success": false,
"error": {
"code": "INVALID_PARAMS",
"message": "Expected a positive integer"
}
}
Errors
| HTTP | Code | Description |
|---|---|---|
| 400 | WORKDAY_REPORT_LIMIT_EXCEEDED |
limit is greater than 50 |
| 400 | INVALID_PARAMS |
userId is missing, offset and page are both passed, select has an unknown field, a date is invalid, or an unknown parameter is passed |
| 403 | BITRIX_ACCESS_DENIED |
The credential owner lacks Bitrix24 permissions for this employee's reports |
| 409 | TIMEMAN_MODULE_NOT_ENABLED |
Time Management is not available on this portal |
| 422 | BITRIX_ERROR |
Bitrix24 refused the operation |
| 502 | BITRIX_UNAVAILABLE |
Bitrix24 is unavailable or returned a response of an unexpected shape |
| 401 | MISSING_API_KEY |
The X-Api-Key header was not passed |
| 401 | TOKEN_MISSING |
An app key was sent without a session token in Authorization: Bearer |
| 401 | INVALID_SESSION |
The session token is invalid or has expired |
| 403 | SCOPE_DENIED |
The key lacks the timeman scope |
| 429 | RATE_LIMITED |
The report read limit or the general request limit was exceeded |
The full list of common API errors — Errors.
Known specifics
selectkeeps only the listed fields in each report.idis always returned, even when it is not in the list.- Only
idsets the order. Other fields inorderapply afterid, so they do not change the order of the results. dateFromanddateTomust be strictly later than1970-01-01T00:00:00Z. An earlier date, or that exact timestamp, returns400 INVALID_PARAMS.