For AI agents: markdown of this page — /docs-content-en/workday/work-reports/create.md documentation index — /llms.txt
Create a work report
POST /v1/workday/work-reports
Requires the timeman scope. Bitrix24 checks the credential owner’s permissions. READONLY keys can read reports and cannot write them.
files is not accepted: the file identifier contract has not been verified.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| userId | integer | yes | Users |
| reportText, reportExtended, plansText, type | string / null | no | Only supplied values are changed |
| dateFrom, dateTo | string / null | no | ISO-8601 with time zone |
| tasks[].id | integer | yes | Tasks |
| tasks[].time, tasks[].title | number / string | no | TIME and TITLE of the task snapshot |
| events[].id | integer | yes | Calendar events |
| events[].ownerId, events[].title | integer / string | no | Event owner and snapshot title |
| autoFillDailyReports | boolean | no | false |
Examples
curl -X POST "https://vibecode.bitrix24.com/v1/workday/work-reports" -H "X-Api-Key: YOUR_API_KEY" -H "Content-Type: application/json" -d '{"userId": 101, "reportText": "Weekly report"}'
curl -X POST "https://vibecode.bitrix24.com/v1/workday/work-reports" -H "X-Api-Key: YOUR_APP_KEY" -H "X-Vibe-Authorization: Bearer USER_ACCESS_TOKEN" -H "Content-Type: application/json" -d '{"userId": 101, "reportText": "Weekly report"}'
const response = await fetch("https://vibecode.bitrix24.com/v1/workday/work-reports", {
"method": "POST",
"headers": {
"X-Api-Key": "YOUR_API_KEY",
"Content-Type": "application/json"
},
"body": "{\"userId\": 101, \"reportText\": \"Weekly report\"}"
});
const result = await response.json();
const response = await fetch("https://vibecode.bitrix24.com/v1/workday/work-reports", {
"method": "POST",
"headers": {
"X-Api-Key": "YOUR_APP_KEY",
"X-Vibe-Authorization": "Bearer USER_ACCESS_TOKEN",
"Content-Type": "application/json"
},
"body": "{\"userId\": 101, \"reportText\": \"Weekly report\"}"
});
const result = await response.json();
Response fields
| Field | Description |
|---|---|
| success | true |
| data | Report fields |
Response example:
{
"success": true,
"data": {
"id": 79,
"userId": 101,
"report": "Weekly report"
}
}
Errors
| HTTP | Code | Condition |
|---|---|---|
| 400 | INVALID_PARAMS | Invalid input |
| 403 | SCOPE_DENIED | Missing timeman scope |
| 403 | BITRIX_ACCESS_DENIED | Bitrix24 denies access or daily record is not owned by caller |
| 404 | ENTITY_NOT_FOUND | Report or record not found |
| 409 | TIMEMAN_MODULE_NOT_ENABLED | Time Management unavailable |
| 422 | BITRIX_ERROR | Bitrix24 business refusal or false decision result |
| 429 | RATE_LIMITED | Read or global rate limit |
| 502 | BITRIX_UNAVAILABLE | Unexpected response or Bitrix24 unavailable |
| 403 | WRITE_BLOCKED_READONLY_KEY | READONLY |
400 — missing or invalid input:
{"success":false,"error":{"code":"INVALID_PARAMS","message":"Expected a positive integer"}}