Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Асинхронная python-библиотека для работы с Seller API маркетплейса Ozon. С лимитами, автоповторами запросов, документацией и примерами. 11.2025

License

Notifications You must be signed in to change notification settings

a-ulianov/OzonAPI

Repository files navigation

PyPI - Version Pepy Total Downloads GitHub last commit Tests Quality Gate Statuscodecov Python Version License

🌀 OzonAPI

Предоставляет легковесный асинхронный pydantic-интерфейс для взаимодействия с Ozon Seller API.

Поддерживает ограничения запросов, работу с несколькими кабинетами, классическую и OAuth-авторизацию и гибкую настройку через .env.

✅ Актуально на 4-й квартал 2025 года. 🤝 Коммиты приветствуются!

Telegram

⚡️ Применение

  • 📊 Автоматизация сквозной аналитики и отчетов: Excel, Google Sheets, Bitrix24, Power BI
  • 🔄 Промежуточное программное обеспечение: 1С, ERP, WMS, CRM и брокеры
  • 🤖 Чат-боты: Telegram, Max (потенциально), RAG (для актуализации контекста)
  • 📦 PIM-системы: управлениe контентом, товарами, ценами, остатками и отзывами
  • 🗄️ DataLake: товары, цены, остатки, заказы и доставки

🚀 Основные возможности и характеристики

  • ✔️ Проверено в production - используется на боевых кабинетах продавцов Ozon
  • 🔑 Универсальная авторизация - поддерживает как client_id и api_key, так и OAuth-токен
  • ⚡️ Асинхронный дизайн - построен на aiohttp для высокопроизводительных операций
  • 👍 Простое использование - быстрое развертывание и интеграция с вашим проектом
  • 📝 Отличная документация - все методы содержат подробное описание и примеры
  • 👥 Мульти-аккаунт - одновременная работа с несколькими кабинетами продавца Ozon
  • ⏱️ Умное ограничение запросов - автоматическое соблюдение лимитов API Ozon
  • ➿ Гибкая настройка лимитов - кастомные лимиты запросов для методов
  • ⏳ Кеширование ответов - для методов, возвращающих статичные данные
  • 🔄 Автоповторы - экспоненциальные повторные попытки запросов при сбоях
  • 🛡️ Валидация данных - строгая типизация с Pydantic v2
  • 📊 Детальное логирование - асинхронная трассировка операций
  • 🎪 Гибкая конфигурация - настройка через классы, переменные окружения или .env файл
  • 🧹 Очистка ресурсов - автоматический контроль посредством контекстных менеджеров
  • 🧪 Полное покрытие тестами - вся основная функциональность

🤝 Данный проект является форком с глубокой доработкой и актуализацией проекта python-ozon-api от mephistofox:

⚙️ Быстрый старт

Установка

pip install ozonapi-async

Базовое использование

import asyncio
from ozonapi import SellerAPI

async def main():
    async with SellerAPI(
        client_id="your_client_id",     # Обязательно, если не указан oauth-токен
        api_key="your_api_key",         # Обязательно, если не указан oauth-токен
        # token="your_oauth_token",     # Альтернативная авторизация с oauth-токеном
    ) as api:
        # Получение информации о владельце личного кабинета
        seller_info = await api.seller_info()
        
        print(f"Компания: {seller_info.company.name}")
        print(f"ИНН: {seller_info.company.inn}")

if __name__ == "__main__":
    asyncio.run(main())

Настройка через конфигурационный класс

Перечень параметров
- client_id: Идентификатор клиента Ozon (опционально, не требуется при указании token)
- api_key: Авторизационный ключ Ozon Seller API (опционально, не требуется при указании token)
- token: OAuth-токен Ozon Seller API (опционально, не требуется при указании api_key)
- base_url: Базовый URL API Ozon (опционально)
- max_requests_per_second: Максимальное количество запросов в секунду (опционально, по умолчанию 27)
- min_instance_ttl: Длительность памяти об активных клиентах в секундах для ограничения запросов (опционально)
- connector_limit: Лимит одновременных соединений для клиента (опционально, по умолчанию 100)
- request_timeout: Максимальное время ожидания ответа на запрос в секундах (опционально, по умолчанию 30)
- max_retries: Максимальное количество повторных попыток для неудачных запросов (опционально, по умолчанию 5)
- retry_min_wait: Минимальная задержка между повторами неудачных запросов в секундах (опционально, по умолчанию 2)
- retry_max_wait: Максимальная задержка между повторами неудачных запросов в секундах (опционально, по умолчанию 10)
- log_level: Уровень логирования (опционально, по умолчанию ERROR)
- log_json: Выводить в JSON (опционально)
- log_format: Формат лога (опционально)
- log_use_async: True, чтобы включить асинхронный режим (опционально, по умолчанию True)
- log_max_queue_size: Максимальный размер очереди (опционально, только для асинхронного режима)
- log_dir: Путь к директории с логами (опционально)
- log_file: Имя файла логов (опционально, при указании логирует в файл)
- log_max_bytes: Максимальный размер файла логов в байтах (опционально, по умолчанию 10M)
- log_backup_files_count: Кол-во файлов архивных логов, которые нужно хранить (опционально, по умолчанию 5)
import asyncio
from ozonapi import SellerAPI, SellerAPIConfig

async def main():
    # Создание кастомной конфигурации
    config = SellerAPIConfig(
        token="your_oauth_token",
        log_level="DEBUG"
    )
    
    async with SellerAPI(config=config) as api:
        # Работа с товарами
        products = await api.product_list()
        # Работа с ценами
        prices = await api.product_info_prices()

