Skip to main content

SDK для разработки инструментов на базе Avito API

Project description

SDK для Avito

avito-py — Python SDK для работы с Avito API через единый объектный фасад AvitoClient.

Цели SDK:

  • скрыть transport, OAuth и retry-логику от пользовательского кода;
  • возвращать типизированные dataclass-модели вместо сырого JSON;
  • дать единый вход в доменные сценарии вида avito.ad(...).get() и avito.chat(...).send_message(...);
  • покрыть все swagger-документы из каталога docs.

Установка

poetry add avito-py

или

pip install avito-py

Быстрый старт

from avito import AvitoClient

with AvitoClient() as avito:
    profile = avito.account().get_self()
    ad = avito.ad(42).get()

print(profile.name)
print(ad.title)

По умолчанию настройки читаются из переменных окружения с префиксом AVITO_.

Базовые переменные:

  • AVITO_AUTH__CLIENT_ID
  • AVITO_AUTH__CLIENT_SECRET
  • AVITO_AUTH__REFRESH_TOKEN
  • AVITO_BASE_URL

Примеры по доменам

Аккаунт и объявления

from avito import AvitoClient

with AvitoClient() as avito:
    account = avito.account(user_id=123)
    balance = account.get_balance()
    ad = avito.ad(item_id=42, user_id=123).get()
    stats = avito.ad_stats(item_id=42, user_id=123).get()

Автозагрузка

from avito import AvitoClient

with AvitoClient() as avito:
    profile = avito.autoload_profile(user_id=123).get()
    report = avito.autoload_report(report_id=777).get()

Мессенджер

from avito import AvitoClient

with AvitoClient() as avito:
    chats = avito.chat(user_id=123).list()
    message = avito.chat(chat_id="chat-1", user_id=123).send_message(message="Здравствуйте")
    subscriptions = avito.chat_webhook().list()

Продвижение

from avito import AvitoClient

with AvitoClient() as avito:
    services = avito.promotion_order().list_orders()
    forecast = avito.bbip_promotion(item_id=42).get_forecasts(items=[])
    campaign = avito.autostrategy_campaign(campaign_id=15).get()

Заказы и доставка

from avito import AvitoClient

with AvitoClient() as avito:
    order = avito.order(order_id=100500).get()
    label = avito.order_label(task_id="task-1").download()
    sandbox = avito.sandbox_delivery(task_id="task-1").get()

Работа

from avito import AvitoClient

with AvitoClient() as avito:
    vacancies = avito.vacancy().list()
    applications = avito.application().list()
    webhooks = avito.job_webhook().list()

CPA и CallTracking

from avito import AvitoClient

with AvitoClient() as avito:
    calls = avito.cpa_call().list()
    records = avito.call_tracking_call(call_id=10).download()

Автотека

from avito import AvitoClient

with AvitoClient() as avito:
    preview = avito.autoteka_vehicle().create_preview_by_vin(payload={"vin": "XTA00000000000000"})
    report = avito.autoteka_report(report_id=preview.preview_id).get_report()

Недвижимость, отзывы и тарифы

from avito import AvitoClient

with AvitoClient() as avito:
    bookings = avito.realty_booking().list()
    reviews = avito.review().list_reviews_v1()
    tariff = avito.tariff().get_tariff_info()

Отладка интеграции

SDK не раскрывает сырой transport в основном API, но даёт безопасный debug snapshot без секретов:

from avito import AvitoClient

client = AvitoClient()
info = client.debug_info()

print(info.base_url)
print(info.retry_max_attempts)
client.close()

debug_info() подходит для smoke-проверок окружения и диагностики конфигурации. Access token, client_secret и Authorization header в этот снимок не попадают.

Проверки качества

Минимальный релизный набор:

poetry run pytest
poetry run mypy avito
poetry run ruff check .
poetry build

Документация репозитория

  • STYLEGUIDE.md — нормативные архитектурные правила.
  • TODO.md — этапы реализации и релизный gate.
  • docs/inventory.md — матрица соответствия swagger-операций и публичного API SDK.
  • docs/release.md — политика changelog и checklist релиза.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

avito_py-1.0.1.tar.gz (64.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

avito_py-1.0.1-py3-none-any.whl (103.5 kB view details)

Uploaded Python 3

File details

Details for the file avito_py-1.0.1.tar.gz.

File metadata

  • Download URL: avito_py-1.0.1.tar.gz
  • Upload date:
  • Size: 64.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.3.2 CPython/3.14.3 Darwin/24.1.0

File hashes

Hashes for avito_py-1.0.1.tar.gz
Algorithm Hash digest
SHA256 f6506ba4abee9cafaca31b654fba11153c37cab4b848d8efb76d47a8d3259c49
MD5 95e63788e3779c9c47bc732548aa8047
BLAKE2b-256 7ed80cc0a668bbd7ed7ae053d0e12664dd941e316e3e4f6d7c496a0b7cf1ce2a

See more details on using hashes here.

File details

Details for the file avito_py-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: avito_py-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 103.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.3.2 CPython/3.14.3 Darwin/24.1.0

File hashes

Hashes for avito_py-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 2cdc60a7842f91480e1f9efc50973a095e44cb9ab41c9070ca768c955acd63f7
MD5 a93aeecbb6a157b42878d28599bee763
BLAKE2b-256 aa6b9d9debeadaef88b611b9f17610c79fed783391db91b2e894f626000c6c5d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page