API Reference — документация amocrm-sdk 0.1.0

# API Reference

## Клиент

class amocrm.client.AmoCRM(subdomain, oauth)

  Базовые классы: `object`

  Клиент AmoCRM REST API.

  Предоставляет доступ к ресурсам сделок, контактов, компаний и воронок через свойства `leads`, `contacts`, `companies`, `pipelines`. Автоматически обновляет токен доступа при получении ответа 401 Unauthorized.

  Параметры:

    - subdomain (str)

    - oauth (OAuthConfig)

  __init__(subdomain, oauth)

    Инициализировать клиент, загрузив токены из хранилища.

    Параметры:

      - subdomain (str) – Поддомен аккаунта AmoCRM (например, `"mycompany"`).

      - oauth (OAuthConfig) – Конфигурация OAuth с реквизитами интеграции и хранилищем токенов. Токены загружаются из `oauth.storage.load()` при создании клиента.

    Тип результата:

      None

  property leads: LeadsResource

    Ресурс для работы со сделками.

  property pipelines: PipelinesResource

    Ресурс для работы с воронками и их статусами.

  property contacts: ContactsResource

    Ресурс для работы с контактами.

  property companies: CompaniesResource

    Ресурс для работы с компаниями.

  property tasks: TasksResource

    Ресурс для работы с задачами.

  property custom_fields: CustomFieldsResource

    Ресурс для работы с кастомными полями.

  configure_dto(*, leads=None, contacts=None, companies=None)

    Задать кастомные DTO-классы для ресурсов.

    Позволяет использовать подклассы стандартных DTO, чтобы методы ресурсов возвращали экземпляры собственного класса.

    Параметры:

      - leads (type[Lead] | None) – Подкласс `Lead` для `leads`. Если не передан — ресурс не изменяется.

      - contacts (type[Contact] | None) – Подкласс `Contact` для `contacts`. Если не передан — ресурс не изменяется.

      - companies (type[Company] | None) – Подкласс `Company` для `companies`. Если не передан — ресурс не изменяется.

    Тип результата:

      None

    Example:

        client.configure_dto(leads=MyLead, contacts=MyContact)
        lead = client.leads.get(123)  # → MyLead

## Авторизация

class amocrm.auth.TokenStorage(*args, **kwargs)

  Базовые классы: `Protocol`

  Протокол хранилища токенов OAuth.

  Реализации должны обеспечивать сохранение и загрузку пары access_token / refresh_token из произвольного хранилища (база данных, файл, переменные окружения и т.д.).

  save(access_token, refresh_token)

    Сохранить токены в хранилище.

    Параметры:

      - access_token (str) – Токен доступа OAuth 2.0.

      - refresh_token (str) – Токен обновления OAuth 2.0.

    Тип результата:

      None

  load()

    Загрузить токены из хранилища.

    Результат:

      Кортеж `(access_token, refresh_token)`.

    Тип результата:

      tuple[str, str]

  __init__(*args, **kwargs)

class amocrm.auth.OAuthConfig(*, client_id, client_secret, redirect_uri, storage)

  Базовые классы: `object`

  Конфигурация OAuth 2.0 для подключения к AmoCRM.

  Переменные:

    - client_id (str) – Идентификатор интеграции из личного кабинета AmoCRM.

    - client_secret (str) – Секрет интеграции.

    - redirect_uri (str) – URI перенаправления, указанный при создании интеграции.

    - storage (amocrm.auth.TokenStorage) – Хранилище токенов, реализующее протокол `TokenStorage`.

  Параметры:

    - client_id (str)

    - client_secret (str)

    - redirect_uri (str)

    - storage (TokenStorage)

  client_id: str
  client_secret: str
  redirect_uri: str
  storage: TokenStorage
  __init__(*, client_id, client_secret, redirect_uri, storage)
    Параметры:

      - client_id (str)

      - client_secret (str)

      - redirect_uri (str)

      - storage (TokenStorage)

    Тип результата:

      None

class amocrm.auth.InMemoryTokenStorage

  Базовые классы: `object`

  Хранилище токенов в памяти приложения.

  Токены сохраняются в полях `access_token` и `refresh_token` переданного объекта и сохраняются вызовом `instance.save()`.

  save(access_token, refresh_token)

    Сохранить токены в память.

    Параметры:

      - access_token (str) – Токен доступа OAuth 2.0.

      - refresh_token (str) – Токен обновления OAuth 2.0.

    Тип результата:

      None

  load()

    Загрузить токены из памяти.

    Результат:

      Кортеж `(access_token, refresh_token)`.

    Тип результата:

      tuple[str, str]

class amocrm.auth.DjangoTokenStorage(instance)

  Базовые классы: `object`

  Хранилище токенов на основе экземпляра модели Django.

  Токены сохраняются в полях `access_token` и `refresh_token` переданного объекта и сохраняются вызовом `instance.save()`.

  Параметры:

    instance (Any)

  __init__(instance)
    Параметры:

      instance (Any) – Экземпляр модели Django с полями `access_token` и `refresh_token`.

    Тип результата:

      None

  save(access_token, refresh_token)

    Сохранить токены в модель Django и вызвать `instance.save()`.

    Параметры:

      - access_token (str) – Токен доступа OAuth 2.0.

      - refresh_token (str) – Токен обновления OAuth 2.0.

    Тип результата:

      None

  load()

    Загрузить токены из полей модели Django.

    Результат:

      Кортеж `(access_token, refresh_token)`.

    Тип результата:

      tuple[str, str]