asyncio.run(main())

Настройка через .env файл

  • Любой из параметров конфигурации можно задать в файле .env, расположенном в корне вашего проекта.
  • Правило наименования параметров в .env: префикс OZON_SELLER_ + имя параметра в верхнем регистре.

Например, для client_id строка в файле .env примет вид: OZON_SELLER_CLIENT_ID=1234556

Создайте файл .env в корне проекта:

OZON_SELLER_CLIENT_ID=your_client_id
OZON_SELLER_API_KEY=your_api_key
OZON_SELLER_MAX_REQUESTS_PER_SECOND=30
OZON_SELLER_REQUEST_TIMEOUT=60.0
OZON_SELLER_MAX_RETRIES=5

Использование с автоматической загрузкой из .env:

import asyncio
from ozonapi import SellerAPI

async def main():
    # Конфигурация автоматически загружается из .env
    async with SellerAPI() as api:
        # Ваши API вызовы
        warehouses = await api.warehouse_list()
        print(f"Доступно складов: {len(warehouses.result)}")

asyncio.run(main())

Пример использования

"""
Задача: Выгрузить описания для всех товаров продавца.

Описание решения: 
Частями выгрузим список товаров методом product_list(), 
чтобы узнать их product_id, и по мере выгрузки 
асинхронно получим описания для товаров с помощью метода 
product_info_description().

Для этих целей используем очереди из модуля asyncio и обработаем
данные по схеме producer -> queue -> consumers.

Сделаем одного производителя, чтобы складывал идентификаторы в очередь,
и несколько потребителей, каждый из которых будет забирать по одному 
из очереди и асинхронно выгружать его описание.
"""

import asyncio
from pprint import pprint

from ozonapi import SellerAPI, SellerAPIConfig
from ozonapi.seller.schemas.products import ProductListRequest, ProductListResponse,

ProductInfoDescriptionRequest

"""
Подобраны настройки, позволяющие отслеживать выполнение логики.
Для prod значения параметров могут быть увеличены.
"""

product_list_limit = 10     # Кол-во товаров, выгружаемых за одну итерацию
consumers_amount = 5        # Кол-во потребителей, выгружающих описания
consumers_rps_max_limit = 6 # Максимальное кол-во запросов в секунду для каждого потребителя
queue_max_size = product_list_limit * consumers_amount  # Максимальный размер очереди

product_descriptions = list()


async def producer(queue):
    """Получает батчи из списка товаров и добавляет product_id в очередь на получение описания."""

    async with SellerAPI(
            config=SellerAPIConfig(
                # Понижаем уровень логирования (для наглядности)
                log_level="INFO"
            )
    ) as api:

        # Параметры, необходимые для выборки данных
        products_count = 0  # Счетчик выбранных товаров
        last_id = str()  # Идентификатор для пагинации

        while True:
            # Отправляем запрос и получаем очередную партию данных о товарах
            products_batch: ProductListResponse = await api.product_list(
                ProductListRequest(
                    limit=product_list_limit,
                    last_id=last_id
                ),
            )

            # Переопределяем идентификатор выборки для следующей итерации
            last_id = products_batch.result.last_id
            # Увеличиваем счетчик выбранных товаров
            products_count += len(products_batch.result.items)

            # Добавляем айдишник каждого товара в очередь на выгрузку описания
            for item in products_batch.result.items:
                await queue.put(item.product_id)

            # Отчитываемся в консоль
            api.logger.info(
                f"Добавлено в обработку {products_count} из {products_batch.result.total} элементов."
            )

            # Если выгрузили все товары, то прерываем цикл
            if products_count == products_batch.result.total:
                break


async def consumer(queue):
    """Получает айдишники товаров из очереди и получает описания."""

    async with SellerAPI(
            config=SellerAPIConfig(
                # Понижаем уровень логирования
                log_level="INFO",
                # Ограничиваем кол-во запросов
                max_requests_per_second=consumers_rps_max_limit
            )
    ) as api:
        while True:
            # Достаем идентификатор очередного товара из очереди
            product_id = await queue.get()

            # Отправляем запрос и получаем ответ с описанием
            product_description = await api.product_info_description(
                ProductInfoDescriptionRequest(
                    product_id=product_id
                ),
            )

            # Добавляем полученное описание в общий список 
            # и выводим в консоль отчет о выполнении
            product_descriptions.append(product_description.result)
            api.logger.info(f"Получено описание для товара {product_description.result.id}")

            # Обновляем счетчик задач
            queue.task_done()


async def main() -> None:
    # Создаем очередь заданий на выгрузку описаний
    queue = asyncio.Queue(maxsize=queue_max_size)

    # Формируем заданное кол-во потребителей (выгружают описания) 
    [asyncio.create_task(consumer(queue)) for _ in range(consumers_amount)]

    # Запускаем производителя (узнает product_id товаров и заказывает для них описания)
    await producer(queue)

    # Дожидаемся, когда потребители обработают все задачи в очереди
    await queue.join()


if __name__ == '__main__':
    asyncio.run(main())

    # Выводим полученные описания
    for product_description in product_descriptions:
        pprint(product_description.model_dump())

Работа с несколькими аккаунтами

import asyncio
from ozonapi import SellerAPI

async def main():
    # Создание клиентов для разных аккаунтов
    configs = [
        {"client_id": "id1", "api_key": "key1"},
        {"client_id": "id2", "api_key": "key2"}
    ]
    
    tasks = []
    for config in configs:
        task = asyncio.create_task(fetch_account_data(config))
        tasks.append(task)
    
    results = await asyncio.gather(*tasks)

