For AI agents: markdown of this page — /docs-content-en/workday/pause.md documentation index — /llms.txt
Pause
POST /v1/workday/pause
Pauses the current workday. The status switches to PAUSED, and the pause duration accumulates until the day is resumed or closed. The request body may be empty.
Request fields (body)
| Field | Type | Req. | Description |
|---|---|---|---|
userId |
number | no | Employee identifier. Defaults to the user who owns the key's tokens. Other employees' userId is available only to Bitrix24 account administrators and the employee's direct managers — otherwise Bitrix24 returns an access error |
The body may be empty: {}.
Examples
curl — personal key
curl -X POST https://vibecode.bitrix24.com/v1/workday/pause \
-H "X-Api-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
curl — OAuth application
curl -X POST https://vibecode.bitrix24.com/v1/workday/pause \
-H "X-Api-Key: YOUR_APP_KEY" \
-H "Authorization: Bearer USER_SESSION_TOKEN" \
-H "Content-Type: application/json" \
-d '{}'
JavaScript — personal key
const res = await fetch('https://vibecode.bitrix24.com/v1/workday/pause', {
method: 'POST',
headers: {
'X-Api-Key': 'YOUR_API_KEY',
'Content-Type': 'application/json',
},
body: JSON.stringify({}),
})
const { data } = await res.json()
console.log('Status:', data.status)
JavaScript — OAuth application
const res = await fetch('https://vibecode.bitrix24.com/v1/workday/pause', {
method: 'POST',
headers: {
'X-Api-Key': 'YOUR_APP_KEY',
'Authorization': 'Bearer USER_SESSION_TOKEN',
'Content-Type': 'application/json',
},
body: JSON.stringify({}),
})
const { data } = await res.json()
Response fields
| Field | Type | Description |
|---|---|---|
success |
boolean | true on a successful pause |
data.status |
string | Status after the pause — PAUSED |
data.timeStart |
string | Day start date and time (ISO 8601) |
data.timeFinish |
string | Start date and time of the current pause (ISO 8601) |
data.duration |
string | Day duration in HH:MM:SS format, excluding pauses |
data.timeLeaks |
string | Total duration of pauses for the day in HH:MM:SS format |
data.active |
boolean | Active workday record flag |
data.ipOpen |
string | IP address of the day start |
data.ipClose |
string | IP address of the day finish. Empty string for a day that has not been closed yet |
data.latOpen |
number | Geographic latitude of the start point |
data.lonOpen |
number | Geographic longitude of the start point |
data.latClose |
number | Geographic latitude of the finish point |
data.lonClose |
number | Geographic longitude of the finish point |
data.tzOffset |
number | Employee's time zone offset in seconds (depends on the employee's settings in the Bitrix24 account; the example 0 corresponds to UTC) |
Response example
{
"success": true,
"data": {
"status": "PAUSED",
"timeStart": "2026-05-05T09:00:00+00:00",
"timeFinish": "2026-05-05T13:00:00+00:00",
"duration": "04:00:00",
"timeLeaks": "00:00:00",
"active": true,
"ipOpen": "203.0.113.10",
"ipClose": "",
"latOpen": 0,
"lonOpen": 0,
"latClose": 0,
"lonClose": 0,
"tzOffset": 0
}
}
Error response example
403 — the key lacks the timeman scope:
{
"success": false,
"error": {
"code": "SCOPE_DENIED",
"message": "This endpoint requires 'timeman' scope"
}
}
Errors
| HTTP | Code | Description |
|---|---|---|
| 400 | INVALID_PARAMS |
The userId field is not a positive integer, or Bitrix24 rejected a request field validation |
| 401 | MISSING_API_KEY |
The X-Api-Key header was not passed |
| 401 | INVALID_API_KEY |
Invalid API key |
| 401 | KEY_EXPIRED |
The API key has expired |
| 401 | TOKEN_MISSING |
The key has no OAuth tokens configured for the Bitrix24 portal |
| 402 | ACCOUNT_FROZEN |
The Bitrix24 portal balance is frozen |
| 403 | SCOPE_DENIED |
The key lacks the timeman scope |
| 422 | BITRIX_ERROR |
Bitrix24 rejected the request — text is in message |
| 429 | RATE_LIMITED |
The request limit to Bitrix24 was exceeded |
| 502 | BITRIX_UNAVAILABLE |
The Bitrix24 portal is unavailable |
The full list of common API errors — Errors.
Known specifics
- Removing the pause is a separate call. A repeated
/pauseleaves the day in thePAUSEDstatus unchanged. To continue the day after a pause, usePOST /v1/workday/open— it switches the day back toOPENED. - Resuming a closed day. If the day is already in the
CLOSEDstatus, the call returns the current state unchanged. To continue a previously closed day, usePOST /v1/workday/open.
See also
- Open workday —
POST /v1/workday/open. Also used to continue the day after a pause. - Close workday —
POST /v1/workday/close. - Current status —
GET /v1/workday/status. - Workday — section overview.