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

Creates an employee's work report for a period. The new report is not submitted; submit it with a separate call.

Requires the timeman scope. Bitrix24 checks the credential owner’s permissions. READONLY keys can read reports and cannot write them.

Request fields (body)

Field Type Required Description
FielduserId Typeinteger Requiredyes DescriptionID of the employee the report belongs to. List: GET /v1/users
FieldreportText Typestring | null Requiredno DescriptionReport text. Returned as report and reportPlain
FieldreportExtended Typestring | null Requiredno DescriptionAdditional report text. Returned as reportExtended
FieldplansText Typestring | null Requiredno DescriptionPlans. Returned as plans
Fieldtype Typestring | null Requiredno DescriptionReport type: REPORT, AI_REPORT, ROBOT_REPORT, AI_DAY_PLAN, or ROBOT_DAY_PLAN. If omitted or set to any other value, REPORT is used
FielddateFrom Typestring | null Requiredno DescriptionStart of the report period in ISO 8601 format with a time zone. The time is dropped; only the date is stored
FielddateTo Typestring | null Requiredno DescriptionEnd of the report period in the same format. The time is dropped; only the date is stored
Fieldtasks Typearray | null Requiredno DescriptionTasks in the report
Fieldtasks[].id Typeinteger Requiredyes DescriptionTask ID. List: GET /v1/tasks
Fieldtasks[].time Typenumber Requiredno DescriptionTime spent on the task, in seconds. The fractional part is dropped
Fieldtasks[].title Typestring Requiredno DescriptionTask title in the report
Fieldevents Typearray | null Requiredno DescriptionCalendar events in the report
Fieldevents[].id Typeinteger Requiredyes DescriptionEvent ID. List: GET /v1/calendar-events
Fieldevents[].ownerId Typeinteger Requiredno DescriptionID of the event owner. List: GET /v1/users
Fieldevents[].title Typestring Requiredno DescriptionEvent title in the report
FieldautoFillDailyReports Typeboolean Requiredno DescriptionDefaults to false

Examples

curl — personal key

Terminal
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 — OAuth application

Terminal
curl -X POST https://vibecode.bitrix24.com/v1/workday/work-reports \
  -H "X-Api-Key: YOUR_APP_KEY" \
  -H "Authorization: Bearer USER_SESSION_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "userId": 101, "reportText": "Weekly report" }'

JavaScript — personal key

javascript
const res = await fetch('https://vibecode.bitrix24.com/v1/workday/work-reports', {
  method: 'POST',
  headers: {
    'X-Api-Key': 'YOUR_API_KEY',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    userId: 101,
    reportText: 'Weekly report',
  }),
})
const { data } = await res.json()

JavaScript — OAuth application

javascript
const res = await fetch('https://vibecode.bitrix24.com/v1/workday/work-reports', {
  method: 'POST',
  headers: {
    'X-Api-Key': 'YOUR_APP_KEY',
    'Authorization': 'Bearer USER_SESSION_TOKEN',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    userId: 101,
    reportText: 'Weekly report',
  }),
})
const { data } = await res.json()

Response fields

Field Type Description
Fieldsuccess Typeboolean Descriptiontrue when the report is created
Fielddata Typeobject DescriptionThe created report. All fields — Report fields

Response example

The main report fields are shown. For the full list, see Report fields:

JSON
{
  "success": true,
  "data": {
    "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"
  }
}

Error response example

400 — userId is missing:

JSON
{
  "success": false,
  "error": {
    "code": "INVALID_PARAMS",
    "message": "Expected a positive integer"
  }
}

Errors

HTTP Code Description
HTTP400 CodeINVALID_PARAMS DescriptionuserId is missing, a field has the wrong type, a date has no time zone, or the body contains an unknown field such as files
HTTP403 CodeBITRIX_ACCESS_DENIED DescriptionThe credential owner lacks the required Bitrix24 permissions
HTTP409 CodeTIMEMAN_MODULE_NOT_ENABLED DescriptionTime Management is not available on this portal
HTTP422 CodeBITRIX_ERROR DescriptionBitrix24 refused the operation
HTTP502 CodeBITRIX_UNAVAILABLE DescriptionBitrix24 is unavailable or returned a response of an unexpected shape
HTTP401 CodeMISSING_API_KEY DescriptionThe X-Api-Key header was not passed
HTTP401 CodeTOKEN_MISSING DescriptionAn app key was sent without a session token in Authorization: Bearer
HTTP401 CodeINVALID_SESSION DescriptionThe session token is invalid or has expired
HTTP403 CodeWRITE_BLOCKED_READONLY_KEY DescriptionThe key is READONLY and cannot create reports
HTTP403 CodeSCOPE_DENIED DescriptionThe key lacks the timeman scope
HTTP429 CodeRATE_LIMITED DescriptionThe general request limit was exceeded

The full list of common API errors — Errors.

Known specifics

  • The period can shift. If the period overlaps a report the employee already has, the period start moves to the day after that report. The period chosen when dateFrom and dateTo are omitted shifts the same way. The resulting period is returned in the dateFrom and dateTo fields of the response.
  • The employee and tasks are not checked for existence. A report is created even with a nonexistent userId or tasks[].id. Only the credential owner’s permissions are checked.

See also