For AI agents: markdown of this page — /docs-content-en/openlines/sessions/transfers.md documentation index — /llms.txt

Reassignment history

⚠️ The method ships in update imopenlines 26.700.0 and is not yet available on all Bitrix24 portals. If the update has not reached your portal yet, the API returns 422 METHOD_NOT_YET_AVAILABLE — this means the method has not been released on the portal yet, not that the integration is broken.

POST /v1/openlines/sessions/transfers

A chronological list of reassignments (transfers) for specific sessions — from whom to whom, between which lines, for what reason. Up to 50 identifiers per call.

Request fields (body)

Field Type Req. Description
sessionId number[] yes Array of session identifiers, up to 50 elements. Source: POST /v1/openlines/sessions/search. A single number is also accepted and wrapped into an array

Duplicates in sessionId are collapsed. A nonexistent, foreign, or inaccessible sessionId does not cause an error — there simply will be no records in transfers for it.

Examples

curl — personal key

Terminal
curl -X POST "https://vibecode.bitrix24.com/v1/openlines/sessions/transfers" \
  -H "X-Api-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "sessionId": [1024, 1025] }'

curl — OAuth application

Terminal
curl -X POST "https://vibecode.bitrix24.com/v1/openlines/sessions/transfers" \
  -H "X-Api-Key: YOUR_APP_KEY" \
  -H "Authorization: Bearer USER_SESSION_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "sessionId": [1024, 1025] }'

JavaScript — personal key

javascript
const res = await fetch('https://vibecode.bitrix24.com/v1/openlines/sessions/transfers', {
  method: 'POST',
  headers: {
    'X-Api-Key': 'YOUR_API_KEY',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({ sessionId: [1024, 1025] }),
})
const { data } = await res.json()

JavaScript — OAuth application

javascript
const res = await fetch('https://vibecode.bitrix24.com/v1/openlines/sessions/transfers', {
  method: 'POST',
  headers: {
    'X-Api-Key': 'YOUR_APP_KEY',
    'Authorization': 'Bearer USER_SESSION_TOKEN',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({ sessionId: [1024, 1025] }),
})
const { data } = await res.json()

Response fields

The response is { "success": true, "data": { "transfers": [...] } }. Transfers of all requested sessions are interleaved, in chronological order (by date ascending). To group by session, use the transfers[].sessionId field.

Key Description
sessionId Session identifier
date Date and time of the reassignment
fromOperatorId Operator the session left (null if from the queue)
toOperatorId Operator the session went to (null if to the queue)
fromConfigId Source line
toConfigId Target line (if transferred to another line)
reason Reason: manual / auto
mode Mode: MANUAL / AUTO
type Type: USER / QUEUE
initiatorId Transfer initiator (null if automatic)

Response example

Session 1024 — auto-distributed from the queue, then manually transferred to an operator; session 1025 — no transfers:

JSON
{
  "success": true,
  "data": {
    "transfers": [
      { "sessionId": 1024, "date": "2026-06-15T14:30:05+00:00", "fromOperatorId": null, "toOperatorId": 42, "fromConfigId": 3, "toConfigId": null, "reason": "auto", "mode": "AUTO", "type": "USER", "initiatorId": null },
      { "sessionId": 1024, "date": "2026-06-15T14:40:00+00:00", "fromOperatorId": 42, "toOperatorId": 51, "fromConfigId": 3, "toConfigId": null, "reason": "manual", "mode": "MANUAL", "type": "USER", "initiatorId": 42 }
    ]
  }
}

Error response example

400 — more than 50 identifiers in the batch:

JSON
{
  "success": false,
  "error": { "code": "BATCH_LIMIT_EXCEEDED", "message": "sessionId batch must not exceed 50 unique ids" }
}

Errors

HTTP Code When
403 B24_TARIFF_RESTRICTION The tariff does not include Open Channels statistics (report_open_lines)
400 MISSING_PARAMS sessionId is an empty array or missing
400 INVALID_PARAMS A non-numeric element in sessionId
400 BATCH_LIMIT_EXCEEDED More than 50 unique identifiers (after collapsing duplicates)
422 METHOD_NOT_YET_AVAILABLE The imopenlines 26.700.0 update has not reached the portal yet

The full list of system codes — API errors.

See also