Skip to main content

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

Project description

SDK для Avito

CI

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

Требование к интерпретатору: Python 3.14 и выше в рамках ветки 3.x. Репозиторий и релизный контур валидируются именно на Python 3.14.

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

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 в этот снимок не попадают.

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

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

make check

Для локальной разработки команды разделены:

make fmt
make lint
make typecheck
make test
make build

GitHub Actions

Для репозитория настроены два workflow:

  • CI запускается на каждый push в main/master и на каждый pull_request, выполняет make check.
  • Release запускается при пуше тега вида v*, выставляет версию пакета из тега, повторно выполняет make check, публикует пакет на PyPI и создаёт GitHub Release.

Для публикации релиза нужно добавить secret:

  • PYPI_API_TOKEN — токен публикации в PyPI для poetry publish.

Порядок релиза:

git tag v1.0.2
git push origin v1.0.2

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

  • 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.3.tar.gz (66.5 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.3-py3-none-any.whl (105.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: avito_py-1.0.3.tar.gz
  • Upload date:
  • Size: 66.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.3.4 CPython/3.14.4 Linux/6.17.0-1010-azure

File hashes

Hashes for avito_py-1.0.3.tar.gz
Algorithm Hash digest
SHA256 14c487f590e50461957f1d6cb0a551b45b7829d47d94fab818e5d7b10133b653
MD5 8093626c49e569e46a19fe947f35e3d0
BLAKE2b-256 cec427b482cadf3314ccf6041f4bdcfc6b96bcee147c750cee51a448a98ee677

See more details on using hashes here.

File details

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

File metadata

  • Download URL: avito_py-1.0.3-py3-none-any.whl
  • Upload date:
  • Size: 105.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.3.4 CPython/3.14.4 Linux/6.17.0-1010-azure

File hashes

Hashes for avito_py-1.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 f98e1f5514607b8c5f3accd0ae2c1429b6e921cbb6e3803fe56e8d50a9bef03d
MD5 d676a8289d83eb68561c67c706ff6b64
BLAKE2b-256 cbe363681b2bca4b1ad428db30470a421bad2ff05d4899187d14908baa353419

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