Python library for working with amoCRM API with ETL capabilities
Project description
amochka
Официальная документация API amocrm - https://www.amocrm.ru/developers/content/crm_platform/api-reference
amochka — библиотека для работы с API amoCRM на Python. Она поддерживает:
- Получение данных сделок с вложенными сущностями (контакты, компании, теги, и т.д.)
- Редактирование сделок, включая обновление стандартных и кастомных полей
- Поддержку нескольких amoCRM-аккаунтов с персистентным кэшированием кастомных полей для каждого аккаунта отдельно
- Ограничение запросов (7 запросов в секунду) с использованием декораторов из библиотеки
ratelimit
Основные функции
get_deal_by_id(deal_id)— получение детальной информации по сделкеget_pipelines()— список воронок и статусовfetch_updated_leads_raw(pipeline_id, updated_from, ...)— выгрузка необработанных сделок за период
Требования к окружению
Python 3.8 или новее. Потребуются пакеты requests и ratelimit.
Установка
Установите зависимости командой:
pip install requests ratelimit
Затем скопируйте репозиторий или установите пакет из PyPI (после публикации):
pip install amochka
Кэширование кастомных полей
Для уменьшения количества запросов к API кастомные поля кэшируются персистентно. Если параметр cache_file не указан, имя файла кэша генерируется автоматически на основе домена amoCRM-аккаунта. Вы можете обновлять кэш принудительно, передавая параметр force_update=True в метод get_custom_fields_mapping() или настроить время жизни кэша (по умолчанию — 24 часа).
Выгрузка обновленных сделок
Метод fetch_updated_leads_raw() позволяет получить все сделки из указанной воронки, которые были изменены в заданный промежуток времени. Результат можно сохранить в JSON-файл без какой‑либо обработки:
from datetime import datetime, timedelta
from amochka import AmoCRMClient, CacheConfig
client = AmoCRMClient(
base_url="https://bneginskogo.amocrm.ru",
token_file="/path/to/token.json",
cache_config=CacheConfig.disabled(),
disable_logging=True
)
three_hours_ago = datetime.utcnow() - timedelta(hours=3)
client.fetch_updated_leads_raw(6241334, updated_from=three_hours_ago, save_to_file="leads.json")
Пример получаемого JSON (укороченный):
[
{
"id": 26282337,
"name": "Автосделка: Заявка от (Максим Брокер Дубай Бюро Негинского)",
"custom_fields_values": [
{
"field_name": "roistat",
"values": [{"value": "2026"}]
}
],
"_embedded": {
"tags": [
{"id": 179813, "name": "WZ (Федор 971568113315)"}
]
}
}
]
Для подключения к реальному аккаунту сохраните JSON с OAuth‑токеном и укажите его путь в параметре token_file при создании клиента. Базовый URL можно взять из переменной окружения AMO_BASE_URL.
Тесты
Файл tests/test_client.py содержит небольшой набор автоматических тестов, написанных на pytest. Они запускают методы клиента на подставном классе DummyClient и проверяют, что функции работают так, как ожидается. Запустить тесты можно командой:
pytest -q
Эти тесты помогают убедиться, что изменения в коде не ломают основную функциональность.
Пример использования fetch_updated_leads_raw
Кроме примера в разделе выше, код из example_fetch.py демонстрирует полный процесс получения сделок и сохранения их в файл.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file amochka-0.3.0.tar.gz.
File metadata
- Download URL: amochka-0.3.0.tar.gz
- Upload date:
- Size: 45.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b51a8bcfcd2c046d93f899aac04f01047fe1a1b7e0cba585bb870bc71921d2ce
|
|
| MD5 |
92104616d465ba65f7889a067f0e36cd
|
|
| BLAKE2b-256 |
de9a4fd1420e028ba49a3419d085663cb5a8829d8e5d6c142ef360b9b55475e5
|
File details
Details for the file amochka-0.3.0-py3-none-any.whl.
File metadata
- Download URL: amochka-0.3.0-py3-none-any.whl
- Upload date:
- Size: 45.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8a380cd3c31ab704f10638f5669fe787bef0f0ad37d8edb4ad04be209958728a
|
|
| MD5 |
f42d979c0cdce3c206396db2ea68c72c
|
|
| BLAKE2b-256 |
9f07c2c55a5e0fc00834ddc78fe5f79c784a462b9ad9b85d48592a53ee88cc46
|