Для AI-агентов: markdown этой страницы — /docs-content/chats/stickers/packs.md индекс документации — /llms.txt

Список наборов стикеров

GET /v1/chats/stickers/packs

Возвращает наборы стикеров текущего пользователя постранично: сначала пользовательские custom, затем встроенные vendor. Чтобы получить следующую страницу, передайте id и type последнего набора предыдущей страницы.

Параметры

Параметр Тип Обяз. Описание
limit number нет Наборов на странице: по умолчанию 10, от 1 до 200. Значение вне диапазона приводится к границе, исходное и применённое значения возвращаются в meta
lastId number нет Курсор: id последнего набора предыдущей страницы. Передаётся только вместе с lastType
lastType string нет Курсор: type последнего набора предыдущей страницы — vendor или custom. Передаётся только вместе с lastId

Без курсора возвращается первая страница. Другие параметры, повторный параметр или только одна половина курсора отклоняются с 400 INVALID_PARAMS до обращения в Битрикс24.

Примеры

curl — личный ключ

Terminal
curl "https://vibecode.bitrix24.tech/v1/chats/stickers/packs?limit=20" \
  -H "X-Api-Key: YOUR_API_KEY"

curl — OAuth-приложение

Terminal
curl "https://vibecode.bitrix24.tech/v1/chats/stickers/packs?limit=20" \
  -H "X-Api-Key: YOUR_APP_KEY" \
  -H "Authorization: Bearer USER_SESSION_TOKEN"

JavaScript — личный ключ

javascript
const res = await fetch('https://vibecode.bitrix24.tech/v1/chats/stickers/packs?limit=20', {
  headers: { 'X-Api-Key': 'YOUR_API_KEY' },
})

const { data } = await res.json()
console.log('Наборов:', data.packs.length, 'есть ещё:', data.hasNextPage)

JavaScript — OAuth-приложение

javascript
const res = await fetch('https://vibecode.bitrix24.tech/v1/chats/stickers/packs?limit=20', {
  headers: {
    'X-Api-Key': 'YOUR_APP_KEY',
    'Authorization': 'Bearer USER_SESSION_TOKEN',
  },
})

const { data } = await res.json()
console.log('Наборов:', data.packs.length, 'есть ещё:', data.hasNextPage)

Поля ответа

Поле Тип Описание
success boolean Всегда true при успехе
data.packs array Наборы страницы
data.packs[].id number ID набора. Уникален только вместе с type. Передаётся как packId в получение набора
data.packs[].type string custom — набор пользователя, vendor — встроенный набор
data.packs[].name string Название набора
data.packs[].authorId number | null ID автора пользовательского набора, у встроенного — null. Профиль — по ID пользователя
data.packs[].isAdded boolean Набор есть в списке пользователя
data.stickers array Стикеры наборов страницы, а на первой странице — и недавних стикеров
data.stickers[].id number ID стикера — для удаления стикеров из набора
data.stickers[].packId number ID набора стикера — совпадает с data.packs[].id
data.stickers[].packType string Вид набора стикера
data.stickers[].uri string Путь к картинке на портале Битрикс24 — относительный, без домена
data.stickers[].type string Тип стикера (image)
data.stickers[].width number Ширина картинки в пикселях
data.stickers[].height number Высота картинки в пикселях
data.stickers[].sort number Порядок стикера в наборе
data.recentStickers array Только на первой странице: недавно отправленные стикеры пользователя, не больше 12, новые первыми — { id, packId, packType }
data.hasNextPage boolean Есть следующая страница
meta.requestedLimit number Переданный limit — только если он был приведён к границе
meta.appliedLimit number Применённый limit — только если он был приведён к границе

Пример ответа

JSON
{
  "success": true,
  "data": {
    "stickers": [
      { "id": 1, "uri": "/upload/im/stickers/3/1.png", "type": "image", "width": 512, "height": 512, "packId": 3, "packType": "custom", "sort": 1 },
      { "id": 2, "uri": "/bitrix/images/im/stickers/aiHelp/2.png?v1", "type": "image", "width": 512, "height": 512, "packId": 14, "packType": "vendor", "sort": 2 }
    ],
    "packs": [
      { "id": 3, "name": "Рабочие стикеры", "type": "custom", "authorId": 7, "isAdded": true },
      { "id": 14, "name": "ИИ, помоги", "type": "vendor", "authorId": null, "isAdded": true }
    ],
    "recentStickers": [
      { "id": 2, "packId": 14, "packType": "vendor" }
    ],
    "hasNextPage": true
  }
}

Пример ответа при ошибке

400 — передана только половина курсора:

JSON
{
  "success": false,
  "error": {
    "code": "INVALID_PARAMS",
    "message": "`lastId` needs `lastType`: pass the `id` and the `type` of the last pack of the previous page together."
  }
}

Ошибки

HTTP Код Описание
400 INVALID_PARAMS Передан неизвестный параметр запроса
400 INVALID_PARAMS Параметр передан больше одного раза
400 INVALID_PARAMS limit не целое число
400 INVALID_PARAMS lastId передан без lastType
400 INVALID_PARAMS lastType передан без lastId
400 INVALID_PARAMS lastId не положительное целое
400 INVALID_PARAMS lastType не vendor и не custom
401 TOKEN_MISSING API-ключ не имеет настроенных токенов Битрикс24
403 SCOPE_DENIED API-ключ не имеет скоупа im
403 WRITE_BLOCKED_READONLY_KEY Ключ только для чтения запросил первую страницу — без lastId и lastType. Страница с курсором доступна и такому ключу
404 ENTITY_NOT_FOUND Битрикс24 не нашёл объект. Код портала — в error.b24Code, если он был передан
422 BITRIX_ERROR Битрикс24 вернул ошибку. Код портала — в error.b24Code
502 BITRIX_UNAVAILABLE Битрикс24 недоступен или вернул ошибку сервера

Полный список общих ошибок API — Ошибки.

Известные особенности

  • Последняя страница может оказаться пустой — с hasNextPage: false.
  • Если набор-курсор удалили или убрали из своего списка между запросами, выдача пользовательских наборов начинается заново. Снимайте повторы по паре type и id.
  • recentStickers приходит только на первой странице. Первый запрос удаляет строки недавних стикеров сверх 12. Поэтому он считается записью: ключ только для чтения получает 403 WRITE_BLOCKED_READONLY_KEY до вызова Битрикс24. Страницы с курсором остаются чтением.
  • uri — путь на портале Битрикс24. Полный адрес картинки — домен портала плюс uri.

Смотрите также