---
title: "Получить доску приёма лидов"
method: GET
path: "/api/v1/crm/leads/board"
tags: ["CRM leads"]
---

# Получить доску приёма лидов

`GET /api/v1/crm/leads/board`

## Request

- Base URL: `https://erp.akeda.ru`
- URL: `https://erp.akeda.ru/api/v1/crm/leads/board`
- Auth: one of:
  - HTTP bearer
  - OAuth 2 (authorization code, authorization URL `https://erp.akeda.ru/oauth2/authorize`, token URL `https://erp.akeda.ru/oauth2/token`, scopes: `akeda:delegate`)

Колонка на каждый живой этап доски: число лидов отбора на этапе и не больше 50 первых карточек в порядке отбора. Остальные лиды этапа читаются списком с отбором stage. Видимость та же, что у списка лидов.

## Query parameters

- `q` string
- `status` 'new' | 'qualified' | 'disqualified' | 'converted': Единственный статус лида. Вычисляется из смысла этапа лида (CRMLeadStageMeaning) и напрямую не правится: меняется переносом на этап, квалификацией, отказом или конвертацией
- `owner` integer
- `customer` string, uuid
- `stage` string, uuid
- `source` string
- `archived` boolean
- `sort` 'updated_desc' | 'created_asc'

## Headers

- `X-Tenant` string, required

## Response `200`

Колонки доски с числом лидов и первыми карточками

- CRMLeadBoard
  - `stages` CRMLeadBoardStage[], required
    - `stage` CRMLeadStage, required
      - `id` string, uuid, required
      - `name` string, required: Имя этапа задаёт кабинет; код на конкретные имена не ссылается
      - `label_key` string: Ключ подписи строки, которую завёл стартовый посев или готовый набор CRM (например crm.lead_stage.unsorted, crm.set.pipeline.patients, crm.source.manual): экран переводит подпись по ключу, а name остаётся прежним представлением. Пусто - кабинет назвал строку сам, показывается name как есть
      - `sort_order` integer, required
      - `is_active` boolean, required: Ненужный этап выключают, а не удаляют
      - `meaning` 'open' | 'qualified' | 'converted' | 'rejected', required: Смысл этапа определяет статус лида на нём: open - в работе (статус new), qualified - квалифицирован (qualified), converted - превращён в сделку (converted), rejected - отклонён (disqualified). Статус отдельно не хранится и не правится: он вычисляется из этапа
      - `color` string: Цвет этапа #RRGGBB; пусто - цвет по умолчанию
      - `created_at` string, date-time, required
      - `updated_at` string, date-time, required
    - `total_count` integer, required: Сколько лидов отбора стоит на этапе
    - `cards` CRMLeadCard[], required
      - `id` string, uuid, required
      - `title` string, required
      - `amount` string: Сумма лида десятичной строкой: «19990.50»; переходит в сделку при конвертации
      - `currency` string: Код валюты из справочника ERP; пусто — валюта не выбрана
      - `source` string, required: Канал обращения; по нему собирается аналитика источников
      - `description` string, required: Заметка менеджера о заявке
      - `first_message` string, required: Что написал или сказал клиент - слова самого обращения, а не пересказ
      - `contact_handle` string, required: Ник, номер или адрес в канале, пока карточка клиента не заведена
      - `reference_id` string, uuid
      - `owner_id` integer
      - `stage_id` string, uuid
      - `crm_customer_id` string, uuid
      - `next_action` string, required
      - `next_action_at` string, date-time
      - `archived_at` string, date-time
      - `status` 'new' | 'qualified' | 'disqualified' | 'converted', required: Единственный статус лида. Вычисляется из смысла этапа лида (CRMLeadStageMeaning) и напрямую не правится: меняется переносом на этап, квалификацией, отказом или конвертацией
      - `qualification_reason` string
      - `reject_reason_id` string, uuid
      - `converted_deal_id` string, uuid
      - `merged_into_lead_id` string, uuid
      - `utm_source` string
      - `utm_medium` string
      - `utm_campaign` string
      - `utm_term` string
      - `utm_content` string
      - `landing_page` string
      - `referrer` string
      - `custom` object, nullable: Дополнительные поля кабинета: состав задаёт «Настройки → Поля»
      - `created_at` string, date-time, required
      - `updated_at` string, date-time, required
      - `customer_name` string
      - `customer_phone` string
      - `customer_messengers` object, nullable
      - `owner_name` string
      - `reject_reason` string
    - `has_more` boolean, required: На этапе больше лидов, чем карточек в ответе

## Other responses

- `400`: Некорректный запрос или нарушение бизнес-правила
- `401`: Сессия, ключ или кабинет не подтверждены
- `403`: Текущая роль не имеет требуемого права

---

[API](https://skmtc.dev/akeda/apis/akeda-erp-client-api.md) · [All operations](https://skmtc.dev/akeda/apis/akeda-erp-client-api/llms.txt) · [OpenAPI document](https://skmtc.dev/akeda/apis/akeda-erp-client-api/revisions/a99574d597cc?raw)