## Менеджер (синглтон)

amocrm.manager.exchange_code(subdomain, code, oauth)

  Обменять код авторизации на токены и инициализировать глобальный клиент.

  После успешного обмена глобальный клиент готов к работе; повторный вызов `get_client()` вернёт уже созданный экземпляр.

  Параметры:

    - subdomain (str) – Поддомен аккаунта AmoCRM (например, `"mycompany"`).

    - code (str) – Одноразовый код авторизации из callback-запроса OAuth 2.0.

    - oauth (OAuthConfig) – Конфигурация OAuth с реквизитами интеграции и хранилищем токенов.

  Исключение:

    AmoCRMTokenRefreshError – Если обмен кода на токены завершился ошибкой.

  Тип результата:

    None

amocrm.manager.get_client(subdomain, oauth)

  Вернуть глобальный клиент, создав его из хранилища при первом вызове.

  При первом вызове создаёт `AmoCRM`, загружая токены из `oauth.storage`. Последующие вызовы возвращают тот же экземпляр.

  Параметры:

    - subdomain (str) – Поддомен аккаунта AmoCRM.

    - oauth (OAuthConfig) – Конфигурация OAuth с реквизитами интеграции и хранилищем токенов.

  Результат:

    Инициализированный экземпляр `AmoCRM`.

  Тип результата:

    AmoCRM

amocrm.manager.reset()

  Сбросить глобальный клиент (полезно в тестах).

  Тип результата:

    None

## Исключения

exception amocrm.exceptions.AmoCRMError

  Базовые классы: `Exception`

  Базовый класс исключений SDK.

exception amocrm.exceptions.AmoCRMAPIError(status_code, body)

  Базовые классы: `AmoCRMError`

  Исключение при ошибке API AmoCRM (статус не 2xx).

  Переменные:

    - status_code – HTTP-статус ответа.

    - body – Тело ответа в виде строки.

  Параметры:

    - status_code (int)

    - body (str)

  Тип результата:

    None

  __init__(status_code, body)
    Параметры:

      - status_code (int) – HTTP-статус ответа API.

      - body (str) – Тело ответа API в виде строки.

    Тип результата:

      None

exception amocrm.exceptions.AmoCRMTokenRefreshError

  Базовые классы: `AmoCRMError`

  Исключение при неудачном обновлении токена доступа.

exception amocrm.exceptions.AmoCRMNotConfiguredError

  Базовые классы: `AmoCRMError`

  Исключение при использовании менеджера до его настройки.

## Ресурсы

### Базовый ресурс

class amocrm.resources._base.BaseResource(client, dto_class=None)

  Базовые классы: `Generic`[`_T`]

  Базовый класс ресурсов AmoCRM API.

  Предоставляет стандартные CRUD-операции: `list`, `get`, `create`, `update`, `update_one`. Конкретные ресурсы наследуют этот класс, задавая `_path`, `_embedded_key` и `_dto_class`.

  Параметры:

    - client (AmoCRM)

    - dto_class (type[_T] | None)

  __init__(client, dto_class=None)
    Параметры:

      - client (AmoCRM)

      - dto_class (type[_T] | None)

    Тип результата:

      None

  list(*, page=None, limit=None, query=None, filter=None, order=None, with_=None)

    Получить список сущностей с пагинацией и фильтрами.

    Параметры:

      - page (int | None) – Номер страницы (начиная с 1). Если не передан — автоматически обходит все страницы и возвращает `Iterator[T]`.

      - limit (int | None) – Количество сущностей на странице (максимум 250). По умолчанию 50 при авто-пагинации.

      - query (str | None) – Строка полнотекстового поиска.

      - filter (dict[str, Any] | None) – Словарь фильтров `{"field": "value"}`.

      - order (dict[str, str] | None) – Словарь сортировки `{"field": "asc"|"desc"}`.

      - with – Список дополнительных данных для подгрузки.

      - with_ (list[str] | None)

    Результат:

      Если `page` передан — `list[T]`. Иначе — `Iterator[T]`.

    Тип результата:

      list[_T] | Iterator[_T]

  get(entity_id, *, with_=None)

    Получить сущность по идентификатору.

    Параметры:

      - entity_id (int) – Идентификатор сущности.

      - with – Список дополнительных данных для подгрузки.

      - with_ (list[str] | None)

    Тип результата:

      _T

  create(items)

    Создать одну или несколько сущностей.

    Исключение:

      AmoCRMError – Если передано более `_max_per_request` элементов.

    Параметры:

      items (list[_T])

    Тип результата:

      list[_T]

  update(items)

    Обновить одну или несколько сущностей (каждая должна содержать `id`).

    Исключение:

      AmoCRMError – Если передано более `_max_per_request` элементов.

    Параметры:

      items (list[_T])

    Тип результата:

      list[_T]

  update_one(data)

    Обновить одну сущность по идентификатору.

    Исключение:

      AmoCRMError – Если `data.id` не задан.

    Параметры:

      data (_T)

    Тип результата:

      _T

### Сделки