async def fetch_account_data(config):
    async with SellerAPI(**config) as api:
        products = await api.product_list()
        return {
            "client_id": config["client_id"],
            "product_count": len(products.result.items)
        }

asyncio.run(main())

🏗️ Архитектурные особенности

Управление ограничениями запросов

Проект автоматически соблюдает лимиты API Ozon с возможностью тонкой настройки:

# Кастомные лимиты
config = SellerAPIConfig(
    max_requests_per_second=25,  # Безопасный запас
    retry_min_wait=2.0,
    retry_max_wait=10.0
)

💡 Обратите внимание:

  • Реализовано 2 вида ограничителей запросов: общий для всех запросов с одним client_id или token, а также для каждого экземпляра SellerAPI.
  • Общий ограничитель запросов определен в SellerAPIConfig.max_requests_per_second и может быть переопределен в .env OZON_SELLER_MAX_REQUESTS_PER_SECOND.
  • Помимо общего ограничителя можно задавать ограничители запросов для каждого инстанса SellerAPI с помощью max_requests_per_second.
  • Если кол-во запросов по всем инстансам одного client_id или token превысит значение общего ограничителя, то будет применен общий ограничитель.
  • 50 запросов в сек. — определенное документацией суммарное ограничение на все выполняемые запросы от всех методов с одного client_id в единицу времени.
  • 25-27 запросов в сек. - оптимальное значение для ненагруженных API-запросами кабинетов (получено экпериментальным путем).
  • У многих методов есть свои ограничения, которые не описаны документацией и могут динамически меняться Ozon, в зависимости от нагрузки на сервера.

Обработка ошибок и повторные попытки

Автоматические повторы запросов с экспоненциальной задержкой:

# Настройка стратегии повторов
config = SellerAPIConfig(
    max_retries=3,           # Максимум 3 попытки
    retry_min_wait=1.0,      # Минимальная задержка
    retry_max_wait=10.0      # Максимальная задержка
)

💡 Обратите внимание: Логер уведомляет об ошибке (например, при превышении кол-ва запросов), при этом планируется повторная отправка запроса, который инициировал исключение.

⚠️ Важные примечания

Производительность

Текущая реализация оптимизирована для однопоточного асинхронного использования. Для мультипроцессных сценариев требуется дополнительная настройка системы ограничения запросов.

Лимиты API

Проект автоматически соблюдает официальные лимиты Ozon API, но рекомендуется использовать консервативные настройки лимитов (оптимально 25-27 запросов в сек. в сумме)

🔧 Разработка

Установка

git clone https://github.com/a-ulianov/OzonAPI.git
cd OzonAPI
pip install -e
pytest --cov=ozonapi --cov-report=html

🤝 Поддержка

✔️ Реализованные методы Ozon Seller API

