For AI agents: markdown of this page — /docs-content-en/openlines/operator/spam.md documentation index — /llms.txt
Mark the client as spam
POST /v1/openlines/operator/spam
Marks the Open Channel client as spam and closes the current session of their chat, finishing the dialog with them.
The action runs on behalf of the employee the key belongs to — see On whose behalf the action runs.
Request fields (body)
| Field | Type | Required | Description |
|---|---|---|---|
FieldchatId |
Typenumber | string | Requiredyes | DescriptionOpen Channel chat identifier, a positive integer. A string is accepted if it consists of digits only and does not start with zero. See Chat ID |
Examples
curl — personal key
curl -X POST https://vibecode.bitrix24.com/v1/openlines/operator/spam \
-H "X-Api-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"chatId": 5253}'
curl — OAuth application
curl -X POST https://vibecode.bitrix24.com/v1/openlines/operator/spam \
-H "X-Api-Key: YOUR_APP_KEY" \
-H "Authorization: Bearer USER_SESSION_TOKEN" \
-H "Content-Type: application/json" \
-d '{"chatId": 5253}'
JavaScript — personal key
const res = await fetch('https://vibecode.bitrix24.com/v1/openlines/operator/spam', {
method: 'POST',
headers: {
'X-Api-Key': 'YOUR_API_KEY',
'Content-Type': 'application/json',
},
body: JSON.stringify({ chatId: 5253 }),
})
const body = await res.json()
if (!body.success) throw new Error(`${body.error.code}: ${body.error.message}`)
console.log('Client marked as spam, chat:', body.data.chatId)
JavaScript — OAuth application
const res = await fetch('https://vibecode.bitrix24.com/v1/openlines/operator/spam', {
method: 'POST',
headers: {
'X-Api-Key': 'YOUR_APP_KEY',
'Authorization': 'Bearer USER_SESSION_TOKEN',
'Content-Type': 'application/json',
},
body: JSON.stringify({ chatId: 5253 }),
})
const body = await res.json()
if (!body.success) throw new Error(`${body.error.code}: ${body.error.message}`)
console.log('Client marked as spam, chat:', body.data.chatId)
Response fields
| Field | Type | Description |
|---|---|---|
Fieldsuccess |
Typeboolean | Descriptiontrue |
Fielddata.chatId |
Typenumber | DescriptionChat identifier from the request. A string from the request is returned as a number |
Fielddata.spammed |
Typeboolean | DescriptionAlways true |
Response example
{
"success": true,
"data": {
"chatId": 5253,
"spammed": true
}
}
Error response example
404 — no chat with this identifier:
{
"success": false,
"error": {
"code": "ENTITY_NOT_FOUND",
"message": "Open Line chat not found"
}
}
Errors
| HTTP | Code | Description |
|---|---|---|
| HTTP400 | CodeINVALID_CHAT_ID |
DescriptionchatId is missing, is not a positive integer, is a string with non-digit characters or a leading zero, or is greater than 9007199254740991 |
| HTTP404 | CodeENTITY_NOT_FOUND |
DescriptionNo chat with this chatId |
| HTTP422 | CodeBITRIX_ERROR |
DescriptionBitrix24 refused the action. The refusal code, if Bitrix24 returned one, is in error.b24Code |
| HTTP403 | CodeBITRIX_ACCESS_DENIED |
DescriptionThe employee the call runs as has no permission for the action |
| HTTP502 | CodeOPENLINE_OPERATOR_FAILED |
DescriptionBitrix24 responded without an error but did not confirm the action |
| HTTP403 | CodeSCOPE_DENIED |
DescriptionThe key has no imopenlines scope |
| HTTP403 | CodeWRITE_BLOCKED_READONLY_KEY |
DescriptionThe key is read-only |
| HTTP401 | CodeMISSING_API_KEY |
DescriptionThe X-Api-Key header is missing |
| HTTP401 | CodeINVALID_API_KEY |
DescriptionThe key is not recognized |
| HTTP401 | CodeTOKEN_MISSING |
DescriptionA personal key has no access to the Bitrix24 portal, or an application key was sent without a session token in Authorization |
| HTTP502 | CodeBITRIX_UNAVAILABLE |
DescriptionBitrix24 is unavailable or the connection to it broke before the response was complete |
Full list of common API errors — Errors.
Known specifics
- The response does not prove there was an open dialog. For a chat whose session is already closed, and on a repeated call, the method returns the same response with
spammed: true, and no new session is created. To check whether the call closed a session, usePOST /v1/openlines/sessions/search: a session closed by this method hasstatusandcloseReasonequal tospam.