class amocrm.resources.leads.LeadsResource(client, dto_class=None)

  Базовые классы: `BaseResource`[`Lead`]

  Ресурс для работы со сделками AmoCRM (`/api/v4/leads`).

  Параметры:

    - client (AmoCRM)

    - dto_class (type[_T] | None)

  get(lead_id, *, with_=None)

    Получить сделку по идентификатору.

    По умолчанию подгружает связанные контакты (`contacts`). Чтобы отключить это поведение или запросить другой набор данных, передайте `with_` явно, например `with_=[]` или `with_=["contacts", "companies"]`.

    Параметры:

      - lead_id (int) – Идентификатор сделки.

      - with – Список дополнительных данных для подгрузки. По умолчанию `["contacts"]`.

      - with_ (list[str] | None)

    Результат:

      Объект `Lead`.

    Исключение:

      AmoCRMAPIError – При ошибке API (статус не 2xx).

    Тип результата:

      Lead

  create_complex(leads)

    Сложное создание сделок со связанными сущностями.

    Использует эндпоинт `POST /api/v4/leads/complex`, позволяющий одновременно создавать сделки вместе с контактами и компаниями.

    Параметры:

      leads (list[Lead]) – Список сделок для создания.

    Результат:

      Список результатов создания с идентификаторами сделок и связанных сущностей.

    Исключение:

      - AmoCRMError – Если передано более 50 сделок или у сделки более одного контакта.

      - AmoCRMAPIError – При ошибке API (статус не 2xx).

    Тип результата:

      list[ComplexLeadResult]

### Контакты

class amocrm.resources.contacts.ContactsResource(client, dto_class=None)

  Базовые классы: `BaseResource`[`Contact`]

  Ресурс для работы с контактами AmoCRM (`/api/v4/contacts`).

  Параметры:

    - client (AmoCRM)

    - dto_class (type[_T] | None)

### Компании

class amocrm.resources.companies.CompaniesResource(client, dto_class=None)

  Базовые классы: `BaseResource`[`Company`]

  Ресурс для работы с компаниями AmoCRM (`/api/v4/companies`).

  Параметры:

    - client (AmoCRM)

    - dto_class (type[_T] | None)

### Воронки

class amocrm.resources.pipelines.PipelinesResource(client, dto_class=<class 'amocrm.models.pipelines.Pipeline'>)

  Базовые классы: `object`

  Ресурс для работы с воронками и статусами AmoCRM.

  Эндпоинт: `/api/v4/leads/pipelines`.

  Параметры:

    - client (AmoCRM)

    - dto_class (type[Pipeline])

  __init__(client, dto_class=<class 'amocrm.models.pipelines.Pipeline'>)
    Параметры:

      - client (AmoCRM) – Экземпляр клиента `AmoCRM`.

      - dto_class (type[Pipeline]) – Класс DTO для десериализации воронок. По умолчанию `Pipeline`.

    Тип результата:

      None

  list()

    Получить список всех воронок аккаунта.

    Результат:

      Список объектов `Pipeline`.

    Исключение:

      AmoCRMAPIError – При ошибке API (статус не 2xx).

    Тип результата:

      list[Pipeline]

  get(pipeline_id)

    Получить воронку по идентификатору.

    Параметры:

      pipeline_id (int) – Идентификатор воронки.

    Результат:

      Объект `Pipeline`.

    Исключение:

      AmoCRMAPIError – При ошибке API (статус не 2xx).

    Тип результата:

      Pipeline

  create(pipelines)

    Создать одну или несколько воронок.

    Параметры:

      pipelines (list[Pipeline]) – Список воронок для создания.

    Результат:

      Список созданных воронок с заполненными идентификаторами.

    Исключение:

      AmoCRMAPIError – При ошибке API (статус не 2xx).

    Тип результата:

      list[Pipeline]

  update(pipeline_id, data)

    Обновить воронку по идентификатору.

    Параметры:

      - pipeline_id (int) – Идентификатор воронки.

      - data (Pipeline) – Объект с обновляемыми полями.

    Результат:

      Обновлённый объект `Pipeline`.

    Исключение:

      AmoCRMAPIError – При ошибке API (статус не 2xx).

    Тип результата:

      Pipeline

  delete(pipeline_id)

    Удалить воронку по идентификатору.

    Параметры:

      pipeline_id (int) – Идентификатор воронки.

    Исключение:

      AmoCRMAPIError – При ошибке API (статус не 2xx).

    Тип результата:

      None

  list_statuses(pipeline_id, *, with_descriptions=False)

    Получить список статусов воронки.

    Параметры:

      - pipeline_id (int) – Идентификатор воронки.

      - with_descriptions (bool) – Если `True`, подгружает описания уровней зрелости для каждого статуса.

    Результат:

      Список объектов `PipelineStatus`.

    Исключение:

      AmoCRMAPIError – При ошибке API (статус не 2xx).

    Тип результата:

      list[PipelineStatus]

  get_status(pipeline_id, status_id, *, with_descriptions=False)

    Получить статус воронки по идентификатору.

    Параметры:

      - pipeline_id (int) – Идентификатор воронки.

      - status_id (int) – Идентификатор статуса.

      - with_descriptions (bool) – Если `True`, подгружает описания уровней зрелости.

    Результат:

      Объект `PipelineStatus`.

    Исключение:

      AmoCRMAPIError – При ошибке API (статус не 2xx).

    Тип результата:

      PipelineStatus

  create_statuses(pipeline_id, statuses)

    Создать статусы в воронке.

    Параметры:

      - pipeline_id (int) – Идентификатор воронки.

      - statuses (list[PipelineStatus]) – Список статусов для создания.

    Результат:

      Список созданных статусов с заполненными идентификаторами.

    Исключение:

      AmoCRMAPIError – При ошибке API (статус не 2xx).

    Тип результата:

      list[PipelineStatus]

  update_status(pipeline_id, status_id, data)

    Обновить статус воронки.

    Параметры:

      - pipeline_id (int) – Идентификатор воронки.

      - status_id (int) – Идентификатор статуса.

      - data (PipelineStatus) – Объект с обновляемыми полями.

    Результат:

      Обновлённый объект `PipelineStatus`.

    Исключение:

      AmoCRMAPIError – При ошибке API (статус не 2xx).

    Тип результата:

      PipelineStatus

  delete_status(pipeline_id, status_id)

    Удалить статус воронки.

    Параметры:

      - pipeline_id (int) – Идентификатор воронки.

      - status_id (int) – Идентификатор статуса.

    Исключение:

      AmoCRMAPIError – При ошибке API (статус не 2xx).

    Тип результата:

      None

### Задачи

class amocrm.resources.tasks.TasksResource(client, dto_class=None)

  Базовые классы: `BaseResource`[`Task`]

  Ресурс для работы с задачами AmoCRM (`/api/v4/tasks`).

  Параметры:

    - client (AmoCRM)

    - dto_class (type[_T] | None)

  list(*, page=None, limit=None, filter=None, order=None)

    Получить список задач с пагинацией и фильтрами.

    Параметры:

      - page (int | None) – Номер страницы (начиная с 1). Если не передан — автоматически обходит все страницы и возвращает `Iterator[Task]`.

      - limit (int | None) – Количество задач на странице (максимум 250). По умолчанию 50 при авто-пагинации.

      - filter (dict[str, Any] | None) – Словарь фильтров вида `{"field": "value"}`; ключи преобразуются в параметры `filter[field]=value`.

      - order (dict[str, str] | None) – Словарь сортировки вида `{"field": "asc"|"desc"}`; ключи преобразуются в параметры `order[field]=asc`.

    Результат:

      Если `page` передан — список объектов `Task`. Если `page` не передан — `Iterator[Task]` по всем страницам.

    Исключение:

      AmoCRMAPIError – При ошибке API (статус не 2xx).

    Тип результата:

      list[Task] | Iterator[Task]

  get(task_id)

    Получить задачу по идентификатору.

    Параметры:

      task_id (int) – Идентификатор задачи.

    Результат:

      Объект `Task`.

    Исключение:

      AmoCRMAPIError – При ошибке API (статус не 2xx).

    Тип результата:

      Task

## Модели

### Общие типы

class amocrm.models.common.CustomFieldsMixin

  Базовые классы: `object`

  Mixin для типизированного доступа к кастомным полям AmoCRM.

  Предоставляет методы для чтения значений кастомных полей по их ID. Должен использоваться совместно с датаклассами, имеющими поле `custom_fields_values: list[CustomFieldValue] | None`.

  custom_fields_values: list[CustomFieldValue] | None
  get_cf_raw(field_id)

    Вернуть список значений кастомного поля по его ID или `None`.

    Параметры:

      field_id (int)

    Тип результата:

      list[dict[str, Any]] | None

  get_cf_value(field_id)

    Вернуть первое значение поля (`values[0]["value"]`) или `None`.

    Параметры:

      field_id (int)

    Тип результата:

      Any

  get_cf_values(field_id)

    Вернуть все значения поля (`values[i]["value"]`).

    Параметры:

      field_id (int)

    Тип результата:

      list[Any]

  get_cf_enum_id(field_id)

    Вернуть `enum_id` первого значения поля или `None`.

    Параметры:

      field_id (int)

    Тип результата:

      int | None

  set_cf_value(field_id, value)

    Установить единственное значение кастомного поля.

    Параметры:

      - field_id (int)

      - value (Any)

    Тип результата:

      None

  set_cf_values(field_id, values)

    Установить несколько значений кастомного поля (multiselect).

    Параметры:

      - field_id (int)

      - values (list[Any])

    Тип результата:

      None

  set_cf_raw(field_id, values)

    Установить raw-значения кастомного поля (например, smart_address).

    Параметры:

      - field_id (int)

      - values (list[dict[str, Any]] | None)

    Тип результата:

      None

class amocrm.models.common.Tag(*, id=None, name=None)

  Базовые классы: `object`

  Тег сущности AmoCRM.

  Переменные:

    - id (int | None) – Идентификатор тега.

    - name (str | None) – Название тега.

  Параметры:

    - id (int | None)

    - name (str | None)

  id: int | None = None
  name: str | None = None
  classmethod from_dict(data)

    Создать экземпляр из словаря API.

    Параметры:

      data (dict[str, Any])

    Тип результата:

      Tag

  to_dict()

    Сериализовать в словарь, исключая поля со значением `None`.

    Тип результата:

      dict[str, Any]

  __init__(*, id=None, name=None)
    Параметры:

      - id (int | None)

      - name (str | None)

    Тип результата:

      None

class amocrm.models.common.CustomFieldValue(*, field_id, values=<factory>)

  Базовые классы: `object`

  Значение кастомного поля AmoCRM.

  Переменные:

    - field_id (int) – Идентификатор кастомного поля.

    - values (list[dict[str, Any]]) – Список значений поля (каждое — словарь с ключами `value` и опционально `enum_id` / `enum_code`).

  Параметры:

    - field_id (int)

    - values (list[dict[str, Any]])

  field_id: int
  values: list[dict[str, Any]]
  classmethod from_dict(data)

    Создать экземпляр из словаря API.

    Параметры:

      data (dict[str, Any])

    Тип результата:

      CustomFieldValue

  to_dict()

    Сериализовать в словарь для отправки в API.

    Тип результата:

      dict[str, Any]

  __init__(*, field_id, values=<factory>)
    Параметры:

      - field_id (int)

      - values (list[dict[str, Any]])

    Тип результата:

      None

class amocrm.models.common.BaseModel

  Базовые классы: `CustomFieldsMixin`

  Базовый класс DTO-моделей AmoCRM с общей логикой `from_dict`/`to_dict`.

  Подклассы должны быть датаклассами и определять `_scalar_fields` — кортеж имён полей, которые берутся напрямую из словаря API.

  tags: list[Tag] | None
  custom_fields_values: list[CustomFieldValue] | None
  classmethod from_dict(data)

    Создать экземпляр из словаря API AmoCRM.

    Параметры:

      data (dict[str, Any])

    Тип результата:

      _M

  to_dict()

    Сериализовать в словарь для API, исключая поля со значением `None`.

    Тип результата:

      dict[str, Any]

### Сделки

class amocrm.models.leads.ComplexLeadResult(*, id, contact_id=None, company_id=None, merged=False, request_id=None)

  Базовые классы: `object`

  Результат создания сделки через `/api/v4/leads/complex`.

  Переменные:

    - id (int) – Идентификатор созданной сделки.

    - contact_id (int | None) – Идентификатор связанного контакта.

    - company_id (int | None) – Идентификатор связанной компании.

    - merged (bool) – Признак слияния с существующей сделкой.

    - request_id (list[str] | None) – Список идентификаторов запросов.

  Параметры:

    - id (int)

    - contact_id (int | None)

    - company_id (int | None)

    - merged (bool)

    - request_id (list[str] | None)

  id: int
  contact_id: int | None = None
  company_id: int | None = None
  merged: bool = False
  request_id: list[str] | None = None
  classmethod from_dict(data)

    Создать экземпляр из словаря API AmoCRM.

    Параметры:

      data (dict[str, Any])

    Тип результата:

      ComplexLeadResult

  __init__(*, id, contact_id=None, company_id=None, merged=False, request_id=None)
    Параметры:

      - id (int)

      - contact_id (int | None)

      - company_id (int | None)

      - merged (bool)

      - request_id (list[str] | None)

    Тип результата:

      None

class amocrm.models.leads.Lead(*, id=None, name=None, price=None, status_id=None, pipeline_id=None, responsible_user_id=None, group_id=None, created_by=None, updated_by=None, created_at=None, updated_at=None, closed_at=None, closest_task_at=None, is_deleted=None, loss_reason_id=None, score=None, account_id=None, labor_cost=None, tags=None, custom_fields_values=None, contacts=None, company=None)

  Базовые классы: `BaseModel`

  DTO-модель сделки AmoCRM.

  Переменные:

    - id (int | None) – Идентификатор сделки.

    - name (str | None) – Название сделки.

    - price (int | None) – Бюджет сделки.

    - status_id (int | None) – Идентификатор статуса воронки.

    - pipeline_id (int | None) – Идентификатор воронки.

    - responsible_user_id (int | None) – Идентификатор ответственного пользователя.

    - group_id (int | None) – Идентификатор группы пользователей.

    - created_by (int | None) – Идентификатор пользователя, создавшего сделку.

    - updated_by (int | None) – Идентификатор пользователя, обновившего сделку.

    - created_at (int | None) – Дата создания (Unix timestamp).

    - updated_at (int | None) – Дата последнего изменения (Unix timestamp).

    - closed_at (int | None) – Дата закрытия сделки (Unix timestamp).

    - closest_task_at (int | None) – Дата ближайшей задачи (Unix timestamp).

    - is_deleted (bool | None) – Признак удалённой сделки.

    - loss_reason_id (int | None) – Идентификатор причины закрытия (проигрыша).

    - score (int | None) – Оценка сделки.

    - account_id (int | None) – Идентификатор аккаунта AmoCRM.

    - labor_cost (int | None) – Затраченное время (в минутах).

    - tags (list[amocrm.models.common.Tag] | None) – Список тегов сделки.

    - custom_fields_values (list[amocrm.models.common.CustomFieldValue] | None) – Список значений кастомных полей.

    - contacts (list[amocrm.models.contacts.Contact] | None) – Список связанных контактов.

    - company (amocrm.models.companies.Company | None) – Связанная компания.

  Параметры:

    - id (int | None)

    - name (str | None)

    - price (int | None)

    - status_id (int | None)

    - pipeline_id (int | None)

    - responsible_user_id (int | None)

    - group_id (int | None)

    - created_by (int | None)

    - updated_by (int | None)

    - created_at (int | None)

    - updated_at (int | None)

    - closed_at (int | None)

    - closest_task_at (int | None)

    - is_deleted (bool | None)

    - loss_reason_id (int | None)

    - score (int | None)

    - account_id (int | None)

    - labor_cost (int | None)

    - tags (list[Tag] | None)

    - custom_fields_values (list[CustomFieldValue] | None)

    - contacts (list[Contact] | None)

    - company (Company | None)

  id: int | None = None
  name: str | None = None
  price: int | None = None
  status_id: int | None = None
  pipeline_id: int | None = None
  responsible_user_id: int | None = None
  group_id: int | None = None
  created_by: int | None = None
  updated_by: int | None = None
  created_at: int | None = None
  updated_at: int | None = None
  closed_at: int | None = None
  closest_task_at: int | None = None
  is_deleted: bool | None = None
  loss_reason_id: int | None = None
  score: int | None = None
  account_id: int | None = None
  labor_cost: int | None = None
  tags: list[Tag] | None = None
  custom_fields_values: list[CustomFieldValue] | None = None
  contacts: list[Contact] | None = None
  company: Company | None = None
  classmethod from_dict(data)

    Создать экземпляр из словаря API AmoCRM.

    Параметры:

      data (dict[str, Any])

    Тип результата:

      Lead

  to_dict()

    Сериализовать в словарь для API, исключая поля со значением `None`.

    Тип результата:

      dict[str, Any]

  __init__(*, id=None, name=None, price=None, status_id=None, pipeline_id=None, responsible_user_id=None, group_id=None, created_by=None, updated_by=None, created_at=None, updated_at=None, closed_at=None, closest_task_at=None, is_deleted=None, loss_reason_id=None, score=None, account_id=None, labor_cost=None, tags=None, custom_fields_values=None, contacts=None, company=None)
    Параметры:

      - id (int | None)

      - name (str | None)

      - price (int | None)

      - status_id (int | None)

      - pipeline_id (int | None)

      - responsible_user_id (int | None)

      - group_id (int | None)

      - created_by (int | None)

      - updated_by (int | None)

      - created_at (int | None)

      - updated_at (int | None)

      - closed_at (int | None)

      - closest_task_at (int | None)

      - is_deleted (bool | None)

      - loss_reason_id (int | None)

      - score (int | None)

      - account_id (int | None)

      - labor_cost (int | None)

      - tags (list[Tag] | None)

      - custom_fields_values (list[CustomFieldValue] | None)

      - contacts (list[Contact] | None)

      - company (Company | None)

    Тип результата:

      None

### Контакты

class amocrm.models.contacts.Contact(*, id=None, name=None, first_name=None, last_name=None, responsible_user_id=None, group_id=None, created_by=None, updated_by=None, created_at=None, updated_at=None, closest_task_at=None, is_deleted=None, account_id=None, tags=None, custom_fields_values=None)

  Базовые классы: `BaseModel`

  DTO-модель контакта AmoCRM.

  Переменные:

    - id (int | None) – Идентификатор контакта.

    - name (str | None) – Полное имя контакта.

    - first_name (str | None) – Имя.

    - last_name (str | None) – Фамилия.

    - responsible_user_id (int | None) – Идентификатор ответственного пользователя.

    - group_id (int | None) – Идентификатор группы пользователей.

    - created_by (int | None) – Идентификатор пользователя, создавшего контакт.

    - updated_by (int | None) – Идентификатор пользователя, обновившего контакт.

    - created_at (int | None) – Дата создания (Unix timestamp).

    - updated_at (int | None) – Дата последнего изменения (Unix timestamp).

    - closest_task_at (int | None) – Дата ближайшей задачи (Unix timestamp).

    - is_deleted (bool | None) – Признак удалённого контакта.

    - account_id (int | None) – Идентификатор аккаунта AmoCRM.

    - tags (list[amocrm.models.common.Tag] | None) – Список тегов контакта.

    - custom_fields_values (list[amocrm.models.common.CustomFieldValue] | None) – Список значений кастомных полей.

  Параметры:

    - id (int | None)

    - name (str | None)

    - first_name (str | None)

    - last_name (str | None)

    - responsible_user_id (int | None)

    - group_id (int | None)

    - created_by (int | None)

    - updated_by (int | None)

    - created_at (int | None)

    - updated_at (int | None)

    - closest_task_at (int | None)

    - is_deleted (bool | None)

    - account_id (int | None)

    - tags (list[Tag] | None)

    - custom_fields_values (list[CustomFieldValue] | None)

  id: int | None = None
  name: str | None = None
  first_name: str | None = None
  last_name: str | None = None
  responsible_user_id: int | None = None
  group_id: int | None = None
  created_by: int | None = None
  updated_by: int | None = None
  created_at: int | None = None
  updated_at: int | None = None
  closest_task_at: int | None = None
  is_deleted: bool | None = None
  account_id: int | None = None
  tags: list[Tag] | None = None
  custom_fields_values: list[CustomFieldValue] | None = None
  __init__(*, id=None, name=None, first_name=None, last_name=None, responsible_user_id=None, group_id=None, created_by=None, updated_by=None, created_at=None, updated_at=None, closest_task_at=None, is_deleted=None, account_id=None, tags=None, custom_fields_values=None)
    Параметры:

      - id (int | None)

      - name (str | None)

      - first_name (str | None)

      - last_name (str | None)

      - responsible_user_id (int | None)

      - group_id (int | None)

      - created_by (int | None)

      - updated_by (int | None)

      - created_at (int | None)

      - updated_at (int | None)

      - closest_task_at (int | None)

      - is_deleted (bool | None)

      - account_id (int | None)

      - tags (list[Tag] | None)

      - custom_fields_values (list[CustomFieldValue] | None)

    Тип результата:

      None

### Компании

class amocrm.models.companies.Company(*, id=None, name=None, responsible_user_id=None, group_id=None, created_by=None, updated_by=None, created_at=None, updated_at=None, closest_task_at=None, is_deleted=None, account_id=None, tags=None, custom_fields_values=None)

  Базовые классы: `BaseModel`

  DTO-модель компании AmoCRM.

  Переменные:

    - id (int | None) – Идентификатор компании.

    - name (str | None) – Название компании.

    - responsible_user_id (int | None) – Идентификатор ответственного пользователя.

    - group_id (int | None) – Идентификатор группы пользователей.

    - created_by (int | None) – Идентификатор пользователя, создавшего компанию.

    - updated_by (int | None) – Идентификатор пользователя, обновившего компанию.

    - created_at (int | None) – Дата создания (Unix timestamp).

    - updated_at (int | None) – Дата последнего изменения (Unix timestamp).

    - closest_task_at (int | None) – Дата ближайшей задачи (Unix timestamp).

    - is_deleted (bool | None) – Признак удалённой компании.

    - account_id (int | None) – Идентификатор аккаунта AmoCRM.

    - tags (list[amocrm.models.common.Tag] | None) – Список тегов компании.

    - custom_fields_values (list[amocrm.models.common.CustomFieldValue] | None) – Список значений кастомных полей.

  Параметры:

    - id (int | None)

    - name (str | None)

    - responsible_user_id (int | None)

    - group_id (int | None)

    - created_by (int | None)

    - updated_by (int | None)

    - created_at (int | None)

    - updated_at (int | None)

    - closest_task_at (int | None)

    - is_deleted (bool | None)

    - account_id (int | None)

    - tags (list[Tag] | None)

    - custom_fields_values (list[CustomFieldValue] | None)

  id: int | None = None
  name: str | None = None
  responsible_user_id: int | None = None
  group_id: int | None = None
  created_by: int | None = None
  updated_by: int | None = None
  created_at: int | None = None
  updated_at: int | None = None
  closest_task_at: int | None = None
  is_deleted: bool | None = None
  account_id: int | None = None
  tags: list[Tag] | None = None
  custom_fields_values: list[CustomFieldValue] | None = None
  __init__(*, id=None, name=None, responsible_user_id=None, group_id=None, created_by=None, updated_by=None, created_at=None, updated_at=None, closest_task_at=None, is_deleted=None, account_id=None, tags=None, custom_fields_values=None)
    Параметры:

      - id (int | None)

      - name (str | None)

      - responsible_user_id (int | None)

      - group_id (int | None)

      - created_by (int | None)

      - updated_by (int | None)

      - created_at (int | None)

      - updated_at (int | None)

      - closest_task_at (int | None)

      - is_deleted (bool | None)

      - account_id (int | None)

      - tags (list[Tag] | None)

      - custom_fields_values (list[CustomFieldValue] | None)

    Тип результата:

      None

### Воронки и статусы

class amocrm.models.pipelines.StatusDescription(*, id=None, level=None, text=None)

  Базовые классы: `object`

  Описание уровня зрелости сделки в статусе воронки.

  Переменные:

    - id (int | None) – Идентификатор описания.

    - level (str | None) – Уровень зрелости (`"newbie"`, `"candidate"`, `"master"`).

    - text (str | None) – Текст описания.

  Параметры:

    - id (int | None)

    - level (str | None)

    - text (str | None)

  id: int | None = None
  level: str | None = None
  text: str | None = None
  classmethod from_dict(data)

    Создать экземпляр из словаря API.

    Параметры:

      data (dict[str, Any])

    Тип результата:

      StatusDescription

  to_dict()

    Сериализовать в словарь, исключая поля со значением `None`.

    Тип результата:

      dict[str, Any]

  __init__(*, id=None, level=None, text=None)
    Параметры:

      - id (int | None)

      - level (str | None)

      - text (str | None)

    Тип результата:

      None

class amocrm.models.pipelines.PipelineStatus(*, id=None, name=None, sort=None, is_editable=None, pipeline_id=None, color=None, type=None, account_id=None, descriptions=None)

  Базовые классы: `object`

  DTO-модель статуса воронки AmoCRM.

  Переменные:

    - id (int | None) – Идентификатор статуса.

    - name (str | None) – Название статуса.

    - sort (int | None) – Порядок сортировки.

    - is_editable (bool | None) – Можно ли редактировать статус.

    - pipeline_id (int | None) – Идентификатор воронки, которой принадлежит статус.

    - color (str | None) – HEX-цвет статуса (например, `"#fffeb2"`).

    - type (int | None) – Тип статуса (0 — обычный, 142 — успешно завершён, 143 — закрыт и не реализован).

    - account_id (int | None) – Идентификатор аккаунта AmoCRM.

    - descriptions (list[amocrm.models.pipelines.StatusDescription] | None) – Описания уровней зрелости сделок в этом статусе.

  Параметры:

    - id (int | None)

    - name (str | None)

    - sort (int | None)

    - is_editable (bool | None)

    - pipeline_id (int | None)

    - color (str | None)

    - type (int | None)

    - account_id (int | None)

    - descriptions (list[StatusDescription] | None)

  id: int | None = None
  name: str | None = None
  sort: int | None = None
  is_editable: bool | None = None
  pipeline_id: int | None = None
  color: str | None = None
  type: int | None = None
  account_id: int | None = None
  descriptions: list[StatusDescription] | None = None
  classmethod from_dict(data)

    Создать экземпляр из словаря API.

    Параметры:

      data (dict[str, Any])

    Тип результата:

      PipelineStatus

  to_dict()

    Сериализовать в словарь для API, исключая поля со значением `None`.

    Тип результата:

      dict[str, Any]

  __init__(*, id=None, name=None, sort=None, is_editable=None, pipeline_id=None, color=None, type=None, account_id=None, descriptions=None)
    Параметры:

      - id (int | None)

      - name (str | None)

      - sort (int | None)

      - is_editable (bool | None)

      - pipeline_id (int | None)

      - color (str | None)

      - type (int | None)

      - account_id (int | None)

      - descriptions (list[StatusDescription] | None)

    Тип результата:

      None

class amocrm.models.pipelines.Pipeline(*, id=None, name=None, sort=None, is_main=None, is_unsorted_on=None, is_archive=None, account_id=None, statuses=None)

  Базовые классы: `object`

  DTO-модель воронки продаж AmoCRM.

  Переменные:

    - id (int | None) – Идентификатор воронки.

    - name (str | None) – Название воронки.

    - sort (int | None) – Порядок сортировки.

    - is_main (bool | None) – Является ли воронка основной.

    - is_unsorted_on (bool | None) – Включён ли неразобранный раздел.

    - is_archive (bool | None) – Находится ли воронка в архиве.

    - account_id (int | None) – Идентификатор аккаунта AmoCRM.

    - statuses (list[amocrm.models.pipelines.PipelineStatus] | None) – Список статусов воронки.

  Параметры:

    - id (int | None)

    - name (str | None)

    - sort (int | None)

    - is_main (bool | None)

    - is_unsorted_on (bool | None)

    - is_archive (bool | None)

    - account_id (int | None)

    - statuses (list[PipelineStatus] | None)

  id: int | None = None
  name: str | None = None
  sort: int | None = None
  is_main: bool | None = None
  is_unsorted_on: bool | None = None
  is_archive: bool | None = None
  account_id: int | None = None
  statuses: list[PipelineStatus] | None = None
  classmethod from_dict(data)

    Создать экземпляр из словаря API.

    Параметры:

      data (dict[str, Any])

    Тип результата:

      Pipeline

  to_dict()

    Сериализовать в словарь для API, исключая поля со значением `None`.

    Тип результата:

      dict[str, Any]

  __init__(*, id=None, name=None, sort=None, is_main=None, is_unsorted_on=None, is_archive=None, account_id=None, statuses=None)
    Параметры:

      - id (int | None)

      - name (str | None)

      - sort (int | None)

      - is_main (bool | None)

      - is_unsorted_on (bool | None)

      - is_archive (bool | None)

      - account_id (int | None)

      - statuses (list[PipelineStatus] | None)

    Тип результата:

      None

### Задачи

class amocrm.models.tasks.Task(*, id=None, text=None, complete_till=None, task_type_id=None, responsible_user_id=None, is_completed=None, entity_id=None, entity_type=None, duration=None, created_by=None, updated_by=None, created_at=None, updated_at=None, group_id=None, account_id=None, result=None)

  Базовые классы: `object`

  DTO-модель задачи AmoCRM.

  Переменные:

    - id (int | None) – Идентификатор задачи.

    - text (str | None) – Текст задачи.

    - complete_till (int | None) – Срок выполнения (Unix timestamp).

    - task_type_id (int | None) – Идентификатор типа задачи.

    - responsible_user_id (int | None) – Идентификатор ответственного пользователя.

    - is_completed (bool | None) – Признак выполненной задачи.

    - entity_id (int | None) – Идентификатор связанной сущности.

    - entity_type (str | None) – Тип связанной сущности (`"leads"`, `"contacts"` и др.).

    - duration (int | None) – Длительность задачи (в секундах).

    - created_by (int | None) – Идентификатор пользователя, создавшего задачу.

    - updated_by (int | None) – Идентификатор пользователя, обновившего задачу.

    - created_at (int | None) – Дата создания (Unix timestamp).

    - updated_at (int | None) – Дата последнего изменения (Unix timestamp).

    - group_id (int | None) – Идентификатор группы пользователей.

    - account_id (int | None) – Идентификатор аккаунта AmoCRM.

    - result (dict[str, Any] | None) – Результат выполнения задачи вида `{"text": "..."}`.

  Параметры:

    - id (int | None)

    - text (str | None)

    - complete_till (int | None)

    - task_type_id (int | None)

    - responsible_user_id (int | None)

    - is_completed (bool | None)

    - entity_id (int | None)

    - entity_type (str | None)

    - duration (int | None)

    - created_by (int | None)

    - updated_by (int | None)

    - created_at (int | None)

    - updated_at (int | None)

    - group_id (int | None)

    - account_id (int | None)

    - result (dict[str, Any] | None)

  id: int | None = None
  text: str | None = None
  complete_till: int | None = None
  task_type_id: int | None = None
  responsible_user_id: int | None = None
  is_completed: bool | None = None
  entity_id: int | None = None
  entity_type: str | None = None
  duration: int | None = None
  created_by: int | None = None
  updated_by: int | None = None
  created_at: int | None = None
  updated_at: int | None = None
  group_id: int | None = None
  account_id: int | None = None
  result: dict[str, Any] | None = None
  classmethod from_dict(data)

    Создать экземпляр из словаря API AmoCRM.

    Параметры:

      data (dict[str, Any])

    Тип результата:

      Task

  to_dict()

    Сериализовать в словарь для API, исключая поля со значением `None`.

    Тип результата:

      dict[str, Any]

  __init__(*, id=None, text=None, complete_till=None, task_type_id=None, responsible_user_id=None, is_completed=None, entity_id=None, entity_type=None, duration=None, created_by=None, updated_by=None, created_at=None, updated_at=None, group_id=None, account_id=None, result=None)
    Параметры:

      - id (int | None)

      - text (str | None)

      - complete_till (int | None)

      - task_type_id (int | None)

      - responsible_user_id (int | None)

      - is_completed (bool | None)

      - entity_id (int | None)

      - entity_type (str | None)

      - duration (int | None)

      - created_by (int | None)

      - updated_by (int | None)

      - created_at (int | None)

      - updated_at (int | None)

      - group_id (int | None)

      - account_id (int | None)

      - result (dict[str, Any] | None)

    Тип результата:

      None