Перейти к содержанию

Профиль, баланс и иерархия аккаунта

Этот рецепт показывает рабочий минимум для раздела accounts: получить профиль авторизованного пользователя, проверить баланс, прочитать историю операций и посмотреть данные иерархии аккаунтов.

Профиль

Используйте account().get_self(), когда нужно определить пользователя, от имени которого работает токен.

from avito import AvitoClient

with AvitoClient.from_env() as avito:
    profile = avito.account().get_self()

print(profile.user_id)
print(profile.email)

Баланс

get_balance() требует user_id. Его можно передать в фабрику account() один раз или явно в сам метод.

from avito import AvitoClient

with AvitoClient.from_env() as avito:
    balance = avito.account(user_id=7).get_balance()

print(balance.real)
print(balance.bonus)
print(balance.total)

История операций

История возвращается как PaginatedList: первая страница уже загружена, а остальные страницы читаются лениво при итерации или через materialize().

from datetime import datetime, timezone

from avito import AvitoClient

with AvitoClient.from_env() as avito:
    history = avito.account(user_id=7).get_operations_history(
        date_from=datetime(2026, 4, 1, tzinfo=timezone.utc),
        limit=2,
    )
    operations = history.materialize()

print(operations[0].amount)

Иерархия аккаунтов

Для компаний и агентских кабинетов используйте отдельный доменный объект account_hierarchy().

from avito import AvitoClient

with AvitoClient.from_env() as avito:
    hierarchy = avito.account_hierarchy(user_id=7)
    status = hierarchy.get_status()
    employees = hierarchy.list_employees()
    phones = hierarchy.list_company_phones()

print(status.is_active)
print(employees.items[0].name)
print(phones.items[0].phone)

Объявления сотрудника

Операции иерархии принимают конкретные идентификаторы: employee_id, item_ids, source_employee_id. Для повторяемых write-вызовов передавайте idempotency_key.

from avito import AvitoClient

with AvitoClient.from_env() as avito:
    hierarchy = avito.account_hierarchy(user_id=7)
    result = hierarchy.link_items(
        employee_id=10,
        item_ids=[101],
        idempotency_key="account-profile-example-1",
    )
    items = hierarchy.list_items_by_employee(employee_id=10, limit=5)

print(result.success)
print(items[0].title)

Полный контракт моделей смотрите в reference по домену accounts, а общие правила пагинации — в reference по пагинации.