Атрибуты и характеристики Ozon (4)
Адрес метода Ozon Описание метода Python-метод
/v1/description-category/tree Дерево категорий и типов товаров description_category_tree()
/v1/description-category/attribute Список характеристик категории description_category_attribute()
/v1/description-category/attribute/values Справочник значений характеристики description_category_attribute_values()
/v1/description-category/attribute/values/search Поиск по справочным значениям характеристики description_category_attribute_values_search()
Загрузка и обновление товаров (18)
Адрес метода Ozon Описание метода Python-метод
/v3/product/import Создать или обновить товар product_import()
/v1/product/import/info Узнать статус добавления или обновления товара product_import_info()
/v1/product/import-by-sku Создать товар по SKU product_import_by_sku()
/v1/product/attributes/update Обновить характеристики товара product_attributes_update()
/v1/product/pictures/import Загрузить или обновить изображения товара product_pictures_import()
/v3/product/list Список товаров product_list()
/v1/product/rating-by-sku Получить контент-рейтинг товаров по SKU product_rating_by_sku()
/v3/product/info/list Получить информацию о товарах по идентификаторам product_info_list()
/v4/product/info/attributes Получить описание характеристик товара product_info_attributes()
/v1/product/info/description Получить описание товара product_info_description()
/v4/product/info/limit Лимиты на ассортимент, создание и обновление товаров product_info_limit()
/v1/product/update/offer-id Изменить артикулы товаров из системы продавца product_update_offer_id()
/v1/product/archive Перенести товар в архив product_archive()
/v1/product/unarchive Вернуть товар из архива product_unarchive()
/v2/products/delete Удалить товар без SKU из архива products_delete()
/v1/product/info/subscription Количество подписавшихся на товар пользователей product_info_subscription()
/v1/product/related-sku/get Получить связанные SKU product_related_sku_get()
/v2/product/pictures/info Получить изображения товаров product_pictures_info()
Штрихкоды товаров (2)
Адрес метода Ozon Описание метода Python-метод
/v1/barcode/add Привязать штрихкод к товару barcode_add()
/v1/barcode/generate Создать штрихкод для товара barcode_generate()
Цены и остатки товаров (5)
Адрес метода Ozon Описание метода Python-метод
/v2/products/stocks Обновить количество товаров на складах products_stocks()
/v4/product/info/stocks Информация о количестве товаров product_info_stocks()
/v1/product/info/stocks-by-warehouse/fbs Информация об остатках на складах продавца (FBS и rFBS) product_info_stocks_by_warehouse_fbs()
/v1/product/import/prices Обновить цену product_import_prices()
/v1/product/action/timer/update Обновление таймера актуальности минимальной цены product_action_timer_update()
/v1/product/action/timer/status Получить статус установленного таймера product_action_timer_status()
/v5/product/info/prices Получить информацию о цене товара product_info_prices()
/v1/product/info/discounted Узнать информацию об уценке и основном товаре по SKU уценённого товара product_info_discounted()
/v1/product/update/discount Установить скидку на уценённый товар product_update_discount()
Акции
Адрес метода Ozon Описание метода Python-метод
/v1/actions Список акций actions()
/v1/actions/candidates Список доступных для акции товаров actions_candidates()
/v1/actions/products Список участвующих в акции товаров actions_products()
/v1/actions/products/activate Добавить товар в акцию actions_products_activate()
/v1/actions/products/deactivate Удалить товары из акции actions_products_deactivate()
/v1/actions/discounts-task/list Список заявок на скидку actions_discounts_task_list()
/v1/actions/discounts-task/approve Согласовать заявку на скидку actions_discounts_task_approve()
/v1/actions/discounts-task/decline Отклонить заявку на скидку actions_discounts_task_decline()
Стратегии ценообразования
Адрес метода Ozon Описание метода Python-метод
/v1/pricing-strategy/competitors/list Список конкурентов pricing_strategy_competitors_list()
/v1/pricing-strategy/list Список стратегий pricing_strategy_list()
/v1/pricing-strategy/create Создать стратегию pricing_strategy_create()
/v1/pricing-strategy/info Информация о стратегии pricing_strategy_info()
/v1/pricing-strategy/update Обновить стратегию pricing_strategy_update()
/v1/pricing-strategy/products/add Добавить товары в стратегию pricing_strategy_products_add()
/v1/pricing-strategy/strategy-ids-by-product-ids Список идентификаторов стратегий pricing_strategy_strategy_ids_by_product_ids()
/v1/pricing-strategy/products/list Список товаров в стратегии pricing_strategy_products_list()
/v1/pricing-strategy/product/info Цена товара у конкурента pricing_strategy_product_info()
/v1/pricing-strategy/products/delete Удалить товары из стратегии pricing_strategy_products_delete()
/v1/pricing-strategy/status Изменить статус стратегии pricing_strategy_status()
/v1/pricing-strategy/delete Удалить стратегию pricing_strategy_delete()
Сертификаты брендов
Адрес метода Ozon Описание метода Python-метод
/v1/brand/company-certification/list Список сертифицируемых брендов brand_company_certification_list()
Сертификаты качества
Адрес метода Ozon Описание метода Python-метод
/v1/product/certificate/accordance-types Список типов соответствия требований (версия 1) product_certificate_accordance_types()
/v2/product/certificate/accordance-types/list Список типов соответствия требований (версия 2) product_certificate_accordance_types_list()
/v1/product/certificate/types Справочник типов документов product_certificate_types()
/v2/product/certification/list Список сертифицируемых категорий product_certification_list()
/v1/product/certificate/create Добавить сертификаты для товаров product_certificate_create()
/v1/product/certificate/bind Привязать сертификат к товару product_certificate_bind()
/v1/product/certificate/delete Удалить сертификат product_certificate_delete()
/v1/product/certificate/info Информация о сертификате product_certificate_info()
/v1/product/certificate/list Список сертификатов product_certificate_list()
/v1/product/certificate/product_status/list Список возможных статусов товаров product_certificate_product_status_list()
/v1/product/certificate/products/list Список товаров, привязанных к сертификату product_certificate_products_list()
/v1/product/certificate/unbind Отвязать товар от сертификата product_certificate_unbind()
/v1/product/certificate/rejection_reasons/list Возможные причины отклонения сертификата product_certificate_rejection_reasons_list()
/v1/product/certificate/status/list Возможные статусы сертификатов product_certificate_status_list()
Склады (2)
Адрес метода Ozon Описание метода Python-метод
/v1/warehouse/list Список складов warehouse_list()
/v1/delivery-method/list Список методов доставки склада delivery_method_list()
Обработка заказов FBS и rFBS (18)
Адрес метода Ozon Описание метода Python-метод
/v3/posting/fbs/unfulfilled/list Список необработанных отправлений posting_fbs_unfulfilled_list()
/v3/posting/fbs/list Список отправлений posting_fbs_list()
/v3/posting/fbs/get Получить информацию об отправлении по идентификатору posting_fbs_get()
/v2/posting/fbs/get-by-barcode Получить информацию об отправлении по штрихкоду posting_fbs_get_by_barcode()
/v3/posting/multiboxqty/set Указать количество коробок для многокоробочных отправлений posting_multiboxqty_set()
/v2/posting/fbs/product/change Добавить вес для весовых товаров в отправлении posting_fbs_product_change()
/v2/posting/fbs/product/country/list Список доступных стран-изготовителей posting_fbs_product_country_list()
/v2/posting/fbs/product/country/set Добавить информацию о стране-изготовителе товара posting_fbs_product_country_set()
/v1/posting/fbs/restrictions Получить ограничения пункта приёма posting_fbs_restrictions()
/v2/posting/fbs/package-label Напечатать этикетку posting_fbs_package_label()
/v2/posting/fbs/package-label/create Создать задание на формирование этикеток posting_fbs_package_label_create()
/v1/posting/fbs/package-label/get Получить файл с этикетками posting_fbs_package_label_get()
/v1/posting/fbs/cancel-reason Причины отмены отправления posting_fbs_cancel_reason()
/v2/posting/fbs/cancel-reason/list Причины отмены отправлений posting_fbs_cancel_reason_list()
/v2/posting/fbs/product/cancel Отменить отправку некоторых товаров в отправлении posting_fbs_product_cancel()
/v2/posting/fbs/cancel Отменить отправление posting_fbs_cancel()
/v2/posting/fbs/arbitration Открыть спор по отправлению posting_fbs_arbitration()
/v2/posting/fbs/awaiting-delivery Передать отправление к отгрузке posting_fbs_awaiting_delivery()
/v1/posting/fbs/pick-up-code/verify Проверить код курьера posting_fbs_pick_up_code_verify()
/v1/posting/global/etgb Таможенные декларации ETGB posting_global_etgb()
/v1/posting/unpaid-legal/product/list Список неоплаченных товаров, заказанных юридическими лицами posting_unpaid_legal_product_list()
Полигоны
Адрес метода Ozon Описание метода Python-метод
/v1/polygon/create Создайте полигон доставки polygon_create()
/v1/polygon/bind Свяжите метод доставки с полигоном доставки polygon_bind()
Доставка FBO (3)
Адрес метода Ozon Описание метода Python-метод
/v2/posting/fbo/list Список отправлений posting_fbo_list()
/v2/posting/fbo/get Информация об отправлении posting_fbo_get()
/v1/posting/fbo/cancel-reason/list Причины отмены отправлений по схеме FBO posting_fbo_cancel_reason_list()
/v1/supply-order/status/counter Количество заявок по статусам supply_order_status_counter()
/v1/supply-order/bundle Состав поставки или заявки на поставку supply_order_bundle()
/v2/supply-order/list Список заявок на поставку на склад Ozon supply_order_list()
/v2/supply-order/get Информация о заявке на поставку supply_order_get()
/v1/supply-order/timeslot/get Интервалы поставки supply_order_timeslot_get()
/v1/supply-order/timeslot/update Обновить интервал поставки supply_order_timeslot_update()
/v1/supply-order/timeslot/status Статус интервала поставки supply_order_timeslot_status()
/v1/supply-order/pass/create Указать данные о водителе и автомобиле supply_order_pass_create()
/v1/supply-order/pass/status Статус ввода данных о водителе и автомобиле supply_order_pass_status()
/v1/supplier/available_warehouses Загруженность складов Ozon supplier_available_warehouses()
Создание и управление заявками на поставку FBO
Адрес метода Ozon Описание метода Python-метод
/v1/cluster/list Информация о кластерах и их складах cluster_list()
/v1/warehouse/fbo/list Поиск точек для отгрузки поставки warehouse_fbo_list()
/v1/draft/create Создать черновик заявки на поставку draft_create()
/v1/draft/create/info Информация о черновике заявки на поставку draft_create_info()
/v1/draft/timeslot/info Доступные таймслоты draft_timeslot_info()
/v1/draft/supply/create Создать заявку на поставку по черновику draft_supply_create()
/v1/draft/supply/create/status Информация о создании заявки на поставку draft_supply_create_status()
/v1/cargoes/create Установка грузомест cargoes_create()
/v2/cargoes/create/info Получить информацию по установке грузомест cargoes_create_info()
/v1/cargoes/delete Удалить грузоместо в заявке на поставку cargoes_delete()
/v1/cargoes/delete/status Информация о статусе удаления грузоместа cargoes_delete_status()
/v1/cargoes/rules/get Чек-лист по установке грузомест FBO cargoes_rules_get()
/v1/cargoes-label/create Сгенерировать этикетки для грузомест cargoes_label_create()
/v1/cargoes-label/get Получить идентификатор этикетки для грузомест cargoes_label_get()
/v1/cargoes-label/file/{file_guid} Получить PDF с этикетками грузовых мест cargoes_label_file()
/v1/supply-order/cancel Отменить заявку на поставку supply_order_cancel()
/v1/supply-order/cancel/status Получить статус отмены заявки на поставку supply_order_cancel_status()
/v1/supply-order/content/update Редактирование товарного состава supply_order_content_update()
/v1/supply-order/content/update/status Информация о статусе редактирования товарного состава supply_order_content_update_status()
Управление кодами маркировки и сборкой заказов для FBS/rFBS (7)
Адрес метода Ozon Описание метода Python-метод
/v6/fbs/posting/product/exemplar/create-or-get Получить данные созданных экземпляров fbs_posting_product_exemplar_create_or_get()
/v5/fbs/posting/product/exemplar/validate Валидация кодов маркировки fbs_posting_product_exemplar_validate()
/v6/fbs/posting/product/exemplar/set Проверить и сохранить данные экземпляров fbs_posting_product_exemplar_set()
/v5/fbs/posting/product/exemplar/status Получить статус добавления экземпляров fbs_posting_product_exemplar_status()
/v4/posting/fbs/ship Собрать заказ (версия 4) posting_fbs_ship()
/v4/posting/fbs/ship/package Частичная сборка отправления (версия 4) posting_fbs_ship_package()
/v1/fbs/posting/product/exemplar/update Обновить данные экземпляров fbs_posting_product_exemplar_update()
Доставка FBS
Адрес метода Ozon Описание метода Python-метод
/v1/carriage/create Создание отгрузки carriage_create()
/v1/carriage/approve Подтверждение отгрузки carriage_approve()
/v1/carriage/set-postings Изменение состава отгрузки carriage_set_postings()
/v1/carriage/cancel Удаление отгрузки carriage_cancel()
/v1/carriage/delivery/list Список методов доставки и отгрузок carriage_delivery_list()
/v2/posting/fbs/act/create Подтвердить отгрузку и создать документы posting_fbs_act_create()
/v1/posting/carriage-available/list Список доступных перевозок posting_carriage_available_list()
/v1/carriage/get Информация о перевозке carriage_get()
/v1/posting/fbs/split Разделить заказ на отправления без сборки posting_fbs_split()
/v2/posting/fbs/act/get-postings Список отправлений в акте posting_fbs_act_get_postings()
/v2/posting/fbs/act/get-container-labels Этикетки для грузового места posting_fbs_act_get_container_labels()
/v2/posting/fbs/act/get-barcode Штрихкод для отгрузки отправления posting_fbs_act_get_barcode()
/v2/posting/fbs/act/get-barcode/text Значение штрихкода для отгрузки отправления posting_fbs_act_get_barcode_text()
/v2/posting/fbs/digital/act/check-status Статус формирования накладной posting_fbs_digital_act_check_status()
/v2/posting/fbs/act/get-pdf Получить PDF c документами posting_fbs_act_get_pdf()
/v2/posting/fbs/act/list Список актов по отгрузкам posting_fbs_act_list()
/v2/posting/fbs/digital/act/get-pdf Получить лист отгрузки по перевозке posting_fbs_digital_act_get_pdf()
/v2/posting/fbs/act/check-status Статус отгрузки и документов posting_fbs_act_check_status()
Доставка rFBS
Адрес метода Ozon Описание метода Python-метод
/v2/fbs/posting/tracking-number/set Добавить трек-номера fbs_posting_tracking_number_set()
/v2/fbs/posting/sent-by-seller Изменить статус на «Отправлено продавцом» fbs_posting_sent_by_seller()
/v2/fbs/posting/delivering Изменить статус на «Доставляется» fbs_posting_delivering()
/v2/fbs/posting/last-mile Изменить статус на «Последняя миля» fbs_posting_last_mile()
/v2/fbs/posting/delivered Изменить статус на «Доставлено» fbs_posting_delivered()
/v1/posting/fbs/timeslot/change-restrictions Доступные даты для переноса доставки posting_fbs_timeslot_change_restrictions()
/v1/posting/fbs/timeslot/set Перенести дату доставки posting_fbs_timeslot_set()
/v1/posting/cutoff/set Уточнить дату отгрузки отправления posting_cutoff_set()
Пропуски
Адрес метода Ozon Описание метода Python-метод
/v1/pass/list Список пропусков pass_list()
/v1/carriage/pass/create Создать пропуск carriage_pass_create()
/v1/carriage/pass/update Обновить пропуск carriage_pass_update()
/v1/carriage/pass/delete Удалить пропуск carriage_pass_delete()
/v1/return/pass/create Создать пропуск для возврата return_pass_create()
/v1/return/pass/update Обновить пропуск для возврата return_pass_update()
/v1/return/pass/delete Удалить пропуск для возврата return_pass_delete()
Возвраты товаров FBO и FBS
Адрес метода Ozon Описание метода Python-метод
/v1/returns/list Информация о возвратах FBO и FBS returns_list()
Возвраты товаров rFBS
Адрес метода Ozon Описание метода Python-метод
/v2/returns/rfbs/list Список заявок на возврат returns_rfbs_list()
/v2/returns/rfbs/get Информация о заявке на возврат returns_rfbs_get()
/v2/returns/rfbs/reject Отклонить заявку на возврат returns_rfbs_reject()
/v2/returns/rfbs/compensate Вернуть часть стоимости товара returns_rfbs_compensate()
/v2/returns/rfbs/verify Одобрить заявку на возврат returns_rfbs_verify()
/v2/returns/rfbs/receive-return Подтвердить получение товара на проверку returns_rfbs_receive_return()
/v2/returns/rfbs/return-money Вернуть деньги покупателю returns_rfbs_return_money()
/v1/returns/rfbs/action/set Передать доступные действия для rFBS возвратов returns_rfbs_action_set()
Возвратные отгрузки
Адрес метода Ozon Описание метода Python-метод
/v1/returns/company/fbs/info Количество возвратов FBS returns_company_fbs_info()
/v1/return/giveout/is-enabled Проверить возможность получения возвратных отгрузок по штрихкоду return_giveout_is_enabled()
/v1/return/giveout/list Список возвратных отгрузки return_giveout_list()
/v1/return/giveout/info Информация о возвратной отгрузке return_giveout_info()
/v1/return/giveout/barcode Значение штрихкода для возвратных отгрузок return_giveout_barcode()
/v1/return/giveout/get-pdf Штрихкод для получения возвратной отгрузки в формате PDF return_giveout_get_pdf()
/v1/return/giveout/get-png Штрихкод для получения возвратной отгрузки в формате PNG return_giveout_get_png()
/v1/return/giveout/barcode-reset Сгенерировать новый штрихкод return_giveout_barcode_reset()
Отмены заказов
Адрес метода Ozon Описание метода Python-метод
/v2/conditional-cancellation/list Получить список заявок на отмену rFBS conditional_cancellation_list()
/v2/conditional-cancellation/approve Подтвердить заявку на отмену rFBS conditional_cancellation_approve()
/v2/conditional-cancellation/reject Отклонить заявку на отмену rFBS conditional_cancellation_reject()
Чаты с покупателями
Адрес метода Ozon Описание метода Python-метод
/v1/chat/send/file Отправить файл chat_send_file()
/v3/chat/list Список чатов chat_list()
/v2/chat/history История чата chat_history()
Накладные
Адрес метода Ozon Описание метода Python-метод
/v2/invoice/create-or-update Создать или изменить счёт-фактуру invoice_create_or_update()
/v1/invoice/file/upload Загрузка счёта-фактуры invoice_file_upload()
/v2/invoice/get Получить информацию о счёте-фактуре invoice_get()
/v1/invoice/delete Удалить ссылку на счёт-фактуру invoice_delete()
Отчёты
Адрес метода Ozon Описание метода Python-метод
/v1/report/info Информация об отчёте report_info()
/v1/report/list Список отчётов report_list()
/v1/report/products/create Отчёт по товарам report_products_create()
/v2/report/returns/create Отчёт о возвратах report_returns_create()
/v1/report/postings/create Отчёт об отправлениях report_postings_create()
/v1/finance/cash-flow-statement/list Финансовый отчёт finance_cash_flow_statement_list()
/v1/report/discounted/create Отчёт об уценённых товарах report_discounted_create()
/v1/report/warehouse/stock Отчёт об остатках на FBS-складе report_warehouse_stock()
Аналитические отчёты
Адрес метода Ozon Описание метода Python-метод
/v2/analytics/stock_on_warehouses Отчёт по остаткам и товарам analytics_stock_on_warehouses()
/v1/analytics/turnover/stocks Оборачиваемость товара analytics_turnover_stocks()
/v1/analytics/average-delivery-time Получить аналитику по среднему времени доставки analytics_average_delivery_time()
/v1/analytics/average-delivery-time/details Получить детальную аналитику по среднему времени доставки analytics_average_delivery_time_details()
/v1/analytics/average-delivery-time/summary Получить общую аналитику по среднему времени доставки analytics_average_delivery_time_summary()
Финансовые отчеты
Адрес метода Ozon Описание метода Python-метод
/v2/finance/realization Отчёт о реализации товаров (версия 2) finance_realization()
/v1/finance/realization/posting Позаказный отчёт о реализации товаров finance_realization_posting()
/v3/finance/transaction/list Список транзакций finance_transaction_list()
/v3/finance/transaction/totals Суммы транзакций finance_transaction_totals()
/v1/finance/document-b2b-sales Реестр продаж юридическим лицам finance_document_b2b_sales()
/v1/finance/document-b2b-sales/json Реестр продаж юридическим лицам в JSON-формате finance_document_b2b_sales_json()
/v1/finance/mutual-settlement Отчёт о взаиморасчётах finance_mutual_settlement()
/v1/finance/products/buyout Отчёт о выкупленных товарах finance_products_buyout()
/v1/finance/compensation Отчёт о компенсациях finance_compensation()
/v1/finance/decompensation Отчёт о декомпенсациях finance_decompensation()
Рейтинг продавца
Адрес метода Ozon Описание метода Python-метод
/v1/rating/summary Получить информацию о текущих рейтингах продавца rating_summary()
/v1/rating/history Получить информацию о рейтингах продавца за период rating_history()
Прочие методы (2)
Адрес метода Ozon Описание метода Python-метод
/v1/analytics/manage/stocks Управление остатками analytics_manage_stocks()
/v1/analytics/stocks Получить аналитику по остаткам analytics_stocks()
/v1/product/info/wrong-volume Список товаров с некорректными ОВХ product_info_wrong_volume()
/v1/removal/from-supply/list Отчёт по вывозу и утилизации с поставки FBO removal_from_supply_list()
/v1/removal/from-stock/list Отчёт по вывозу и утилизации со стока FBO removal_from_stock_list()
/v1/report/marked-products-sales/create Отчёт по продажам товаров с маркировкой report_marked_products_sales_create()
/v1/seller/info Информация о кабинете продавца seller_info()
/v1/seller/ozon-logistics/info Информация о подключении продавца к Ozon Логистике seller_ozon_logistics_info()
/v3/supply-order/list Список заявок на поставку на склад Ozon supply_order_list()
/v3/supply-order/get Информация о заявке на поставку supply_order_get()
/v1/supply-order/content/update/validation Проверить новый товарный состав supply_order_content_update_validation()
/v1/product/info/warehouse/stocks Получить информацию по остаткам на складе FBS и rFBS product_info_warehouse_stocks()
Работа с цифровыми товарами
Адрес метода Ozon Описание метода Python-метод
/v1/posting/digital/codes/upload Загрузить коды цифровых товаров для отправления posting_digital_codes_upload()
/v1/posting/digital/list Получить список отправлений posting_digital_list()
/v1/product/digital/stocks/import Обновить количество цифровых товаров product_digital_stocks_import()
Работа с квантами
Адрес метода Ozon Описание метода Python-метод
/v1/product/quant/list Список эконом-товаров product_quant_list()
/v1/product/quant/info Информация об эконом-товаре product_quant_info()
Работа с отзывами
Адрес метода Ozon Описание метода Python-метод
/v1/review/comment/create Оставить комментарий на отзыв review_comment_create()
/v1/review/comment/delete Удалить комментарий на отзыв review_comment_delete()
/v1/review/comment/list Список комментариев на отзыв review_comment_list()
/v1/review/change-status Изменить статус отзывов review_change_status()
/v1/review/count Количество отзывов по статусам review_count()
/v1/review/info Получить информацию об отзыве review_info()
/v1/review/list Получить список отзывов review_list()
Работа с вопросами и ответами
Адрес метода Ozon Описание метода Python-метод
/v1/question/answer/create Создать ответ на вопрос question_answer_create()
/v1/question/answer/delete Удалить ответ на вопрос question_answer_delete()
/v1/question/answer/list Список ответов на вопрос question_answer_list()
/v1/question/change-status Изменить статус вопросов question_change_status()
/v1/question/count Количество вопросов по статусам question_count()
/v1/question/info Информация о вопросе question_info()
/v1/question/list Список вопросов question_list()
/v1/question/top-sku Товары с наибольшим количеством вопросов question_top_sku()
Работа с FBS-складами
Адрес метода Ozon Описание метода Python-метод
/v1/warehouse/fbs/create/drop-off/list Получить список drop-off пунктов для создания склада warehouse_fbs_create_drop_off_list()
/v1/warehouse/fbs/update/drop-off/list Получить список drop-off пунктов для изменения информации склада warehouse_fbs_update_drop_off_list()
/v1/warehouse/fbs/create Создать склад warehouse_fbs_create()
/v1/warehouse/fbs/update Обновить склад warehouse_fbs_update()
/v1/warehouse/operation/status Получить статус операции warehouse_operation_status()
/v2/warehouse/list Список складов warehouse_list()
/v1/warehouse/fbs/first-mile/update Обновить первую милю warehouse_fbs_first_mile_update()
/v1/warehouse/archive Перенести склад в архив warehouse_archive()
/v1/warehouse/unarchive Перенести склад из архива warehouse_unarchive()
Работа с листами подбора FBS
Адрес метода Ozon Описание метода Python-метод
/v1/assembly/carriage/posting/list Получить список отправлений в отгрузке assembly_carriage_posting_list()
/v1/assembly/carriage/product/list Получить список товаров в отгрузке assembly_carriage_product_list()
/v1/assembly/fbs/posting/list Получить список отравлений assembly_fbs_posting_list()
/v1/assembly/fbs/product/list Получить список товаров в отправлениях assembly_fbs_product_list()
Работа со складами rFBS Express
Адрес метода Ozon Описание метода Python-метод
/v1/warehouse/erfbs/aggregator/create Создать склад с методом доставки «Партнёры Ozon» warehouse_erfbs_aggregator_create()
/v1/warehouse/erfbs/aggregator/delivery-method/update Обновить метод доставки «Партнёры Ozon» warehouse_erfbs_aggregator_delivery_method_update()
/v1/warehouse/erfbs/non-integrated/create Создать склад с методом доставки «Вы или сторонняя служба» warehouse_erfbs_non_integrated_create()
/v1/warehouse/erfbs/non-integrated/delivery-method/update Обновить метод доставки «Вы или сторонняя служба» warehouse_erfbs_non_integrated_delivery_method_update()
/v1/warehouse/erfbs/update Обновить склад warehouse_erfbs_update()
/v2/polygon/bind Связать метод доставки с полигоном polygon_bind()
/v1/polygon/delete Удалить полигон из области доставки polygon_delete()
/v1/polygon/list Получить список установленных полигонов на метод доставки polygon_list()
/v1/polygon/time/coordinates/update Обновить координаты полигона доставки polygon_time_coordinates_update()
/v1/polygon/time/set Установить новое время доставки в полигоне polygon_time_set()
Premium-методы
Адрес метода Ozon Описание метода Python-метод
/v1/chat/send/message Отправить сообщение chat_send_message()
/v1/chat/start Создать новый чат chat_start()
/v3/chat/history История чата chat_history()
/v2/chat/read Отметить сообщения как прочитанные chat_read()
/v1/analytics/data Данные аналитики analytics_data()
/v1/analytics/product-queries Получить информацию о запросах моих товаров analytics_product_queries()
/v1/analytics/product-queries/details Получить детализацию запросов по товару analytics_product_queries_details()
/v1/finance/realization/by-day Отчёт о реализации товаров за день finance_realization_by_day()
/v1/search-queries/text Получить список поисковых запросов по тексту search_queries_text()
/v1/search-queries/top Получить список популярных поисковых запросов search_queries_top()
Логистика (Ozon Logistics)
Адрес метода Ozon Описание метода Python-метод
/v1/delivery/check Проверка доступности доставки Ozon для покупателя delivery_check()
/v1/delivery/map Получить список точек самовывоза на карте delivery_map()
/v1/delivery/point/list Получить список всех точек самовывоза delivery_point_list()
/v1/delivery/point/info Получить информацию о выбранной точке самовывоза delivery_point_info()
/v1/delivery/checkout Определение доступности товара и расчет сроков доставки delivery_checkout()
/v1/order/create Создание заказа order_create()
/v1/posting/marks Получить список кодов маркировок товаров posting_marks()
/v1/cancel-reason/list Список причин отмен для заказа cancel_reason_list()
/v1/cancel-reason/list-by-order Динамический список отмен для заказа cancel_reason_list_by_order()
/v1/cancel-reason/list-by-posting Динамический список отмен для постинга из заказа cancel_reason_list_by_posting()
/v1/order/cancel/check Проверка доступности отмены order_cancel_check()
/v1/order/cancel Метод отмены заказа order_cancel()
/v1/posting/cancel Метод отмены постинга из заказа posting_cancel()
/v1/order/cancel/status Статус отмены заказа order_cancel_status()
/v1/posting/cancel/status Статус отмены постинга из заказа posting_cancel_status()

MIT License


Проект не аффилирован с Ozon. Все торговые марки принадлежат их правообладателям.

About

Асинхронная python-библиотека для работы с Seller API маркетплейса Ozon. С лимитами, автоповторами запросов, документацией и примерами. 11.2025

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages