
## Список записей

`GET /v1/timeline-logs`

Возвращает лог-записи одной CRM-сущности с авто-пагинацией. Передайте `limit` до 5000 — Вайбкод соберёт результат в один ответ.

## Параметры

| Параметр | Тип | Обяз. | По умолч. | Описание |
|----------|-----|:-----:|-----------|---------|
| `entityTypeId` | number | да | — | Тип родительской CRM-сущности. См. [Типы сущностей](/docs/timeline-logs#типы-родительских-сущностей) |
| `entityId` | number | да | — | ID родительской записи |
| `limit` | number | нет | `50` | Сколько записей вернуть (1–5000). Вайбкод сам делает несколько B24-запросов по 10 штук |
| `offset` | number | нет | `0` | Сколько пропустить от начала. Маппится на B24-параметр `start` |
| `orderBy` | string | нет | `id` | Поле сортировки: `id` или `created` (другие игнорируются) |
| `order` | string | нет | `desc` | Направление: `asc` или `desc` |

## Примеры

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

```bash
curl "https://vibecode.bitrix24.tech/v1/timeline-logs?entityTypeId=2&entityId=100&limit=20" \
  -H "X-Api-Key: YOUR_API_KEY"
```

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

```bash
curl "https://vibecode.bitrix24.tech/v1/timeline-logs?entityTypeId=2&entityId=100&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/timeline-logs?entityTypeId=2&entityId=100&limit=20',
  { headers: { 'X-Api-Key': 'YOUR_API_KEY' } },
)

const { success, data, total } = await res.json()
console.log(`Записей: ${total}, получено: ${data.length}`)
```

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

```javascript
const res = await fetch(
  'https://vibecode.bitrix24.tech/v1/timeline-logs?entityTypeId=2&entityId=100&limit=20',
  {
    headers: {
      'X-Api-Key': 'YOUR_APP_KEY',
      'Authorization': 'Bearer USER_SESSION_TOKEN',
    },
  },
)

const { success, data, total } = await res.json()
```

## Поля ответа

| Поле | Тип | Описание |
|------|-----|---------|
| `success` | boolean | Всегда `true` при успехе |
| `data` | array | Массив лог-записей |
| `data[].id` | number | ID лог-записи |
| `data[].created` | datetime | Дата создания, ISO 8601 с таймзоной портала |
| `data[].authorId` | number | ID автора. Данные пользователя по ID: `GET /v1/users/:id` |
| `data[].title` | string | Заголовок |
| `data[].text` | string | Текст записи |
| `data[].iconCode` | string | Код иконки (или `""`, если не задан) |
| `total` | number | Общее число записей у этой сущности |

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

```json
{
  "success": true,
  "data": [
    {
      "id": 5012,
      "created": "2026-04-27T10:00:00+03:00",
      "authorId": 1,
      "title": "AI-агент обработал заявку",
      "text": "Проанализированы данные клиента. Рекомендация: тариф Enterprise.",
      "iconCode": ""
    },
    {
      "id": 5008,
      "created": "2026-04-27T09:45:00+03:00",
      "authorId": 1,
      "title": "Платёж зачислен",
      "text": "100 000 руб. от ООО «Ромашка»",
      "iconCode": "info"
    }
  ],
  "total": 2
}
```

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

400 — не переданы обязательные параметры:

```json
{
  "success": false,
  "error": {
    "code": "INVALID_PARAMS",
    "message": "Required query: entityTypeId (positive int), entityId (positive int)"
  }
}
```

## Ошибки

| HTTP | Код | Описание |
|------|-----|---------|
| 400 | `INVALID_PARAMS` | Не переданы или некорректны `entityTypeId` / `entityId` |
| 422 | `BITRIX_ERROR` | Битрикс24 вернул ошибку (например, родительская сущность не существует) |
| 403 | `SCOPE_DENIED` | API-ключ не имеет скоупа `crm` |
| 401 | `TOKEN_MISSING` | API-ключ не имеет настроенных токенов |

Полный список общих ошибок API — [Ошибки](/docs/errors).

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

**Большой `limit` стоит дороже по rate-limit.** Под капотом Вайбкод делает несколько вызовов к Битрикс24, чтобы собрать запрошенный объём — для лог-записей таймлайна один Вайбкод-вызов с `limit=50` соответствует 5 квантам rate-limit бюджета (а с `limit=100` — 10 квантам). Если важна экономия лимита — используйте `limit=10`.

**`offset` работает в записях, не в страницах.** Передаём `offset=20`, Вайбкод сам конвертирует в `start=20` для B24 (тот считает `(N-1) * 10`, где `N` — номер страницы).

**Сортировка только по `id` или `created`.** Любые другие значения `orderBy` Вайбкод заменяет на `id`. По умолчанию — `id desc` (новые сначала).

**Записи всех ключей в одном списке.** `GET` возвращает абсолютно все лог-записи родительской сущности, независимо от того, каким приложением они созданы. Фильтра «только мои записи» на стороне B24 нет.

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

- [Получить запись](/docs/timeline-logs/logs/get)
- [Создать запись](/docs/timeline-logs/logs/create)
- [Удалить запись](/docs/timeline-logs/logs/delete)
- [Лимиты и оптимизация](/docs/optimization)
