ozonapi-async


Nameozonapi-async JSON
Version 0.13.0 PyPI version JSON
download
home_pagehttps://github.com/a-ulianov/OzonAPI
SummaryАсинхронный pydantic-интерфейс для Ozon Seller API c ограничением запросов и docstrings
upload_time2025-10-29 11:33:55
maintainerNone
docs_urlNone
authorAlexander Ulianov
requires_python<4.0,>=3.9
licenseMIT
keywords ozon api async ecommerce seller docstring pydantic analytics prices stocks
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            [![PyPI - Version](https://img.shields.io/pypi/v/ozonapi-async?logo=PyPI&color=0f81c2)](https://pypi.org/project/ozonapi-async/)
[![Pepy Total Downloads](https://img.shields.io/pepy/dt/ozonapi-async)](https://pypi.org/project/ozonapi-async/)
[![GitHub last commit](https://img.shields.io/github/last-commit/a-ulianov/OzonAPI)](https://github.com/a-ulianov/OzonAPI)
[![Tests](https://github.com/a-ulianov/OzonAPI/actions/workflows/test.yml/badge.svg)](https://github.com/a-ulianov/OzonAPI/actions/workflows/test.yml)
[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=a-ulianov_OzonAPI&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=a-ulianov_OzonAPI)[![codecov](https://codecov.io/gh/a-ulianov/OzonAPI/branch/main/graph/badge.svg)](https://codecov.io/gh/a-ulianov/OzonAPI) 
[![Python Version](https://img.shields.io/badge/python-3.9+-blue.svg)](https://www.python.org/downloads/)
[![License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)


# 🌀 OzonAPI 

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

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


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

[![Telegram](https://img.shields.io/badge/Telegram-Join%20Chat-2CA5E0?style=for-the-badge&logo=telegram&logoColor=white)](https://t.me/ozonapi_async)

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

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

## 🚀 Основные возможности

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

🤝 Данный проект является форком с глубокой доработкой и актуализацией проекта [python-ozon-api](https://github.com/mephistofox/python-ozon-api) от [mephistofox](https://github.com/mephistofox):

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

### Установка

```bash
pip install ozonapi-async
```

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

```python
import asyncio
from ozonapi import SellerAPI

async def main():
    async with SellerAPI(
        client_id="your_client_id",
        api_key="your_api_key"
    ) as api:
        # Получение списка товаров
        products = await api.product_list()
        print(f"Получено товаров: {len(products.result.items)}")

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

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

```python
import asyncio
from ozonapi import SellerAPI, SellerAPIConfig

async def main():
    # Создание кастомной конфигурации
    config = SellerAPIConfig(
        client_id="your_client_id",
        api_key="your_api_key",
        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=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:

```python
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())
```

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

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

Описание решения: 
Частями выгрузим список товаров методом 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 значения параметров могут быть увеличены.
Общее кол-во запросов составит consumers_amount * consumer_rate_limit в сек + запросы по
дефолтным лимитам из SellerAPIConfig для функции producer, с учетом допустимого максимума.
"""

product_list_limit = 10  # Кол-во товаров, выгружаемых за одну итерацию
consumers_amount = 5     # Кол-во потребителей, выгружающих описания
consumer_rate_limit = 2  # Лимит запросов в секунду для каждого потребителя
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=consumer_rate_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())
```

---

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

```python
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 (50 запросов в секунду) с возможностью тонкой настройки:

```python
# Кастомные лимиты
config = SellerAPIConfig(
    max_requests_per_second=25,  # Безопасный запас
    retry_min_wait=2.0,
    retry_max_wait=10.0
)
```
**💡 Обратите внимание:**
*50 запросов в сек. — суммарное ограничение на все выполняемые запросы от всех методов с одного client_id в единицу времени.*
*При этом у многих методов есть свои ограничения, которые не описаны документацией и могут меняться Ozon в зависимости от нагрузки на сервера.*


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

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

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

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


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

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

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

### Лимиты API

Проект автоматически соблюдает [официальные лимиты Ozon API](https://docs.ozon.ru/api/seller/), но рекомендуется:
- Использовать консервативные настройки лимитов
- Мониторить статистику использования через встроенные методы

## 🔧 Разработка

### Установка

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


## 🤝 Поддержка

- Документация: [GitHub Repository](https://github.com/a-ulianov/OzonAPI#readme)
- Issues: [GitHub Issues](https://github.com/a-ulianov/OzonAPI/issues)
- Changelog: [Releases](https://github.com/a-ulianov/OzonAPI/releases)
- Telegram: [OzonAPI Async](https://t.me/ozonapi_async)

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

<details>
<summary>Атрибуты и характеристики Ozon (4)</summary>

| ✓ | Адрес метода 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()` |
</details>
<details>
<summary>Загрузка и обновление товаров (18)</summary>

| ✓ | Адрес метода 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()` |
</details>
<details>
<summary>Штрихкоды товаров (2)</summary>

| ✓ | Адрес метода Ozon | Описание метода | Python-метод |
|---|---|---|---|
| ✓ | `/v1/barcode/add` | Привязать штрихкод к товару | `barcode_add()` |
| ✓ | `/v1/barcode/generate` | Создать штрихкод для товара | `barcode_generate()` |
</details>
<details>
<summary>Цены и остатки товаров (5)</summary>

| ✓ | Адрес метода 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()` |
</details>
<details>
<summary>Акции</summary>

| ✓ | Адрес метода 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()` |
</details>
<details>
<summary>Стратегии ценообразования</summary>

| ✓ | Адрес метода 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()` |
</details>
<details>
<summary>Сертификаты брендов</summary>

| ✓ | Адрес метода Ozon | Описание метода | Python-метод |
|---|---|---|---|
| ☐ | `/v1/brand/company-certification/list` | Список сертифицируемых брендов | `brand_company_certification_list()` |
</details>
<details>
<summary>Сертификаты качества</summary>

| ✓ | Адрес метода 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()` |
</details>
<details>
<summary>Склады (2)</summary>

| ✓ | Адрес метода Ozon | Описание метода | Python-метод |
|---|---|---|---|
| ✓ | `/v1/warehouse/list` | Список складов | `warehouse_list()` |
| ✓ | `/v1/delivery-method/list` | Список методов доставки склада | `delivery_method_list()` |
</details>
<details>
<summary>Обработка заказов FBS и rFBS (18)</summary>

| ✓ | Адрес метода 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()` |
</details>
<details>
<summary>Полигоны</summary>

| ✓ | Адрес метода Ozon | Описание метода | Python-метод |
|---|---|---|---|
| ☐ | `/v1/polygon/create` | Создайте полигон доставки | `polygon_create()` |
| ☐ | `/v1/polygon/bind` | Свяжите метод доставки с полигоном доставки | `polygon_bind()` |
</details>
<details>
<summary>Доставка FBO</summary>

| ✓ | Адрес метода 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()` |
</details>
<details>
<summary>Создание и управление заявками на поставку FBO</summary>

| ✓ | Адрес метода 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()` |
</details>
<details>
<summary>Управление кодами маркировки и сборкой заказов для FBS/rFBS (2)</summary>

| ✓ | Адрес метода 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()` |
</details>
<details>
<summary>Доставка FBS</summary>

| ✓ | Адрес метода 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()` |
</details>
<details>
<summary>Доставка rFBS</summary>

| ✓ | Адрес метода 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()` |
</details>
<details>
<summary>Пропуски</summary>

| ✓ | Адрес метода 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()` |
</details>
<details>
<summary>Возвраты товаров FBO и FBS</summary>

| ✓ | Адрес метода Ozon | Описание метода | Python-метод |
|---|---|---|---|
| ☐ | `/v1/returns/list` | Информация о возвратах FBO и FBS | `returns_list()` |
</details>
<details>
<summary>Возвраты товаров rFBS</summary>

| ✓ | Адрес метода 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()` |
</details>
<details>
<summary>Возвратные отгрузки</summary>

| ✓ | Адрес метода 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()` |
</details>
<details>
<summary>Отмены заказов</summary>

| ✓ | Адрес метода 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()` |
</details>
<details>
<summary>Чаты с покупателями</summary>

| ✓ | Адрес метода Ozon | Описание метода | Python-метод |
|---|---|---|---|
| ☐ | `/v1/chat/send/file` | Отправить файл | `chat_send_file()` |
| ☐ | `/v3/chat/list` | Список чатов | `chat_list()` |
| ☐ | `/v2/chat/history` | История чата | `chat_history()` |
</details>
<details>
<summary>Накладные</summary>

| ✓ | Адрес метода 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()` |
</details>
<details>
<summary>Отчёты</summary>

| ✓ | Адрес метода 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()` |
</details>
<details>
<summary>Аналитические отчёты</summary>

| ✓ | Адрес метода Ozon | Описание метода | Python-метод |
|---|---|---|---|
| ☐ | `/v2/analytics/stock_on_warehouses` | Отчёт по остаткам и товарам | `analytics_stock_on_warehouses()` |
| ☐ | `/v1/analytics/turnover/stocks` | Оборачиваемость товара | `analytics_turnover_stocks()` |
</details>
<details>
<summary>Финансовые отчеты</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()` |
</details>
<details>
<summary>Рейтинг продавца</summary>

| ✓ | Адрес метода Ozon | Описание метода | Python-метод |
|---|---|---|---|
| ☐ | `/v1/rating/summary` | Получить информацию о текущих рейтингах продавца | `rating_summary()` |
| ☐ | `/v1/rating/history` | Получить информацию о рейтингах продавца за период | `rating_history()` |
</details>
<details>
<summary>Прочие методы (1)</summary>

| ✓ | Адрес метода Ozon | Описание метода                                           | Python-метод                                |
|---|---|-----------------------------------------------------------|---------------------------------------------|
| ☐ | `/v1/analytics/manage/stocks` | Управление остатками                                      | `analytics_manage_stocks()`                 |
| ✓ | `/v1/analytics/stocks` | Получить аналитику по остаткам                            | `analytics_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()` |
| ☐ | `/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()`     |
| ☐ | `/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()`           |
</details>
<details>
<summary>Работа с цифровыми товарами</summary>

| ✓ | Адрес метода 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()` |
</details>
<details>
<summary>Работа с квантами</summary>

| ✓ | Адрес метода Ozon | Описание метода | Python-метод |
|---|---|---|---|
| ☐ | `/v1/product/quant/list` | Список эконом-товаров | `product_quant_list()` |
| ☐ | `/v1/product/quant/info` | Информация об эконом-товаре | `product_quant_info()` |
</details>
<details>
<summary>Работа с отзывами</summary>

| ✓ | Адрес метода 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()` |
</details>
<details>
<summary>Работа с вопросами и ответами</summary>

| ✓ | Адрес метода 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()` |
</details>
<details>
<summary>Работа с FBS-складами</summary>

| ✓ | Адрес метода 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()` |
</details>
<details>
<summary>Premium-методы</summary>

| ✓ | Адрес метода 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()` |
</details>
<details>
<summary>Логистика (Ozon Logistics)</summary>

| ✓ | Адрес метода 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()` |
</details>

---

[MIT License](LICENSE)

---

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

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/a-ulianov/OzonAPI",
    "name": "ozonapi-async",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<4.0,>=3.9",
    "maintainer_email": null,
    "keywords": "ozon, api, async, ecommerce, seller, docstring, pydantic, analytics, prices, stocks",
    "author": "Alexander Ulianov",
    "author_email": "a.v.ulianov@mail.ru",
    "download_url": "https://files.pythonhosted.org/packages/09/7d/8f8747a31a8a6fef91c67c3cc086413c9739e2a5c6688bb3b1b7d050bd63/ozonapi_async-0.13.0.tar.gz",
    "platform": null,
    "description": "[![PyPI - Version](https://img.shields.io/pypi/v/ozonapi-async?logo=PyPI&color=0f81c2)](https://pypi.org/project/ozonapi-async/)\n[![Pepy Total Downloads](https://img.shields.io/pepy/dt/ozonapi-async)](https://pypi.org/project/ozonapi-async/)\n[![GitHub last commit](https://img.shields.io/github/last-commit/a-ulianov/OzonAPI)](https://github.com/a-ulianov/OzonAPI)\n[![Tests](https://github.com/a-ulianov/OzonAPI/actions/workflows/test.yml/badge.svg)](https://github.com/a-ulianov/OzonAPI/actions/workflows/test.yml)\n[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=a-ulianov_OzonAPI&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=a-ulianov_OzonAPI)[![codecov](https://codecov.io/gh/a-ulianov/OzonAPI/branch/main/graph/badge.svg)](https://codecov.io/gh/a-ulianov/OzonAPI) \n[![Python Version](https://img.shields.io/badge/python-3.9+-blue.svg)](https://www.python.org/downloads/)\n[![License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)\n\n\n# \ud83c\udf00 OzonAPI \n\n\u041f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043b\u0435\u0433\u043a\u043e\u0432\u0435\u0441\u043d\u044b\u0439 \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u044b\u0439 pydantic-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0434\u043b\u044f \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0441 **Ozon API Seller**.\n\n**\u041f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432, \u0440\u0430\u0431\u043e\u0442\u0443 \u0441 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c\u0438 client_id, \u0433\u0438\u0431\u043a\u0443\u044e \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0443 \u0447\u0435\u0440\u0435\u0437 `.env`.**\n\n\n**\u2705 \u0410\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u043e \u043d\u0430 4-\u0439 \u043a\u0432\u0430\u0440\u0442\u0430\u043b 2025 \u0433\u043e\u0434\u0430.**\n**\ud83e\udd1d \u041a\u043e\u043c\u043c\u0438\u0442\u044b \u043f\u0440\u0438\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0442\u0441\u044f!**\n\n[![Telegram](https://img.shields.io/badge/Telegram-Join%20Chat-2CA5E0?style=for-the-badge&logo=telegram&logoColor=white)](https://t.me/ozonapi_async)\n\n## \u26a1\ufe0f \u041f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435\n\n- **\ud83d\udcca \u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u044f \u0441\u043a\u0432\u043e\u0437\u043d\u043e\u0439 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0438 \u0438 \u043e\u0442\u0447\u0435\u0442\u043e\u0432:** Excel, Google Sheets, Bitrix24, Power BI\n- **\ud83d\udd04 \u041f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u043e\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0435 \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u0435:** 1\u0421, ERP, WMS, CRM \u0438 \u0431\u0440\u043e\u043a\u0435\u0440\u044b\n- **\ud83e\udd16 \u0427\u0430\u0442-\u0431\u043e\u0442\u044b:** Telegram, Max (\u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e), RAG (\u0434\u043b\u044f \u0430\u043a\u0442\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0430)\n- **\ud83d\udce6 PIM-\u0441\u0438\u0441\u0442\u0435\u043c\u044b:** \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438e \u043a\u043e\u043d\u0442\u0435\u043d\u0442\u043e\u043c, \u0442\u043e\u0432\u0430\u0440\u0430\u043c\u0438, \u0446\u0435\u043d\u0430\u043c\u0438, \u043e\u0441\u0442\u0430\u0442\u043a\u0430\u043c\u0438 \u0438 \u043e\u0442\u0437\u044b\u0432\u0430\u043c\u0438\n- **\ud83d\uddc4\ufe0f DataLake:** \u0442\u043e\u0432\u0430\u0440\u044b, \u0446\u0435\u043d\u044b, \u043e\u0441\u0442\u0430\u0442\u043a\u0438, \u0437\u0430\u043a\u0430\u0437\u044b \u0438 \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0438\n\n## \ud83d\ude80 \u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438\n\n- **\u26a1\ufe0f \u0410\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u044b\u0439 \u0434\u0438\u0437\u0430\u0439\u043d** - \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d \u043d\u0430 `aiohttp` \u0434\u043b\u044f \u0432\u044b\u0441\u043e\u043a\u043e\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439\n- **\ud83d\udc4d \u041f\u0440\u043e\u0441\u0442\u043e\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435** - \u0431\u044b\u0441\u0442\u0440\u043e\u0435 \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u0435 \u0438 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f \u0441 \u0432\u0430\u0448\u0438\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u043c\n- **\ud83d\udcdd \u041e\u0442\u043b\u0438\u0447\u043d\u0430\u044f \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f** - \u0432\u0441\u0435 \u043c\u0435\u0442\u043e\u0434\u044b \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0438 \u043f\u0440\u0438\u043c\u0435\u0440\u044b\n- **\ud83d\udc65 \u041c\u0443\u043b\u044c\u0442\u0438-\u0430\u043a\u043a\u0430\u0443\u043d\u0442** - \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u0440\u0430\u0431\u043e\u0442\u0430 \u0441 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c\u0438 \u043a\u0430\u0431\u0438\u043d\u0435\u0442\u0430\u043c\u0438 \u043f\u0440\u043e\u0434\u0430\u0432\u0446\u0430 Ozon\n- **\u23f1\ufe0f \u0423\u043c\u043d\u043e\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432** - \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0441\u043e\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u0435 \u043b\u0438\u043c\u0438\u0442\u043e\u0432 API Ozon\n- **\u27bf \u0413\u0438\u0431\u043a\u0430\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043b\u0438\u043c\u0438\u0442\u043e\u0432** - \u043a\u0430\u0441\u0442\u043e\u043c\u043d\u044b\u0435 \u043b\u0438\u043c\u0438\u0442\u044b \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0434\u043b\u044f \u043c\u0435\u0442\u043e\u0434\u043e\u0432\n- **\u23f3 \u041a\u0435\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043e\u0442\u0432\u0435\u0442\u043e\u0432** - \u0434\u043b\u044f \u043c\u0435\u0442\u043e\u0434\u043e\u0432, \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u044e\u0449\u0438\u0445 \u0441\u0442\u0430\u0442\u0438\u0447\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435\n- **\ud83d\udd04 \u0410\u0432\u0442\u043e\u043f\u043e\u0432\u0442\u043e\u0440\u044b** - \u044d\u043a\u0441\u043f\u043e\u043d\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u044b\u0435 \u043f\u043e\u043f\u044b\u0442\u043a\u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u043f\u0440\u0438 \u0441\u0431\u043e\u044f\u0445\n- **\ud83d\udee1\ufe0f \u0412\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445** - \u0441\u0442\u0440\u043e\u0433\u0430\u044f \u0442\u0438\u043f\u0438\u0437\u0430\u0446\u0438\u044f \u0441 Pydantic v2\n- **\ud83d\udcca \u0414\u0435\u0442\u0430\u043b\u044c\u043d\u043e\u0435 \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435** - \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u0430\u044f \u0442\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u043a\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439\n- **\ud83c\udfaa \u0413\u0438\u0431\u043a\u0430\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f** - \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0447\u0435\u0440\u0435\u0437 \u043a\u043b\u0430\u0441\u0441\u044b, \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u0438\u043b\u0438 .env \u0444\u0430\u0439\u043b\n- **\ud83e\uddf9 \u041e\u0447\u0438\u0441\u0442\u043a\u0430 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432** - \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c \u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u043e\u043c \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u043d\u044b\u0445 \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440\u043e\u0432\n- **\ud83e\uddea \u041f\u043e\u043b\u043d\u043e\u0435 \u043f\u043e\u043a\u0440\u044b\u0442\u0438\u0435 \u0442\u0435\u0441\u0442\u0430\u043c\u0438** - \u0432\u0441\u044f \u043e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c\n- **\u2714\ufe0f \u041f\u0440\u043e\u0432\u0435\u0440\u0435\u043d\u043e \u0432 production** - \u0442\u0435\u0441\u0442\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043d\u0430 \u0431\u043e\u0435\u0432\u044b\u0445 \u043a\u0430\u0431\u0438\u043d\u0435\u0442\u0430\u0445 \u043f\u0440\u043e\u0434\u0430\u0432\u0446\u043e\u0432 Ozon\n\n\ud83e\udd1d \u0414\u0430\u043d\u043d\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0444\u043e\u0440\u043a\u043e\u043c \u0441 \u0433\u043b\u0443\u0431\u043e\u043a\u043e\u0439 \u0434\u043e\u0440\u0430\u0431\u043e\u0442\u043a\u043e\u0439 \u0438 \u0430\u043a\u0442\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0435\u0439 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 [python-ozon-api](https://github.com/mephistofox/python-ozon-api) \u043e\u0442 [mephistofox](https://github.com/mephistofox):\n\n## \u2699\ufe0f \u0411\u044b\u0441\u0442\u0440\u044b\u0439 \u0441\u0442\u0430\u0440\u0442\n\n### \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430\n\n```bash\npip install ozonapi-async\n```\n\n### \u0411\u0430\u0437\u043e\u0432\u043e\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\n\n```python\nimport asyncio\nfrom ozonapi import SellerAPI\n\nasync def main():\n    async with SellerAPI(\n        client_id=\"your_client_id\",\n        api_key=\"your_api_key\"\n    ) as api:\n        # \u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0441\u043f\u0438\u0441\u043a\u0430 \u0442\u043e\u0432\u0430\u0440\u043e\u0432\n        products = await api.product_list()\n        print(f\"\u041f\u043e\u043b\u0443\u0447\u0435\u043d\u043e \u0442\u043e\u0432\u0430\u0440\u043e\u0432: {len(products.result.items)}\")\n\nif __name__ == \"__main__\":\n    asyncio.run(main())\n```\n\n### \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0447\u0435\u0440\u0435\u0437 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u043a\u043b\u0430\u0441\u0441\n\n```python\nimport asyncio\nfrom ozonapi import SellerAPI, SellerAPIConfig\n\nasync def main():\n    # \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043a\u0430\u0441\u0442\u043e\u043c\u043d\u043e\u0439 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438\n    config = SellerAPIConfig(\n        client_id=\"your_client_id\",\n        api_key=\"your_api_key\",\n        log_level=\"DEBUG\"\n    )\n    \n    async with SellerAPI(config=config) as api:\n        # \u0420\u0430\u0431\u043e\u0442\u0430 \u0441 \u0442\u043e\u0432\u0430\u0440\u0430\u043c\u0438\n        products = await api.product_list()\n        # \u0420\u0430\u0431\u043e\u0442\u0430 \u0441 \u0446\u0435\u043d\u0430\u043c\u0438\n        prices = await api.product_info_prices()\n\nasyncio.run(main())\n```\n\n### \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0447\u0435\u0440\u0435\u0437 .env \u0444\u0430\u0439\u043b\n\n\u0421\u043e\u0437\u0434\u0430\u0439\u0442\u0435 \u0444\u0430\u0439\u043b `.env` \u0432 \u043a\u043e\u0440\u043d\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u0430:\n\n```env\nOZON_SELLER_CLIENT_ID=your_client_id\nOZON_SELLER_API_KEY=your_api_key\nOZON_SELLER_MAX_REQUESTS_PER_SECOND=30\nOZON_SELLER_REQUEST_TIMEOUT=60.0\nOZON_SELLER_MAX_RETRIES=5\n```\n\n\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0441 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u043e\u0439 \u0438\u0437 .env:\n\n```python\nimport asyncio\nfrom ozonapi import SellerAPI\n\nasync def main():\n    # \u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442\u0441\u044f \u0438\u0437 .env\n    async with SellerAPI() as api:\n        # \u0412\u0430\u0448\u0438 API \u0432\u044b\u0437\u043e\u0432\u044b\n        warehouses = await api.warehouse_list()\n        print(f\"\u0414\u043e\u0441\u0442\u0443\u043f\u043d\u043e \u0441\u043a\u043b\u0430\u0434\u043e\u0432: {len(warehouses.result)}\")\n\nasyncio.run(main())\n```\n\n### \u041f\u0440\u0438\u043c\u0435\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f\n\n```python\n\"\"\"\n\u0417\u0430\u0434\u0430\u0447\u0430: \u0412\u044b\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u0442\u043e\u0432\u0430\u0440\u043e\u0432 \u043f\u0440\u043e\u0434\u0430\u0432\u0446\u0430.\n\n\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u044f: \n\u0427\u0430\u0441\u0442\u044f\u043c\u0438 \u0432\u044b\u0433\u0440\u0443\u0437\u0438\u043c \u0441\u043f\u0438\u0441\u043e\u043a \u0442\u043e\u0432\u0430\u0440\u043e\u0432 \u043c\u0435\u0442\u043e\u0434\u043e\u043c product_list(), \n\u0447\u0442\u043e\u0431\u044b \u0443\u0437\u043d\u0430\u0442\u044c \u0438\u0445 product_id, \u0438 \u043f\u043e \u043c\u0435\u0440\u0435 \u0432\u044b\u0433\u0440\u0443\u0437\u043a\u0438 \n\u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0434\u043b\u044f \u0442\u043e\u0432\u0430\u0440\u043e\u0432 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043c\u0435\u0442\u043e\u0434\u0430 \nproduct_info_description().\n\n\u0414\u043b\u044f \u044d\u0442\u0438\u0445 \u0446\u0435\u043b\u0435\u0439 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u043e\u0447\u0435\u0440\u0435\u0434\u0438 \u0438\u0437 \u043c\u043e\u0434\u0443\u043b\u044f asyncio \u0438 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u043c\n\u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u043e \u0441\u0445\u0435\u043c\u0435 producer -> queue -> consumers.\n\n\u0421\u0434\u0435\u043b\u0430\u0435\u043c \u043e\u0434\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044f, \u0447\u0442\u043e\u0431\u044b \u0441\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u043b \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u044b \u0432 \u043e\u0447\u0435\u0440\u0435\u0434\u044c,\n\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b\u0435\u0439, \u043a\u0430\u0436\u0434\u044b\u0439 \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u0431\u0438\u0440\u0430\u0442\u044c \u043f\u043e \u043e\u0434\u043d\u043e\u043c\u0443 \n\u0438\u0437 \u043e\u0447\u0435\u0440\u0435\u0434\u0438 \u0438 \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e \u0432\u044b\u0433\u0440\u0443\u0436\u0430\u0442\u044c \u0435\u0433\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435, \u0441 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435\u043c \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432.\n\"\"\"\n\nimport asyncio\nfrom pprint import pprint\n\nfrom ozonapi import SellerAPI, SellerAPIConfig\nfrom ozonapi.seller.schemas.products import ProductListRequest, ProductListResponse,\n\nProductInfoDescriptionRequest\n\n\"\"\"\n\u041f\u043e\u0434\u043e\u0431\u0440\u0430\u043d\u044b \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0438\u0435 \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0442\u044c \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u0438 \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e\u0441\u0442\u044c \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043b\u043e\u0433\u0438\u043a\u0438.\n\u0414\u043b\u044f prod \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u044b.\n\u041e\u0431\u0449\u0435\u0435 \u043a\u043e\u043b-\u0432\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0441\u043e\u0441\u0442\u0430\u0432\u0438\u0442 consumers_amount * consumer_rate_limit \u0432 \u0441\u0435\u043a + \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u043f\u043e\n\u0434\u0435\u0444\u043e\u043b\u0442\u043d\u044b\u043c \u043b\u0438\u043c\u0438\u0442\u0430\u043c \u0438\u0437 SellerAPIConfig \u0434\u043b\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0438 producer, \u0441 \u0443\u0447\u0435\u0442\u043e\u043c \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u043e\u0433\u043e \u043c\u0430\u043a\u0441\u0438\u043c\u0443\u043c\u0430.\n\"\"\"\n\nproduct_list_limit = 10  # \u041a\u043e\u043b-\u0432\u043e \u0442\u043e\u0432\u0430\u0440\u043e\u0432, \u0432\u044b\u0433\u0440\u0443\u0436\u0430\u0435\u043c\u044b\u0445 \u0437\u0430 \u043e\u0434\u043d\u0443 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u044e\nconsumers_amount = 5     # \u041a\u043e\u043b-\u0432\u043e \u043f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b\u0435\u0439, \u0432\u044b\u0433\u0440\u0443\u0436\u0430\u044e\u0449\u0438\u0445 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f\nconsumer_rate_limit = 2  # \u041b\u0438\u043c\u0438\u0442 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0443 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b\u044f\nqueue_max_size = product_list_limit * consumers_amount  # \u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u0440\u0430\u0437\u043c\u0435\u0440 \u043e\u0447\u0435\u0440\u0435\u0434\u0438\n\nproduct_descriptions = list()\n\n\nasync def producer(queue):\n    \"\"\"\u041f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u0431\u0430\u0442\u0447\u0438 \u0438\u0437 \u0441\u043f\u0438\u0441\u043a\u0430 \u0442\u043e\u0432\u0430\u0440\u043e\u0432 \u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 product_id \u0432 \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u043d\u0430 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f.\"\"\"\n\n    async with SellerAPI(\n            config=SellerAPIConfig(\n                # \u041f\u043e\u043d\u0438\u0436\u0430\u0435\u043c \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f (\u0434\u043b\u044f \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u043e\u0441\u0442\u0438)\n                log_level=\"INFO\"\n            )\n    ) as api:\n\n        # \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u0434\u043b\u044f \u0432\u044b\u0431\u043e\u0440\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445\n        products_count = 0  # \u0421\u0447\u0435\u0442\u0447\u0438\u043a \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u044b\u0445 \u0442\u043e\u0432\u0430\u0440\u043e\u0432\n        last_id = str()  # \u0418\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u0434\u043b\u044f \u043f\u0430\u0433\u0438\u043d\u0430\u0446\u0438\u0438\n\n        while True:\n            # \u041e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c \u0437\u0430\u043f\u0440\u043e\u0441 \u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u043e\u0447\u0435\u0440\u0435\u0434\u043d\u0443\u044e \u043f\u0430\u0440\u0442\u0438\u044e \u0434\u0430\u043d\u043d\u044b\u0445 \u043e \u0442\u043e\u0432\u0430\u0440\u0430\u0445\n            products_batch: ProductListResponse = await api.product_list(\n                ProductListRequest(\n                    limit=product_list_limit,\n                    last_id=last_id\n                ),\n            )\n\n            # \u041f\u0435\u0440\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u0432\u044b\u0431\u043e\u0440\u043a\u0438 \u0434\u043b\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438\n            last_id = products_batch.result.last_id\n            # \u0423\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0435\u043c \u0441\u0447\u0435\u0442\u0447\u0438\u043a \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u044b\u0445 \u0442\u043e\u0432\u0430\u0440\u043e\u0432\n            products_count += len(products_batch.result.items)\n\n            # \u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0430\u0439\u0434\u0438\u0448\u043d\u0438\u043a \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0442\u043e\u0432\u0430\u0440\u0430 \u0432 \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u043d\u0430 \u0432\u044b\u0433\u0440\u0443\u0437\u043a\u0443 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f\n            for item in products_batch.result.items:\n                await queue.put(item.product_id)\n\n            # \u041e\u0442\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u043c\u0441\u044f \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u044c\n            api.logger.info(\n                f\"\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u043e \u0432 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0443 {products_count} \u0438\u0437 {products_batch.result.total} \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432.\"\n            )\n\n            # \u0415\u0441\u043b\u0438 \u0432\u044b\u0433\u0440\u0443\u0437\u0438\u043b\u0438 \u0432\u0441\u0435 \u0442\u043e\u0432\u0430\u0440\u044b, \u0442\u043e \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u0435\u043c \u0446\u0438\u043a\u043b\n            if products_count == products_batch.result.total:\n                break\n\n\nasync def consumer(queue):\n    \"\"\"\u041f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u0430\u0439\u0434\u0438\u0448\u043d\u0438\u043a\u0438 \u0442\u043e\u0432\u0430\u0440\u043e\u0432 \u0438\u0437 \u043e\u0447\u0435\u0440\u0435\u0434\u0438 \u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f.\"\"\"\n\n    async with SellerAPI(\n            config=SellerAPIConfig(\n                # \u041f\u043e\u043d\u0438\u0436\u0430\u0435\u043c \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f\n                log_level=\"INFO\",\n                # \u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0432\u0430\u0435\u043c \u043a\u043e\u043b-\u0432\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0443 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b\u044f\n                max_requests_per_second=consumer_rate_limit\n            )\n    ) as api:\n        while True:\n            # \u0414\u043e\u0441\u0442\u0430\u0435\u043c \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u043e\u0447\u0435\u0440\u0435\u0434\u043d\u043e\u0433\u043e \u0442\u043e\u0432\u0430\u0440\u0430 \u0438\u0437 \u043e\u0447\u0435\u0440\u0435\u0434\u0438\n            product_id = await queue.get()\n\n            # \u041e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c \u0437\u0430\u043f\u0440\u043e\u0441 \u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u043e\u0442\u0432\u0435\u0442 \u0441 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u043c\n            product_description = await api.product_info_description(\n                ProductInfoDescriptionRequest(\n                    product_id=product_id\n                ),\n            )\n\n            # \u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u043e\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0432 \u043e\u0431\u0449\u0438\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \n            # \u0438 \u0432\u044b\u0432\u043e\u0434\u0438\u043c \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u044c \u043e\u0442\u0447\u0435\u0442 \u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0438\n            product_descriptions.append(product_description.result)\n            api.logger.info(f\"\u041f\u043e\u043b\u0443\u0447\u0435\u043d\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0434\u043b\u044f \u0442\u043e\u0432\u0430\u0440\u0430 {product_description.result.id}\")\n\n            # \u041e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u043c \u0441\u0447\u0435\u0442\u0447\u0438\u043a \u0437\u0430\u0434\u0430\u0447\n            queue.task_done()\n\n\nasync def main() -> None:\n    # \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u0437\u0430\u0434\u0430\u043d\u0438\u0439 \u043d\u0430 \u0432\u044b\u0433\u0440\u0443\u0437\u043a\u0443 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0439\n    queue = asyncio.Queue(maxsize=queue_max_size)\n\n    # \u0424\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u043c \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0435 \u043a\u043e\u043b-\u0432\u043e \u043f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b\u0435\u0439 (\u0432\u044b\u0433\u0440\u0443\u0436\u0430\u044e\u0442 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f) \n    [asyncio.create_task(consumer(queue)) for _ in range(consumers_amount)]\n\n    # \u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044f (\u0443\u0437\u043d\u0430\u0435\u0442 product_id \u0442\u043e\u0432\u0430\u0440\u043e\u0432 \u0438 \u0437\u0430\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0434\u043b\u044f \u043d\u0438\u0445 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f)\n    await producer(queue)\n\n    # \u0414\u043e\u0436\u0438\u0434\u0430\u0435\u043c\u0441\u044f, \u043a\u043e\u0433\u0434\u0430 \u043f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b\u0438 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0432\u0441\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u0432 \u043e\u0447\u0435\u0440\u0435\u0434\u0438\n    await queue.join()\n\n\nif __name__ == '__main__':\n    asyncio.run(main())\n\n    # \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f\n    for product_description in product_descriptions:\n        pprint(product_description.model_dump())\n```\n\n---\n\n### \u0420\u0430\u0431\u043e\u0442\u0430 \u0441 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c\u0438 \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u0430\u043c\u0438\n\n```python\nimport asyncio\nfrom ozonapi import SellerAPI\n\nasync def main():\n    # \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432 \u0434\u043b\u044f \u0440\u0430\u0437\u043d\u044b\u0445 \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u043e\u0432\n    configs = [\n        {\"client_id\": \"id1\", \"api_key\": \"key1\"},\n        {\"client_id\": \"id2\", \"api_key\": \"key2\"}\n    ]\n    \n    tasks = []\n    for config in configs:\n        task = asyncio.create_task(fetch_account_data(config))\n        tasks.append(task)\n    \n    results = await asyncio.gather(*tasks)\n\nasync def fetch_account_data(config):\n    async with SellerAPI(**config) as api:\n        products = await api.product_list()\n        return {\n            \"client_id\": config[\"client_id\"],\n            \"product_count\": len(products.result.items)\n        }\n\nasyncio.run(main())\n```\n\n## \ud83c\udfd7\ufe0f \u0410\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u043d\u044b\u0435 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438\n\n### \u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f\u043c\u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432\n\n\u041f\u0440\u043e\u0435\u043a\u0442 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0441\u043e\u0431\u043b\u044e\u0434\u0430\u0435\u0442 \u043b\u0438\u043c\u0438\u0442\u044b API Ozon (50 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0443) \u0441 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c\u044e \u0442\u043e\u043d\u043a\u043e\u0439 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438:\n\n```python\n# \u041a\u0430\u0441\u0442\u043e\u043c\u043d\u044b\u0435 \u043b\u0438\u043c\u0438\u0442\u044b\nconfig = SellerAPIConfig(\n    max_requests_per_second=25,  # \u0411\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u044b\u0439 \u0437\u0430\u043f\u0430\u0441\n    retry_min_wait=2.0,\n    retry_max_wait=10.0\n)\n```\n**\ud83d\udca1 \u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435:**\n*50 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0432 \u0441\u0435\u043a. \u2014 \u0441\u0443\u043c\u043c\u0430\u0440\u043d\u043e\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 \u043d\u0430 \u0432\u0441\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u044b\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u043e\u0442 \u0432\u0441\u0435\u0445 \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u0441 \u043e\u0434\u043d\u043e\u0433\u043e client_id \u0432 \u0435\u0434\u0438\u043d\u0438\u0446\u0443 \u0432\u0440\u0435\u043c\u0435\u043d\u0438.*\n*\u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u0443 \u043c\u043d\u043e\u0433\u0438\u0445 \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u0435\u0441\u0442\u044c \u0441\u0432\u043e\u0438 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u044b \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0435\u0439 \u0438 \u043c\u043e\u0433\u0443\u0442 \u043c\u0435\u043d\u044f\u0442\u044c\u0441\u044f Ozon \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0430.*\n\n\n### \u041e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043e\u0448\u0438\u0431\u043e\u043a \u0438 \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u044b\u0435 \u043f\u043e\u043f\u044b\u0442\u043a\u0438\n\n\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043f\u043e\u0432\u0442\u043e\u0440\u044b \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0441 \u044d\u043a\u0441\u043f\u043e\u043d\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0439 \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u043e\u0439:\n\n```python\n# \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u0438 \u043f\u043e\u0432\u0442\u043e\u0440\u043e\u0432\nconfig = SellerAPIConfig(\n    max_retries=3,           # \u041c\u0430\u043a\u0441\u0438\u043c\u0443\u043c 3 \u043f\u043e\u043f\u044b\u0442\u043a\u0438\n    retry_min_wait=1.0,      # \u041c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u0430\u044f \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0430\n    retry_max_wait=10.0      # \u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u0430\u044f \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0430\n)\n```\n\n**\ud83d\udca1 \u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435:**\n*\u041b\u043e\u0433\u0435\u0440 \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u044f\u0435\u0442 \u043e\u0431 \u043e\u0448\u0438\u0431\u043a\u0435 \u043f\u0440\u0438 \u043f\u0440\u0435\u0432\u044b\u0448\u0435\u043d\u0438\u0438 \u043a\u043e\u043b-\u0432\u0430 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432, \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u043f\u043b\u0430\u043d\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u0430\u044f \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0430 \u0437\u0430\u043f\u0440\u043e\u0441\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0438\u043d\u0438\u0446\u0438\u0438\u0440\u043e\u0432\u0430\u043b \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435.*\n\n\n## \u26a0\ufe0f \u0412\u0430\u0436\u043d\u044b\u0435 \u043f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u044f\n\n### \u041f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c\n\n\u0422\u0435\u043a\u0443\u0449\u0430\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u0430 \u0434\u043b\u044f \u043e\u0434\u043d\u043e\u043f\u043e\u0442\u043e\u0447\u043d\u043e\u0433\u043e \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f. \u0414\u043b\u044f \u043c\u0443\u043b\u044c\u0442\u0438\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043d\u044b\u0445 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0435\u0432 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432.\n\n### \u041b\u0438\u043c\u0438\u0442\u044b API\n\n\u041f\u0440\u043e\u0435\u043a\u0442 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0441\u043e\u0431\u043b\u044e\u0434\u0430\u0435\u0442 [\u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u043b\u0438\u043c\u0438\u0442\u044b Ozon API](https://docs.ozon.ru/api/seller/), \u043d\u043e \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f:\n- \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u043d\u0441\u0435\u0440\u0432\u0430\u0442\u0438\u0432\u043d\u044b\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043b\u0438\u043c\u0438\u0442\u043e\u0432\n- \u041c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u0442\u044c \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0443 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0447\u0435\u0440\u0435\u0437 \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0435 \u043c\u0435\u0442\u043e\u0434\u044b\n\n## \ud83d\udd27 \u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430\n\n### \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430\n\n```bash\ngit clone https://github.com/a-ulianov/OzonAPI.git\ncd OzonAPI\npip install -e\npytest --cov=ozonapi --cov-report=html\n```\n\n\n## \ud83e\udd1d \u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430\n\n- \u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f: [GitHub Repository](https://github.com/a-ulianov/OzonAPI#readme)\n- Issues: [GitHub Issues](https://github.com/a-ulianov/OzonAPI/issues)\n- Changelog: [Releases](https://github.com/a-ulianov/OzonAPI/releases)\n- Telegram: [OzonAPI Async](https://t.me/ozonapi_async)\n\n## \u2714\ufe0f \u0420\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043c\u0435\u0442\u043e\u0434\u044b Ozon Seller API\n\n<details>\n<summary>\u0410\u0442\u0440\u0438\u0431\u0443\u0442\u044b \u0438 \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0438 Ozon (4)</summary>\n\n| \u2713 | \u0410\u0434\u0440\u0435\u0441 \u043c\u0435\u0442\u043e\u0434\u0430 Ozon | \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u0430 | Python-\u043c\u0435\u0442\u043e\u0434 |\n|---|---|---|---|\n| \u2713 | `/v1/description-category/tree` | \u0414\u0435\u0440\u0435\u0432\u043e \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0439 \u0438 \u0442\u0438\u043f\u043e\u0432 \u0442\u043e\u0432\u0430\u0440\u043e\u0432 | `description_category_tree()` |\n| \u2713 | `/v1/description-category/attribute` | \u0421\u043f\u0438\u0441\u043e\u043a \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438 | `description_category_attribute()` |\n| \u2713 | `/v1/description-category/attribute/values` | \u0421\u043f\u0440\u0430\u0432\u043e\u0447\u043d\u0438\u043a \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0438 | `description_category_attribute_values()` |\n| \u2713 | `/v1/description-category/attribute/values/search` | \u041f\u043e\u0438\u0441\u043a \u043f\u043e \u0441\u043f\u0440\u0430\u0432\u043e\u0447\u043d\u044b\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0438 | `description_category_attribute_values_search()` |\n</details>\n<details>\n<summary>\u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0442\u043e\u0432\u0430\u0440\u043e\u0432 (18)</summary>\n\n| \u2713 | \u0410\u0434\u0440\u0435\u0441 \u043c\u0435\u0442\u043e\u0434\u0430 Ozon | \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u0430 | Python-\u043c\u0435\u0442\u043e\u0434 |\n|---|---|---|---|\n| \u2713 | `/v3/product/import` | \u0421\u043e\u0437\u0434\u0430\u0442\u044c \u0438\u043b\u0438 \u043e\u0431\u043d\u043e\u0432\u0438\u0442\u044c \u0442\u043e\u0432\u0430\u0440 | `product_import()` |\n| \u2713 | `/v1/product/import/info` | \u0423\u0437\u043d\u0430\u0442\u044c \u0441\u0442\u0430\u0442\u0443\u0441 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0438\u043b\u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0442\u043e\u0432\u0430\u0440\u0430 | `product_import_info()` |\n| \u2713 | `/v1/product/import-by-sku` | \u0421\u043e\u0437\u0434\u0430\u0442\u044c \u0442\u043e\u0432\u0430\u0440 \u043f\u043e SKU | `product_import_by_sku()` |\n| \u2713 | `/v1/product/attributes/update` | \u041e\u0431\u043d\u043e\u0432\u0438\u0442\u044c \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0438 \u0442\u043e\u0432\u0430\u0440\u0430 | `product_attributes_update()` |\n| \u2713 | `/v1/product/pictures/import` | \u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0438\u043b\u0438 \u043e\u0431\u043d\u043e\u0432\u0438\u0442\u044c \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0442\u043e\u0432\u0430\u0440\u0430 | `product_pictures_import()` |\n| \u2713 | `/v3/product/list` | \u0421\u043f\u0438\u0441\u043e\u043a \u0442\u043e\u0432\u0430\u0440\u043e\u0432 | `product_list()` |\n| \u2713 | `/v1/product/rating-by-sku` | \u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043a\u043e\u043d\u0442\u0435\u043d\u0442-\u0440\u0435\u0439\u0442\u0438\u043d\u0433 \u0442\u043e\u0432\u0430\u0440\u043e\u0432 \u043f\u043e SKU | `product_rating_by_sku()` |\n| \u2713 | `/v3/product/info/list` | \u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u0442\u043e\u0432\u0430\u0440\u0430\u0445 \u043f\u043e \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u0430\u043c | `product_info_list()` |\n| \u2713 | `/v4/product/info/attributes` | \u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a \u0442\u043e\u0432\u0430\u0440\u0430 | `product_info_attributes()` |\n| \u2713 | `/v1/product/info/description` | \u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0442\u043e\u0432\u0430\u0440\u0430 | `product_info_description()` |\n| \u2713 | `/v4/product/info/limit` | \u041b\u0438\u043c\u0438\u0442\u044b \u043d\u0430 \u0430\u0441\u0441\u043e\u0440\u0442\u0438\u043c\u0435\u043d\u0442, \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0442\u043e\u0432\u0430\u0440\u043e\u0432 | `product_info_limit()` |\n| \u2713 | `/v1/product/update/offer-id` | \u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0430\u0440\u0442\u0438\u043a\u0443\u043b\u044b \u0442\u043e\u0432\u0430\u0440\u043e\u0432 \u0438\u0437 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u043f\u0440\u043e\u0434\u0430\u0432\u0446\u0430 | `product_update_offer_id()` |\n| \u2713 | `/v1/product/archive` | \u041f\u0435\u0440\u0435\u043d\u0435\u0441\u0442\u0438 \u0442\u043e\u0432\u0430\u0440 \u0432 \u0430\u0440\u0445\u0438\u0432 | `product_archive()` |\n| \u2713 | `/v1/product/unarchive` | \u0412\u0435\u0440\u043d\u0443\u0442\u044c \u0442\u043e\u0432\u0430\u0440 \u0438\u0437 \u0430\u0440\u0445\u0438\u0432\u0430 | `product_unarchive()` |\n| \u2713 | `/v2/products/delete` | \u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0442\u043e\u0432\u0430\u0440 \u0431\u0435\u0437 SKU \u0438\u0437 \u0430\u0440\u0445\u0438\u0432\u0430 | `products_delete()` |\n| \u2713 | `/v1/product/info/subscription` | \u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u043e\u0434\u043f\u0438\u0441\u0430\u0432\u0448\u0438\u0445\u0441\u044f \u043d\u0430 \u0442\u043e\u0432\u0430\u0440 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 | `product_info_subscription()` |\n| \u2713 | `/v1/product/related-sku/get` | \u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0435 SKU | `product_related_sku_get()` |\n| \u2713 | `/v2/product/pictures/info` | \u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0442\u043e\u0432\u0430\u0440\u043e\u0432 | `product_pictures_info()` |\n</details>\n<details>\n<summary>\u0428\u0442\u0440\u0438\u0445\u043a\u043e\u0434\u044b \u0442\u043e\u0432\u0430\u0440\u043e\u0432 (2)</summary>\n\n| \u2713 | \u0410\u0434\u0440\u0435\u0441 \u043c\u0435\u0442\u043e\u0434\u0430 Ozon | \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u0430 | Python-\u043c\u0435\u0442\u043e\u0434 |\n|---|---|---|---|\n| \u2713 | `/v1/barcode/add` | \u041f\u0440\u0438\u0432\u044f\u0437\u0430\u0442\u044c \u0448\u0442\u0440\u0438\u0445\u043a\u043e\u0434 \u043a \u0442\u043e\u0432\u0430\u0440\u0443 | `barcode_add()` |\n| \u2713 | `/v1/barcode/generate` | \u0421\u043e\u0437\u0434\u0430\u0442\u044c \u0448\u0442\u0440\u0438\u0445\u043a\u043e\u0434 \u0434\u043b\u044f \u0442\u043e\u0432\u0430\u0440\u0430 | `barcode_generate()` |\n</details>\n<details>\n<summary>\u0426\u0435\u043d\u044b \u0438 \u043e\u0441\u0442\u0430\u0442\u043a\u0438 \u0442\u043e\u0432\u0430\u0440\u043e\u0432 (5)</summary>\n\n| \u2713 | \u0410\u0434\u0440\u0435\u0441 \u043c\u0435\u0442\u043e\u0434\u0430 Ozon | \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u0430 | Python-\u043c\u0435\u0442\u043e\u0434 |\n|---|---|---|---|\n| \u2713 | `/v2/products/stocks` | \u041e\u0431\u043d\u043e\u0432\u0438\u0442\u044c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0442\u043e\u0432\u0430\u0440\u043e\u0432 \u043d\u0430 \u0441\u043a\u043b\u0430\u0434\u0430\u0445 | `products_stocks()` |\n| \u2713 | `/v4/product/info/stocks` | \u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0435 \u0442\u043e\u0432\u0430\u0440\u043e\u0432 | `product_info_stocks()` |\n| \u2713 | `/v1/product/info/stocks-by-warehouse/fbs` | \u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e\u0431 \u043e\u0441\u0442\u0430\u0442\u043a\u0430\u0445 \u043d\u0430 \u0441\u043a\u043b\u0430\u0434\u0430\u0445 \u043f\u0440\u043e\u0434\u0430\u0432\u0446\u0430 (FBS \u0438 rFBS) | `product_info_stocks_by_warehouse_fbs()` |\n| \u2713 | `/v1/product/import/prices` | \u041e\u0431\u043d\u043e\u0432\u0438\u0442\u044c \u0446\u0435\u043d\u0443 | `product_import_prices()` |\n| \u2610 | `/v1/product/action/timer/update` | \u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0442\u0430\u0439\u043c\u0435\u0440\u0430 \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0439 \u0446\u0435\u043d\u044b | `product_action_timer_update()` |\n| \u2610 | `/v1/product/action/timer/status` | \u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0441\u0442\u0430\u0442\u0443\u0441 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u0442\u0430\u0439\u043c\u0435\u0440\u0430 | `product_action_timer_status()` |\n| \u2713 | `/v5/product/info/prices` | \u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u0446\u0435\u043d\u0435 \u0442\u043e\u0432\u0430\u0440\u0430 | `product_info_prices()` |\n| \u2610 | `/v1/product/info/discounted` | \u0423\u0437\u043d\u0430\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e\u0431 \u0443\u0446\u0435\u043d\u043a\u0435 \u0438 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u0442\u043e\u0432\u0430\u0440\u0435 \u043f\u043e SKU \u0443\u0446\u0435\u043d\u0451\u043d\u043d\u043e\u0433\u043e \u0442\u043e\u0432\u0430\u0440\u0430 | `product_info_discounted()` |\n| \u2610 | `/v1/product/update/discount` | \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0441\u043a\u0438\u0434\u043a\u0443 \u043d\u0430 \u0443\u0446\u0435\u043d\u0451\u043d\u043d\u044b\u0439 \u0442\u043e\u0432\u0430\u0440 | `product_update_discount()` |\n</details>\n<details>\n<summary>\u0410\u043a\u0446\u0438\u0438</summary>\n\n| \u2713 | \u0410\u0434\u0440\u0435\u0441 \u043c\u0435\u0442\u043e\u0434\u0430 Ozon | \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u0430 | Python-\u043c\u0435\u0442\u043e\u0434 |\n|---|---|---|---|\n| \u2610 | `/v1/actions` | \u0421\u043f\u0438\u0441\u043e\u043a \u0430\u043a\u0446\u0438\u0439 | `actions()` |\n| \u2610 | `/v1/actions/candidates` | \u0421\u043f\u0438\u0441\u043e\u043a \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 \u0434\u043b\u044f \u0430\u043a\u0446\u0438\u0438 \u0442\u043e\u0432\u0430\u0440\u043e\u0432 | `actions_candidates()` |\n| \u2610 | `/v1/actions/products` | \u0421\u043f\u0438\u0441\u043e\u043a \u0443\u0447\u0430\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u0432 \u0430\u043a\u0446\u0438\u0438 \u0442\u043e\u0432\u0430\u0440\u043e\u0432 | `actions_products()` |\n| \u2610 | `/v1/actions/products/activate` | \u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0442\u043e\u0432\u0430\u0440 \u0432 \u0430\u043a\u0446\u0438\u044e | `actions_products_activate()` |\n| \u2610 | `/v1/actions/products/deactivate` | \u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0442\u043e\u0432\u0430\u0440\u044b \u0438\u0437 \u0430\u043a\u0446\u0438\u0438 | `actions_products_deactivate()` |\n| \u2610 | `/v1/actions/discounts-task/list` | \u0421\u043f\u0438\u0441\u043e\u043a \u0437\u0430\u044f\u0432\u043e\u043a \u043d\u0430 \u0441\u043a\u0438\u0434\u043a\u0443 | `actions_discounts_task_list()` |\n| \u2610 | `/v1/actions/discounts-task/approve` | \u0421\u043e\u0433\u043b\u0430\u0441\u043e\u0432\u0430\u0442\u044c \u0437\u0430\u044f\u0432\u043a\u0443 \u043d\u0430 \u0441\u043a\u0438\u0434\u043a\u0443 | `actions_discounts_task_approve()` |\n| \u2610 | `/v1/actions/discounts-task/decline` | \u041e\u0442\u043a\u043b\u043e\u043d\u0438\u0442\u044c \u0437\u0430\u044f\u0432\u043a\u0443 \u043d\u0430 \u0441\u043a\u0438\u0434\u043a\u0443 | `actions_discounts_task_decline()` |\n</details>\n<details>\n<summary>\u0421\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u0438 \u0446\u0435\u043d\u043e\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f</summary>\n\n| \u2713 | \u0410\u0434\u0440\u0435\u0441 \u043c\u0435\u0442\u043e\u0434\u0430 Ozon | \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u0430 | Python-\u043c\u0435\u0442\u043e\u0434 |\n|---|---|---|---|\n| \u2610 | `/v1/pricing-strategy/competitors/list` | \u0421\u043f\u0438\u0441\u043e\u043a \u043a\u043e\u043d\u043a\u0443\u0440\u0435\u043d\u0442\u043e\u0432 | `pricing_strategy_competitors_list()` |\n| \u2610 | `/v1/pricing-strategy/list` | \u0421\u043f\u0438\u0441\u043e\u043a \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u0439 | `pricing_strategy_list()` |\n| \u2610 | `/v1/pricing-strategy/create` | \u0421\u043e\u0437\u0434\u0430\u0442\u044c \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u044e | `pricing_strategy_create()` |\n| \u2610 | `/v1/pricing-strategy/info` | \u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u0438 | `pricing_strategy_info()` |\n| \u2610 | `/v1/pricing-strategy/update` | \u041e\u0431\u043d\u043e\u0432\u0438\u0442\u044c \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u044e | `pricing_strategy_update()` |\n| \u2610 | `/v1/pricing-strategy/products/add` | \u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0442\u043e\u0432\u0430\u0440\u044b \u0432 \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u044e | `pricing_strategy_products_add()` |\n| \u2610 | `/v1/pricing-strategy/strategy-ids-by-product-ids` | \u0421\u043f\u0438\u0441\u043e\u043a \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u043e\u0432 \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u0439 | `pricing_strategy_strategy_ids_by_product_ids()` |\n| \u2610 | `/v1/pricing-strategy/products/list` | \u0421\u043f\u0438\u0441\u043e\u043a \u0442\u043e\u0432\u0430\u0440\u043e\u0432 \u0432 \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u0438 | `pricing_strategy_products_list()` |\n| \u2610 | `/v1/pricing-strategy/product/info` | \u0426\u0435\u043d\u0430 \u0442\u043e\u0432\u0430\u0440\u0430 \u0443 \u043a\u043e\u043d\u043a\u0443\u0440\u0435\u043d\u0442\u0430 | `pricing_strategy_product_info()` |\n| \u2610 | `/v1/pricing-strategy/products/delete` | \u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0442\u043e\u0432\u0430\u0440\u044b \u0438\u0437 \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u0438 | `pricing_strategy_products_delete()` |\n| \u2610 | `/v1/pricing-strategy/status` | \u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0441\u0442\u0430\u0442\u0443\u0441 \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u0438 | `pricing_strategy_status()` |\n| \u2610 | `/v1/pricing-strategy/delete` | \u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u044e | `pricing_strategy_delete()` |\n</details>\n<details>\n<summary>\u0421\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u044b \u0431\u0440\u0435\u043d\u0434\u043e\u0432</summary>\n\n| \u2713 | \u0410\u0434\u0440\u0435\u0441 \u043c\u0435\u0442\u043e\u0434\u0430 Ozon | \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u0430 | Python-\u043c\u0435\u0442\u043e\u0434 |\n|---|---|---|---|\n| \u2610 | `/v1/brand/company-certification/list` | \u0421\u043f\u0438\u0441\u043e\u043a \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u0446\u0438\u0440\u0443\u0435\u043c\u044b\u0445 \u0431\u0440\u0435\u043d\u0434\u043e\u0432 | `brand_company_certification_list()` |\n</details>\n<details>\n<summary>\u0421\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u044b \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430</summary>\n\n| \u2713 | \u0410\u0434\u0440\u0435\u0441 \u043c\u0435\u0442\u043e\u0434\u0430 Ozon | \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u0430 | Python-\u043c\u0435\u0442\u043e\u0434 |\n|---|---|---|---|\n| \u2610 | `/v1/product/certificate/accordance-types` | \u0421\u043f\u0438\u0441\u043e\u043a \u0442\u0438\u043f\u043e\u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u044f \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u0439 (\u0432\u0435\u0440\u0441\u0438\u044f 1) | `product_certificate_accordance_types()` |\n| \u2610 | `/v2/product/certificate/accordance-types/list` | \u0421\u043f\u0438\u0441\u043e\u043a \u0442\u0438\u043f\u043e\u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u044f \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u0439 (\u0432\u0435\u0440\u0441\u0438\u044f 2) | `product_certificate_accordance_types_list()` |\n| \u2610 | `/v1/product/certificate/types` | \u0421\u043f\u0440\u0430\u0432\u043e\u0447\u043d\u0438\u043a \u0442\u0438\u043f\u043e\u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043e\u0432 | `product_certificate_types()` |\n| \u2610 | `/v2/product/certification/list` | \u0421\u043f\u0438\u0441\u043e\u043a \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u0446\u0438\u0440\u0443\u0435\u043c\u044b\u0445 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0439 | `product_certification_list()` |\n| \u2610 | `/v1/product/certificate/create` | \u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u044b \u0434\u043b\u044f \u0442\u043e\u0432\u0430\u0440\u043e\u0432 | `product_certificate_create()` |\n| \u2610 | `/v1/product/certificate/bind` | \u041f\u0440\u0438\u0432\u044f\u0437\u0430\u0442\u044c \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 \u043a \u0442\u043e\u0432\u0430\u0440\u0443 | `product_certificate_bind()` |\n| \u2610 | `/v1/product/certificate/delete` | \u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 | `product_certificate_delete()` |\n| \u2610 | `/v1/product/certificate/info` | \u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0435 | `product_certificate_info()` |\n| \u2610 | `/v1/product/certificate/list` | \u0421\u043f\u0438\u0441\u043e\u043a \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0432 | `product_certificate_list()` |\n| \u2610 | `/v1/product/certificate/product_status/list` | \u0421\u043f\u0438\u0441\u043e\u043a \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0445 \u0441\u0442\u0430\u0442\u0443\u0441\u043e\u0432 \u0442\u043e\u0432\u0430\u0440\u043e\u0432 | `product_certificate_product_status_list()` |\n| \u2610 | `/v1/product/certificate/products/list` | \u0421\u043f\u0438\u0441\u043e\u043a \u0442\u043e\u0432\u0430\u0440\u043e\u0432, \u043f\u0440\u0438\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u043a \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0443 | `product_certificate_products_list()` |\n| \u2610 | `/v1/product/certificate/unbind` | \u041e\u0442\u0432\u044f\u0437\u0430\u0442\u044c \u0442\u043e\u0432\u0430\u0440 \u043e\u0442 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430 | `product_certificate_unbind()` |\n| \u2610 | `/v1/product/certificate/rejection_reasons/list` | \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0435 \u043f\u0440\u0438\u0447\u0438\u043d\u044b \u043e\u0442\u043a\u043b\u043e\u043d\u0435\u043d\u0438\u044f \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430 | `product_certificate_rejection_reasons_list()` |\n| \u2610 | `/v1/product/certificate/status/list` | \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0435 \u0441\u0442\u0430\u0442\u0443\u0441\u044b \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0432 | `product_certificate_status_list()` |\n</details>\n<details>\n<summary>\u0421\u043a\u043b\u0430\u0434\u044b (2)</summary>\n\n| \u2713 | \u0410\u0434\u0440\u0435\u0441 \u043c\u0435\u0442\u043e\u0434\u0430 Ozon | \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u0430 | Python-\u043c\u0435\u0442\u043e\u0434 |\n|---|---|---|---|\n| \u2713 | `/v1/warehouse/list` | \u0421\u043f\u0438\u0441\u043e\u043a \u0441\u043a\u043b\u0430\u0434\u043e\u0432 | `warehouse_list()` |\n| \u2713 | `/v1/delivery-method/list` | \u0421\u043f\u0438\u0441\u043e\u043a \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0438 \u0441\u043a\u043b\u0430\u0434\u0430 | `delivery_method_list()` |\n</details>\n<details>\n<summary>\u041e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0437\u0430\u043a\u0430\u0437\u043e\u0432 FBS \u0438 rFBS (18)</summary>\n\n| \u2713 | \u0410\u0434\u0440\u0435\u0441 \u043c\u0435\u0442\u043e\u0434\u0430 Ozon | \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u0430 | Python-\u043c\u0435\u0442\u043e\u0434 |\n|---|---|---|---|\n| \u2713 | `/v3/posting/fbs/unfulfilled/list` | \u0421\u043f\u0438\u0441\u043e\u043a \u043d\u0435\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u043d\u044b\u0445 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0439 | `posting_fbs_unfulfilled_list()` |\n| \u2713 | `/v3/posting/fbs/list` | \u0421\u043f\u0438\u0441\u043e\u043a \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0439 | `posting_fbs_list()` |\n| \u2713 | `/v3/posting/fbs/get` | \u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e\u0431 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0438 \u043f\u043e \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u0443 | `posting_fbs_get()` |\n| \u2713 | `/v2/posting/fbs/get-by-barcode` | \u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e\u0431 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0438 \u043f\u043e \u0448\u0442\u0440\u0438\u0445\u043a\u043e\u0434\u0443 | `posting_fbs_get_by_barcode()` |\n| \u2713 | `/v3/posting/multiboxqty/set` | \u0423\u043a\u0430\u0437\u0430\u0442\u044c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043a\u043e\u0440\u043e\u0431\u043e\u043a \u0434\u043b\u044f \u043c\u043d\u043e\u0433\u043e\u043a\u043e\u0440\u043e\u0431\u043e\u0447\u043d\u044b\u0445 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0439 | `posting_multiboxqty_set()` |\n| \u2713 | `/v2/posting/fbs/product/change` | \u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0432\u0435\u0441 \u0434\u043b\u044f \u0432\u0435\u0441\u043e\u0432\u044b\u0445 \u0442\u043e\u0432\u0430\u0440\u043e\u0432 \u0432 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0438 | `posting_fbs_product_change()` |\n| \u2713 | `/v2/posting/fbs/product/country/list` | \u0421\u043f\u0438\u0441\u043e\u043a \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 \u0441\u0442\u0440\u0430\u043d-\u0438\u0437\u0433\u043e\u0442\u043e\u0432\u0438\u0442\u0435\u043b\u0435\u0439 | `posting_fbs_product_country_list()` |\n| \u2713 | `/v2/posting/fbs/product/country/set` | \u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u0441\u0442\u0440\u0430\u043d\u0435-\u0438\u0437\u0433\u043e\u0442\u043e\u0432\u0438\u0442\u0435\u043b\u0435 \u0442\u043e\u0432\u0430\u0440\u0430 | `posting_fbs_product_country_set()` |\n| \u2713 | `/v1/posting/fbs/restrictions` | \u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u043f\u0443\u043d\u043a\u0442\u0430 \u043f\u0440\u0438\u0451\u043c\u0430 | `posting_fbs_restrictions()` |\n| \u2713 | `/v2/posting/fbs/package-label` | \u041d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0442\u044c \u044d\u0442\u0438\u043a\u0435\u0442\u043a\u0443 | `posting_fbs_package_label()` |\n| \u2713 | `/v2/posting/fbs/package-label/create` | \u0421\u043e\u0437\u0434\u0430\u0442\u044c \u0437\u0430\u0434\u0430\u043d\u0438\u0435 \u043d\u0430 \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u044d\u0442\u0438\u043a\u0435\u0442\u043e\u043a | `posting_fbs_package_label_create()` |\n| \u2713 | `/v1/posting/fbs/package-label/get` | \u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0444\u0430\u0439\u043b \u0441 \u044d\u0442\u0438\u043a\u0435\u0442\u043a\u0430\u043c\u0438 | `posting_fbs_package_label_get()` |\n| \u2713 | `/v1/posting/fbs/cancel-reason` | \u041f\u0440\u0438\u0447\u0438\u043d\u044b \u043e\u0442\u043c\u0435\u043d\u044b \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f | `posting_fbs_cancel_reason()` |\n| \u2713 | `/v2/posting/fbs/cancel-reason/list` | \u041f\u0440\u0438\u0447\u0438\u043d\u044b \u043e\u0442\u043c\u0435\u043d\u044b \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0439 | `posting_fbs_cancel_reason_list()` |\n| \u2713 | `/v2/posting/fbs/product/cancel` | \u041e\u0442\u043c\u0435\u043d\u0438\u0442\u044c \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0443 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0442\u043e\u0432\u0430\u0440\u043e\u0432 \u0432 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0438 | `posting_fbs_product_cancel()` |\n| \u2713 | `/v2/posting/fbs/cancel` | \u041e\u0442\u043c\u0435\u043d\u0438\u0442\u044c \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 | `posting_fbs_cancel()` |\n| \u2713 | `/v2/posting/fbs/arbitration` | \u041e\u0442\u043a\u0440\u044b\u0442\u044c \u0441\u043f\u043e\u0440 \u043f\u043e \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044e | `posting_fbs_arbitration()` |\n| \u2713 | `/v2/posting/fbs/awaiting-delivery` | \u041f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043a \u043e\u0442\u0433\u0440\u0443\u0437\u043a\u0435 | `posting_fbs_awaiting_delivery()` |\n| \u2610 | `/v1/posting/fbs/pick-up-code/verify` | \u041f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u043a\u043e\u0434 \u043a\u0443\u0440\u044c\u0435\u0440\u0430 | `posting_fbs_pick_up_code_verify()` |\n| \u2610 | `/v1/posting/global/etgb` | \u0422\u0430\u043c\u043e\u0436\u0435\u043d\u043d\u044b\u0435 \u0434\u0435\u043a\u043b\u0430\u0440\u0430\u0446\u0438\u0438 ETGB | `posting_global_etgb()` |\n| \u2610 | `/v1/posting/unpaid-legal/product/list` | \u0421\u043f\u0438\u0441\u043e\u043a \u043d\u0435\u043e\u043f\u043b\u0430\u0447\u0435\u043d\u043d\u044b\u0445 \u0442\u043e\u0432\u0430\u0440\u043e\u0432, \u0437\u0430\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0445 \u044e\u0440\u0438\u0434\u0438\u0447\u0435\u0441\u043a\u0438\u043c\u0438 \u043b\u0438\u0446\u0430\u043c\u0438 | `posting_unpaid_legal_product_list()` |\n</details>\n<details>\n<summary>\u041f\u043e\u043b\u0438\u0433\u043e\u043d\u044b</summary>\n\n| \u2713 | \u0410\u0434\u0440\u0435\u0441 \u043c\u0435\u0442\u043e\u0434\u0430 Ozon | \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u0430 | Python-\u043c\u0435\u0442\u043e\u0434 |\n|---|---|---|---|\n| \u2610 | `/v1/polygon/create` | \u0421\u043e\u0437\u0434\u0430\u0439\u0442\u0435 \u043f\u043e\u043b\u0438\u0433\u043e\u043d \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0438 | `polygon_create()` |\n| \u2610 | `/v1/polygon/bind` | \u0421\u0432\u044f\u0436\u0438\u0442\u0435 \u043c\u0435\u0442\u043e\u0434 \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0438 \u0441 \u043f\u043e\u043b\u0438\u0433\u043e\u043d\u043e\u043c \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0438 | `polygon_bind()` |\n</details>\n<details>\n<summary>\u0414\u043e\u0441\u0442\u0430\u0432\u043a\u0430 FBO</summary>\n\n| \u2713 | \u0410\u0434\u0440\u0435\u0441 \u043c\u0435\u0442\u043e\u0434\u0430 Ozon | \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u0430 | Python-\u043c\u0435\u0442\u043e\u0434 |\n|---|---|---|---|\n| \u2610 | `/v2/posting/fbo/list` | \u0421\u043f\u0438\u0441\u043e\u043a \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0439 | `posting_fbo_list()` |\n| \u2610 | `/v2/posting/fbo/get` | \u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e\u0431 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0438 | `posting_fbo_get()` |\n| \u2610 | `/v1/posting/fbo/cancel-reason/list` | \u041f\u0440\u0438\u0447\u0438\u043d\u044b \u043e\u0442\u043c\u0435\u043d\u044b \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0439 \u043f\u043e \u0441\u0445\u0435\u043c\u0435 FBO | `posting_fbo_cancel_reason_list()` |\n| \u2610 | `/v1/supply-order/status/counter` | \u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0437\u0430\u044f\u0432\u043e\u043a \u043f\u043e \u0441\u0442\u0430\u0442\u0443\u0441\u0430\u043c | `supply_order_status_counter()` |\n| \u2610 | `/v1/supply-order/bundle` | \u0421\u043e\u0441\u0442\u0430\u0432 \u043f\u043e\u0441\u0442\u0430\u0432\u043a\u0438 \u0438\u043b\u0438 \u0437\u0430\u044f\u0432\u043a\u0438 \u043d\u0430 \u043f\u043e\u0441\u0442\u0430\u0432\u043a\u0443 | `supply_order_bundle()` |\n| \u2610 | `/v2/supply-order/list` | \u0421\u043f\u0438\u0441\u043e\u043a \u0437\u0430\u044f\u0432\u043e\u043a \u043d\u0430 \u043f\u043e\u0441\u0442\u0430\u0432\u043a\u0443 \u043d\u0430 \u0441\u043a\u043b\u0430\u0434 Ozon | `supply_order_list()` |\n| \u2610 | `/v2/supply-order/get` | \u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u0437\u0430\u044f\u0432\u043a\u0435 \u043d\u0430 \u043f\u043e\u0441\u0442\u0430\u0432\u043a\u0443 | `supply_order_get()` |\n| \u2610 | `/v1/supply-order/timeslot/get` | \u0418\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u044b \u043f\u043e\u0441\u0442\u0430\u0432\u043a\u0438 | `supply_order_timeslot_get()` |\n| \u2610 | `/v1/supply-order/timeslot/update` | \u041e\u0431\u043d\u043e\u0432\u0438\u0442\u044c \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b \u043f\u043e\u0441\u0442\u0430\u0432\u043a\u0438 | `supply_order_timeslot_update()` |\n| \u2610 | `/v1/supply-order/timeslot/status` | \u0421\u0442\u0430\u0442\u0443\u0441 \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u0430 \u043f\u043e\u0441\u0442\u0430\u0432\u043a\u0438 | `supply_order_timeslot_status()` |\n| \u2610 | `/v1/supply-order/pass/create` | \u0423\u043a\u0430\u0437\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u043e \u0432\u043e\u0434\u0438\u0442\u0435\u043b\u0435 \u0438 \u0430\u0432\u0442\u043e\u043c\u043e\u0431\u0438\u043b\u0435 | `supply_order_pass_create()` |\n| \u2610 | `/v1/supply-order/pass/status` | \u0421\u0442\u0430\u0442\u0443\u0441 \u0432\u0432\u043e\u0434\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u043e \u0432\u043e\u0434\u0438\u0442\u0435\u043b\u0435 \u0438 \u0430\u0432\u0442\u043e\u043c\u043e\u0431\u0438\u043b\u0435 | `supply_order_pass_status()` |\n| \u2610 | `/v1/supplier/available_warehouses` | \u0417\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u043e\u0441\u0442\u044c \u0441\u043a\u043b\u0430\u0434\u043e\u0432 Ozon | `supplier_available_warehouses()` |\n</details>\n<details>\n<summary>\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0437\u0430\u044f\u0432\u043a\u0430\u043c\u0438 \u043d\u0430 \u043f\u043e\u0441\u0442\u0430\u0432\u043a\u0443 FBO</summary>\n\n| \u2713 | \u0410\u0434\u0440\u0435\u0441 \u043c\u0435\u0442\u043e\u0434\u0430 Ozon | \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u0430 | Python-\u043c\u0435\u0442\u043e\u0434 |\n|---|---|---|---|\n| \u2610 | `/v1/cluster/list` | \u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430\u0445 \u0438 \u0438\u0445 \u0441\u043a\u043b\u0430\u0434\u0430\u0445 | `cluster_list()` |\n| \u2610 | `/v1/warehouse/fbo/list` | \u041f\u043e\u0438\u0441\u043a \u0442\u043e\u0447\u0435\u043a \u0434\u043b\u044f \u043e\u0442\u0433\u0440\u0443\u0437\u043a\u0438 \u043f\u043e\u0441\u0442\u0430\u0432\u043a\u0438 | `warehouse_fbo_list()` |\n| \u2610 | `/v1/draft/create` | \u0421\u043e\u0437\u0434\u0430\u0442\u044c \u0447\u0435\u0440\u043d\u043e\u0432\u0438\u043a \u0437\u0430\u044f\u0432\u043a\u0438 \u043d\u0430 \u043f\u043e\u0441\u0442\u0430\u0432\u043a\u0443 | `draft_create()` |\n| \u2610 | `/v1/draft/create/info` | \u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u0447\u0435\u0440\u043d\u043e\u0432\u0438\u043a\u0435 \u0437\u0430\u044f\u0432\u043a\u0438 \u043d\u0430 \u043f\u043e\u0441\u0442\u0430\u0432\u043a\u0443 | `draft_create_info()` |\n| \u2610 | `/v1/draft/timeslot/info` | \u0414\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0435 \u0442\u0430\u0439\u043c\u0441\u043b\u043e\u0442\u044b | `draft_timeslot_info()` |\n| \u2610 | `/v1/draft/supply/create` | \u0421\u043e\u0437\u0434\u0430\u0442\u044c \u0437\u0430\u044f\u0432\u043a\u0443 \u043d\u0430 \u043f\u043e\u0441\u0442\u0430\u0432\u043a\u0443 \u043f\u043e \u0447\u0435\u0440\u043d\u043e\u0432\u0438\u043a\u0443 | `draft_supply_create()` |\n| \u2610 | `/v1/draft/supply/create/status` | \u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u0437\u0430\u044f\u0432\u043a\u0438 \u043d\u0430 \u043f\u043e\u0441\u0442\u0430\u0432\u043a\u0443 | `draft_supply_create_status()` |\n| \u2610 | `/v1/cargoes/create` | \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0433\u0440\u0443\u0437\u043e\u043c\u0435\u0441\u0442 | `cargoes_create()` |\n| \u2610 | `/v2/cargoes/create/info` | \u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043f\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435 \u0433\u0440\u0443\u0437\u043e\u043c\u0435\u0441\u0442 | `cargoes_create_info()` |\n| \u2610 | `/v1/cargoes/delete` | \u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0433\u0440\u0443\u0437\u043e\u043c\u0435\u0441\u0442\u043e \u0432 \u0437\u0430\u044f\u0432\u043a\u0435 \u043d\u0430 \u043f\u043e\u0441\u0442\u0430\u0432\u043a\u0443 | `cargoes_delete()` |\n| \u2610 | `/v1/cargoes/delete/status` | \u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u0441\u0442\u0430\u0442\u0443\u0441\u0435 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f \u0433\u0440\u0443\u0437\u043e\u043c\u0435\u0441\u0442\u0430 | `cargoes_delete_status()` |\n| \u2610 | `/v1/cargoes/rules/get` | \u0427\u0435\u043a-\u043b\u0438\u0441\u0442 \u043f\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435 \u0433\u0440\u0443\u0437\u043e\u043c\u0435\u0441\u0442 FBO | `cargoes_rules_get()` |\n| \u2610 | `/v1/cargoes-label/create` | \u0421\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u044d\u0442\u0438\u043a\u0435\u0442\u043a\u0438 \u0434\u043b\u044f \u0433\u0440\u0443\u0437\u043e\u043c\u0435\u0441\u0442 | `cargoes_label_create()` |\n| \u2610 | `/v1/cargoes-label/get` | \u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u044d\u0442\u0438\u043a\u0435\u0442\u043a\u0438 \u0434\u043b\u044f \u0433\u0440\u0443\u0437\u043e\u043c\u0435\u0441\u0442 | `cargoes_label_get()` |\n| \u2610 | `/v1/cargoes-label/file/{file_guid}` | \u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c PDF \u0441 \u044d\u0442\u0438\u043a\u0435\u0442\u043a\u0430\u043c\u0438 \u0433\u0440\u0443\u0437\u043e\u0432\u044b\u0445 \u043c\u0435\u0441\u0442 | `cargoes_label_file()` |\n| \u2610 | `/v1/supply-order/cancel` | \u041e\u0442\u043c\u0435\u043d\u0438\u0442\u044c \u0437\u0430\u044f\u0432\u043a\u0443 \u043d\u0430 \u043f\u043e\u0441\u0442\u0430\u0432\u043a\u0443 | `supply_order_cancel()` |\n| \u2610 | `/v1/supply-order/cancel/status` | \u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0441\u0442\u0430\u0442\u0443\u0441 \u043e\u0442\u043c\u0435\u043d\u044b \u0437\u0430\u044f\u0432\u043a\u0438 \u043d\u0430 \u043f\u043e\u0441\u0442\u0430\u0432\u043a\u0443 | `supply_order_cancel_status()` |\n| \u2610 | `/v1/supply-order/content/update` | \u0420\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0442\u043e\u0432\u0430\u0440\u043d\u043e\u0433\u043e \u0441\u043e\u0441\u0442\u0430\u0432\u0430 | `supply_order_content_update()` |\n| \u2610 | `/v1/supply-order/content/update/status` | \u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u0441\u0442\u0430\u0442\u0443\u0441\u0435 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0442\u043e\u0432\u0430\u0440\u043d\u043e\u0433\u043e \u0441\u043e\u0441\u0442\u0430\u0432\u0430 | `supply_order_content_update_status()` |\n</details>\n<details>\n<summary>\u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043a\u043e\u0434\u0430\u043c\u0438 \u043c\u0430\u0440\u043a\u0438\u0440\u043e\u0432\u043a\u0438 \u0438 \u0441\u0431\u043e\u0440\u043a\u043e\u0439 \u0437\u0430\u043a\u0430\u0437\u043e\u0432 \u0434\u043b\u044f FBS/rFBS (2)</summary>\n\n| \u2713 | \u0410\u0434\u0440\u0435\u0441 \u043c\u0435\u0442\u043e\u0434\u0430 Ozon | \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u0430 | Python-\u043c\u0435\u0442\u043e\u0434 |\n|---|---|---|---|\n| \u2610 | `/v6/fbs/posting/product/exemplar/create-or-get` | \u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0445 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u043e\u0432 | `fbs_posting_product_exemplar_create_or_get()` |\n| \u2610 | `/v5/fbs/posting/product/exemplar/validate` | \u0412\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u044f \u043a\u043e\u0434\u043e\u0432 \u043c\u0430\u0440\u043a\u0438\u0440\u043e\u0432\u043a\u0438 | `fbs_posting_product_exemplar_validate()` |\n| \u2713 | `/v6/fbs/posting/product/exemplar/set` | \u041f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u043e\u0432 | `fbs_posting_product_exemplar_set()` |\n| \u2713 | `/v5/fbs/posting/product/exemplar/status` | \u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0441\u0442\u0430\u0442\u0443\u0441 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u043e\u0432 | `fbs_posting_product_exemplar_status()` |\n| \u2610 | `/v4/posting/fbs/ship` | \u0421\u043e\u0431\u0440\u0430\u0442\u044c \u0437\u0430\u043a\u0430\u0437 (\u0432\u0435\u0440\u0441\u0438\u044f 4) | `posting_fbs_ship()` |\n| \u2610 | `/v4/posting/fbs/ship/package` | \u0427\u0430\u0441\u0442\u0438\u0447\u043d\u0430\u044f \u0441\u0431\u043e\u0440\u043a\u0430 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f (\u0432\u0435\u0440\u0441\u0438\u044f 4) | `posting_fbs_ship_package()` |\n| \u2610 | `/v1/fbs/posting/product/exemplar/update` | \u041e\u0431\u043d\u043e\u0432\u0438\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u043e\u0432 | `fbs_posting_product_exemplar_update()` |\n</details>\n<details>\n<summary>\u0414\u043e\u0441\u0442\u0430\u0432\u043a\u0430 FBS</summary>\n\n| \u2713 | \u0410\u0434\u0440\u0435\u0441 \u043c\u0435\u0442\u043e\u0434\u0430 Ozon | \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u0430 | Python-\u043c\u0435\u0442\u043e\u0434 |\n|---|---|---|---|\n| \u2610 | `/v1/carriage/create` | \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043e\u0442\u0433\u0440\u0443\u0437\u043a\u0438 | `carriage_create()` |\n| \u2610 | `/v1/carriage/approve` | \u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u0435 \u043e\u0442\u0433\u0440\u0443\u0437\u043a\u0438 | `carriage_approve()` |\n| \u2610 | `/v1/carriage/set-postings` | \u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0441\u043e\u0441\u0442\u0430\u0432\u0430 \u043e\u0442\u0433\u0440\u0443\u0437\u043a\u0438 | `carriage_set_postings()` |\n| \u2610 | `/v1/carriage/cancel` | \u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u043e\u0442\u0433\u0440\u0443\u0437\u043a\u0438 | `carriage_cancel()` |\n| \u2610 | `/v1/carriage/delivery/list` | \u0421\u043f\u0438\u0441\u043e\u043a \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0438 \u0438 \u043e\u0442\u0433\u0440\u0443\u0437\u043e\u043a | `carriage_delivery_list()` |\n| \u2610 | `/v2/posting/fbs/act/create` | \u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u044c \u043e\u0442\u0433\u0440\u0443\u0437\u043a\u0443 \u0438 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u044b | `posting_fbs_act_create()` |\n| \u2610 | `/v1/posting/carriage-available/list` | \u0421\u043f\u0438\u0441\u043e\u043a \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 \u043f\u0435\u0440\u0435\u0432\u043e\u0437\u043e\u043a | `posting_carriage_available_list()` |\n| \u2610 | `/v1/carriage/get` | \u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u043f\u0435\u0440\u0435\u0432\u043e\u0437\u043a\u0435 | `carriage_get()` |\n| \u2610 | `/v1/posting/fbs/split` | \u0420\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u044c \u0437\u0430\u043a\u0430\u0437 \u043d\u0430 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0431\u0435\u0437 \u0441\u0431\u043e\u0440\u043a\u0438 | `posting_fbs_split()` |\n| \u2610 | `/v2/posting/fbs/act/get-postings` | \u0421\u043f\u0438\u0441\u043e\u043a \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0439 \u0432 \u0430\u043a\u0442\u0435 | `posting_fbs_act_get_postings()` |\n| \u2610 | `/v2/posting/fbs/act/get-container-labels` | \u042d\u0442\u0438\u043a\u0435\u0442\u043a\u0438 \u0434\u043b\u044f \u0433\u0440\u0443\u0437\u043e\u0432\u043e\u0433\u043e \u043c\u0435\u0441\u0442\u0430 | `posting_fbs_act_get_container_labels()` |\n| \u2610 | `/v2/posting/fbs/act/get-barcode` | \u0428\u0442\u0440\u0438\u0445\u043a\u043e\u0434 \u0434\u043b\u044f \u043e\u0442\u0433\u0440\u0443\u0437\u043a\u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f | `posting_fbs_act_get_barcode()` |\n| \u2610 | `/v2/posting/fbs/act/get-barcode/text` | \u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0448\u0442\u0440\u0438\u0445\u043a\u043e\u0434\u0430 \u0434\u043b\u044f \u043e\u0442\u0433\u0440\u0443\u0437\u043a\u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f | `posting_fbs_act_get_barcode_text()` |\n| \u2610 | `/v2/posting/fbs/digital/act/check-status` | \u0421\u0442\u0430\u0442\u0443\u0441 \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u0430\u043a\u043b\u0430\u0434\u043d\u043e\u0439 | `posting_fbs_digital_act_check_status()` |\n| \u2610 | `/v2/posting/fbs/act/get-pdf` | \u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c PDF c \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u043c\u0438 | `posting_fbs_act_get_pdf()` |\n| \u2610 | `/v2/posting/fbs/act/list` | \u0421\u043f\u0438\u0441\u043e\u043a \u0430\u043a\u0442\u043e\u0432 \u043f\u043e \u043e\u0442\u0433\u0440\u0443\u0437\u043a\u0430\u043c | `posting_fbs_act_list()` |\n| \u2610 | `/v2/posting/fbs/digital/act/get-pdf` | \u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043b\u0438\u0441\u0442 \u043e\u0442\u0433\u0440\u0443\u0437\u043a\u0438 \u043f\u043e \u043f\u0435\u0440\u0435\u0432\u043e\u0437\u043a\u0435 | `posting_fbs_digital_act_get_pdf()` |\n| \u2610 | `/v2/posting/fbs/act/check-status` | \u0421\u0442\u0430\u0442\u0443\u0441 \u043e\u0442\u0433\u0440\u0443\u0437\u043a\u0438 \u0438 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043e\u0432 | `posting_fbs_act_check_status()` |\n</details>\n<details>\n<summary>\u0414\u043e\u0441\u0442\u0430\u0432\u043a\u0430 rFBS</summary>\n\n| \u2713 | \u0410\u0434\u0440\u0435\u0441 \u043c\u0435\u0442\u043e\u0434\u0430 Ozon | \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u0430 | Python-\u043c\u0435\u0442\u043e\u0434 |\n|---|---|---|---|\n| \u2610 | `/v2/fbs/posting/tracking-number/set` | \u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0442\u0440\u0435\u043a-\u043d\u043e\u043c\u0435\u0440\u0430 | `fbs_posting_tracking_number_set()` |\n| \u2610 | `/v2/fbs/posting/sent-by-seller` | \u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0441\u0442\u0430\u0442\u0443\u0441 \u043d\u0430 \u00ab\u041e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043e \u043f\u0440\u043e\u0434\u0430\u0432\u0446\u043e\u043c\u00bb | `fbs_posting_sent_by_seller()` |\n| \u2610 | `/v2/fbs/posting/delivering` | \u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0441\u0442\u0430\u0442\u0443\u0441 \u043d\u0430 \u00ab\u0414\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f\u00bb | `fbs_posting_delivering()` |\n| \u2610 | `/v2/fbs/posting/last-mile` | \u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0441\u0442\u0430\u0442\u0443\u0441 \u043d\u0430 \u00ab\u041f\u043e\u0441\u043b\u0435\u0434\u043d\u044f\u044f \u043c\u0438\u043b\u044f\u00bb | `fbs_posting_last_mile()` |\n| \u2610 | `/v2/fbs/posting/delivered` | \u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0441\u0442\u0430\u0442\u0443\u0441 \u043d\u0430 \u00ab\u0414\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043e\u00bb | `fbs_posting_delivered()` |\n| \u2610 | `/v1/posting/fbs/timeslot/change-restrictions` | \u0414\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0435 \u0434\u0430\u0442\u044b \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0430 \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0438 | `posting_fbs_timeslot_change_restrictions()` |\n| \u2610 | `/v1/posting/fbs/timeslot/set` | \u041f\u0435\u0440\u0435\u043d\u0435\u0441\u0442\u0438 \u0434\u0430\u0442\u0443 \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0438 | `posting_fbs_timeslot_set()` |\n| \u2610 | `/v1/posting/cutoff/set` | \u0423\u0442\u043e\u0447\u043d\u0438\u0442\u044c \u0434\u0430\u0442\u0443 \u043e\u0442\u0433\u0440\u0443\u0437\u043a\u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f | `posting_cutoff_set()` |\n</details>\n<details>\n<summary>\u041f\u0440\u043e\u043f\u0443\u0441\u043a\u0438</summary>\n\n| \u2713 | \u0410\u0434\u0440\u0435\u0441 \u043c\u0435\u0442\u043e\u0434\u0430 Ozon | \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u0430 | Python-\u043c\u0435\u0442\u043e\u0434 |\n|---|---|---|---|\n| \u2610 | `/v1/pass/list` | \u0421\u043f\u0438\u0441\u043e\u043a \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u043e\u0432 | `pass_list()` |\n| \u2610 | `/v1/carriage/pass/create` | \u0421\u043e\u0437\u0434\u0430\u0442\u044c \u043f\u0440\u043e\u043f\u0443\u0441\u043a | `carriage_pass_create()` |\n| \u2610 | `/v1/carriage/pass/update` | \u041e\u0431\u043d\u043e\u0432\u0438\u0442\u044c \u043f\u0440\u043e\u043f\u0443\u0441\u043a | `carriage_pass_update()` |\n| \u2610 | `/v1/carriage/pass/delete` | \u0423\u0434\u0430\u043b\u0438\u0442\u044c \u043f\u0440\u043e\u043f\u0443\u0441\u043a | `carriage_pass_delete()` |\n| \u2610 | `/v1/return/pass/create` | \u0421\u043e\u0437\u0434\u0430\u0442\u044c \u043f\u0440\u043e\u043f\u0443\u0441\u043a \u0434\u043b\u044f \u0432\u043e\u0437\u0432\u0440\u0430\u0442\u0430 | `return_pass_create()` |\n| \u2610 | `/v1/return/pass/update` | \u041e\u0431\u043d\u043e\u0432\u0438\u0442\u044c \u043f\u0440\u043e\u043f\u0443\u0441\u043a \u0434\u043b\u044f \u0432\u043e\u0437\u0432\u0440\u0430\u0442\u0430 | `return_pass_update()` |\n| \u2610 | `/v1/return/pass/delete` | \u0423\u0434\u0430\u043b\u0438\u0442\u044c \u043f\u0440\u043e\u043f\u0443\u0441\u043a \u0434\u043b\u044f \u0432\u043e\u0437\u0432\u0440\u0430\u0442\u0430 | `return_pass_delete()` |\n</details>\n<details>\n<summary>\u0412\u043e\u0437\u0432\u0440\u0430\u0442\u044b \u0442\u043e\u0432\u0430\u0440\u043e\u0432 FBO \u0438 FBS</summary>\n\n| \u2713 | \u0410\u0434\u0440\u0435\u0441 \u043c\u0435\u0442\u043e\u0434\u0430 Ozon | \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u0430 | Python-\u043c\u0435\u0442\u043e\u0434 |\n|---|---|---|---|\n| \u2610 | `/v1/returns/list` | \u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u0432\u043e\u0437\u0432\u0440\u0430\u0442\u0430\u0445 FBO \u0438 FBS | `returns_list()` |\n</details>\n<details>\n<summary>\u0412\u043e\u0437\u0432\u0440\u0430\u0442\u044b \u0442\u043e\u0432\u0430\u0440\u043e\u0432 rFBS</summary>\n\n| \u2713 | \u0410\u0434\u0440\u0435\u0441 \u043c\u0435\u0442\u043e\u0434\u0430 Ozon | \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u0430 | Python-\u043c\u0435\u0442\u043e\u0434 |\n|---|---|---|---|\n| \u2610 | `/v2/returns/rfbs/list` | \u0421\u043f\u0438\u0441\u043e\u043a \u0437\u0430\u044f\u0432\u043e\u043a \u043d\u0430 \u0432\u043e\u0437\u0432\u0440\u0430\u0442 | `returns_rfbs_list()` |\n| \u2610 | `/v2/returns/rfbs/get` | \u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u0437\u0430\u044f\u0432\u043a\u0435 \u043d\u0430 \u0432\u043e\u0437\u0432\u0440\u0430\u0442 | `returns_rfbs_get()` |\n| \u2610 | `/v2/returns/rfbs/reject` | \u041e\u0442\u043a\u043b\u043e\u043d\u0438\u0442\u044c \u0437\u0430\u044f\u0432\u043a\u0443 \u043d\u0430 \u0432\u043e\u0437\u0432\u0440\u0430\u0442 | `returns_rfbs_reject()` |\n| \u2610 | `/v2/returns/rfbs/compensate` | \u0412\u0435\u0440\u043d\u0443\u0442\u044c \u0447\u0430\u0441\u0442\u044c \u0441\u0442\u043e\u0438\u043c\u043e\u0441\u0442\u0438 \u0442\u043e\u0432\u0430\u0440\u0430 | `returns_rfbs_compensate()` |\n| \u2610 | `/v2/returns/rfbs/verify` | \u041e\u0434\u043e\u0431\u0440\u0438\u0442\u044c \u0437\u0430\u044f\u0432\u043a\u0443 \u043d\u0430 \u0432\u043e\u0437\u0432\u0440\u0430\u0442 | `returns_rfbs_verify()` |\n| \u2610 | `/v2/returns/rfbs/receive-return` | \u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u044c \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0442\u043e\u0432\u0430\u0440\u0430 \u043d\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443 | `returns_rfbs_receive_return()` |\n| \u2610 | `/v2/returns/rfbs/return-money` | \u0412\u0435\u0440\u043d\u0443\u0442\u044c \u0434\u0435\u043d\u044c\u0433\u0438 \u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u044e | `returns_rfbs_return_money()` |\n| \u2610 | `/v1/returns/rfbs/action/set` | \u041f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0434\u043b\u044f rFBS \u0432\u043e\u0437\u0432\u0440\u0430\u0442\u043e\u0432 | `returns_rfbs_action_set()` |\n</details>\n<details>\n<summary>\u0412\u043e\u0437\u0432\u0440\u0430\u0442\u043d\u044b\u0435 \u043e\u0442\u0433\u0440\u0443\u0437\u043a\u0438</summary>\n\n| \u2713 | \u0410\u0434\u0440\u0435\u0441 \u043c\u0435\u0442\u043e\u0434\u0430 Ozon | \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u0430 | Python-\u043c\u0435\u0442\u043e\u0434 |\n|---|---|---|---|\n| \u2610 | `/v1/returns/company/fbs/info` | \u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0432\u043e\u0437\u0432\u0440\u0430\u0442\u043e\u0432 FBS | `returns_company_fbs_info()` |\n| \u2610 | `/v1/return/giveout/is-enabled` | \u041f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0432\u043e\u0437\u0432\u0440\u0430\u0442\u043d\u044b\u0445 \u043e\u0442\u0433\u0440\u0443\u0437\u043e\u043a \u043f\u043e \u0448\u0442\u0440\u0438\u0445\u043a\u043e\u0434\u0443 | `return_giveout_is_enabled()` |\n| \u2610 | `/v1/return/giveout/list` | \u0421\u043f\u0438\u0441\u043e\u043a \u0432\u043e\u0437\u0432\u0440\u0430\u0442\u043d\u044b\u0445 \u043e\u0442\u0433\u0440\u0443\u0437\u043a\u0438 | `return_giveout_list()` |\n| \u2610 | `/v1/return/giveout/info` | \u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u0432\u043e\u0437\u0432\u0440\u0430\u0442\u043d\u043e\u0439 \u043e\u0442\u0433\u0440\u0443\u0437\u043a\u0435 | `return_giveout_info()` |\n| \u2610 | `/v1/return/giveout/barcode` | \u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0448\u0442\u0440\u0438\u0445\u043a\u043e\u0434\u0430 \u0434\u043b\u044f \u0432\u043e\u0437\u0432\u0440\u0430\u0442\u043d\u044b\u0445 \u043e\u0442\u0433\u0440\u0443\u0437\u043e\u043a | `return_giveout_barcode()` |\n| \u2610 | `/v1/return/giveout/get-pdf` | \u0428\u0442\u0440\u0438\u0445\u043a\u043e\u0434 \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0432\u043e\u0437\u0432\u0440\u0430\u0442\u043d\u043e\u0439 \u043e\u0442\u0433\u0440\u0443\u0437\u043a\u0438 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 PDF | `return_giveout_get_pdf()` |\n| \u2610 | `/v1/return/giveout/get-png` | \u0428\u0442\u0440\u0438\u0445\u043a\u043e\u0434 \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0432\u043e\u0437\u0432\u0440\u0430\u0442\u043d\u043e\u0439 \u043e\u0442\u0433\u0440\u0443\u0437\u043a\u0438 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 PNG | `return_giveout_get_png()` |\n| \u2610 | `/v1/return/giveout/barcode-reset` | \u0421\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u043e\u0432\u044b\u0439 \u0448\u0442\u0440\u0438\u0445\u043a\u043e\u0434 | `return_giveout_barcode_reset()` |\n</details>\n<details>\n<summary>\u041e\u0442\u043c\u0435\u043d\u044b \u0437\u0430\u043a\u0430\u0437\u043e\u0432</summary>\n\n| \u2713 | \u0410\u0434\u0440\u0435\u0441 \u043c\u0435\u0442\u043e\u0434\u0430 Ozon | \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u0430 | Python-\u043c\u0435\u0442\u043e\u0434 |\n|---|---|---|---|\n| \u2610 | `/v2/conditional-cancellation/list` | \u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0441\u043f\u0438\u0441\u043e\u043a \u0437\u0430\u044f\u0432\u043e\u043a \u043d\u0430 \u043e\u0442\u043c\u0435\u043d\u0443 rFBS | `conditional_cancellation_list()` |\n| \u2610 | `/v2/conditional-cancellation/approve` | \u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u044c \u0437\u0430\u044f\u0432\u043a\u0443 \u043d\u0430 \u043e\u0442\u043c\u0435\u043d\u0443 rFBS | `conditional_cancellation_approve()` |\n| \u2610 | `/v2/conditional-cancellation/reject` | \u041e\u0442\u043a\u043b\u043e\u043d\u0438\u0442\u044c \u0437\u0430\u044f\u0432\u043a\u0443 \u043d\u0430 \u043e\u0442\u043c\u0435\u043d\u0443 rFBS | `conditional_cancellation_reject()` |\n</details>\n<details>\n<summary>\u0427\u0430\u0442\u044b \u0441 \u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u044f\u043c\u0438</summary>\n\n| \u2713 | \u0410\u0434\u0440\u0435\u0441 \u043c\u0435\u0442\u043e\u0434\u0430 Ozon | \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u0430 | Python-\u043c\u0435\u0442\u043e\u0434 |\n|---|---|---|---|\n| \u2610 | `/v1/chat/send/file` | \u041e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0444\u0430\u0439\u043b | `chat_send_file()` |\n| \u2610 | `/v3/chat/list` | \u0421\u043f\u0438\u0441\u043e\u043a \u0447\u0430\u0442\u043e\u0432 | `chat_list()` |\n| \u2610 | `/v2/chat/history` | \u0418\u0441\u0442\u043e\u0440\u0438\u044f \u0447\u0430\u0442\u0430 | `chat_history()` |\n</details>\n<details>\n<summary>\u041d\u0430\u043a\u043b\u0430\u0434\u043d\u044b\u0435</summary>\n\n| \u2713 | \u0410\u0434\u0440\u0435\u0441 \u043c\u0435\u0442\u043e\u0434\u0430 Ozon | \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u0430 | Python-\u043c\u0435\u0442\u043e\u0434 |\n|---|---|---|---|\n| \u2610 | `/v2/invoice/create-or-update` | \u0421\u043e\u0437\u0434\u0430\u0442\u044c \u0438\u043b\u0438 \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0441\u0447\u0451\u0442-\u0444\u0430\u043a\u0442\u0443\u0440\u0443 | `invoice_create_or_update()` |\n| \u2610 | `/v1/invoice/file/upload` | \u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0441\u0447\u0451\u0442\u0430-\u0444\u0430\u043a\u0442\u0443\u0440\u044b | `invoice_file_upload()` |\n| \u2610 | `/v2/invoice/get` | \u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u0441\u0447\u0451\u0442\u0435-\u0444\u0430\u043a\u0442\u0443\u0440\u0435 | `invoice_get()` |\n| \u2610 | `/v1/invoice/delete` | \u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0441\u0441\u044b\u043b\u043a\u0443 \u043d\u0430 \u0441\u0447\u0451\u0442-\u0444\u0430\u043a\u0442\u0443\u0440\u0443 | `invoice_delete()` |\n</details>\n<details>\n<summary>\u041e\u0442\u0447\u0451\u0442\u044b</summary>\n\n| \u2713 | \u0410\u0434\u0440\u0435\u0441 \u043c\u0435\u0442\u043e\u0434\u0430 Ozon | \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u0430 | Python-\u043c\u0435\u0442\u043e\u0434 |\n|---|---|---|---|\n| \u2610 | `/v1/report/info` | \u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e\u0431 \u043e\u0442\u0447\u0451\u0442\u0435 | `report_info()` |\n| \u2610 | `/v1/report/list` | \u0421\u043f\u0438\u0441\u043e\u043a \u043e\u0442\u0447\u0451\u0442\u043e\u0432 | `report_list()` |\n| \u2610 | `/v1/report/products/create` | \u041e\u0442\u0447\u0451\u0442 \u043f\u043e \u0442\u043e\u0432\u0430\u0440\u0430\u043c | `report_products_create()` |\n| \u2610 | `/v2/report/returns/create` | \u041e\u0442\u0447\u0451\u0442 \u043e \u0432\u043e\u0437\u0432\u0440\u0430\u0442\u0430\u0445 | `report_returns_create()` |\n| \u2610 | `/v1/report/postings/create` | \u041e\u0442\u0447\u0451\u0442 \u043e\u0431 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f\u0445 | `report_postings_create()` |\n| \u2610 | `/v1/finance/cash-flow-statement/list` | \u0424\u0438\u043d\u0430\u043d\u0441\u043e\u0432\u044b\u0439 \u043e\u0442\u0447\u0451\u0442 | `finance_cash_flow_statement_list()` |\n| \u2610 | `/v1/report/discounted/create` | \u041e\u0442\u0447\u0451\u0442 \u043e\u0431 \u0443\u0446\u0435\u043d\u0451\u043d\u043d\u044b\u0445 \u0442\u043e\u0432\u0430\u0440\u0430\u0445 | `report_discounted_create()` |\n| \u2610 | `/v1/report/warehouse/stock` | \u041e\u0442\u0447\u0451\u0442 \u043e\u0431 \u043e\u0441\u0442\u0430\u0442\u043a\u0430\u0445 \u043d\u0430 FBS-\u0441\u043a\u043b\u0430\u0434\u0435 | `report_warehouse_stock()` |\n</details>\n<details>\n<summary>\u0410\u043d\u0430\u043b\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043e\u0442\u0447\u0451\u0442\u044b</summary>\n\n| \u2713 | \u0410\u0434\u0440\u0435\u0441 \u043c\u0435\u0442\u043e\u0434\u0430 Ozon | \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u0430 | Python-\u043c\u0435\u0442\u043e\u0434 |\n|---|---|---|---|\n| \u2610 | `/v2/analytics/stock_on_warehouses` | \u041e\u0442\u0447\u0451\u0442 \u043f\u043e \u043e\u0441\u0442\u0430\u0442\u043a\u0430\u043c \u0438 \u0442\u043e\u0432\u0430\u0440\u0430\u043c | `analytics_stock_on_warehouses()` |\n| \u2610 | `/v1/analytics/turnover/stocks` | \u041e\u0431\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0435\u043c\u043e\u0441\u0442\u044c \u0442\u043e\u0432\u0430\u0440\u0430 | `analytics_turnover_stocks()` |\n</details>\n<details>\n<summary>\u0424\u0438\u043d\u0430\u043d\u0441\u043e\u0432\u044b\u0435 \u043e\u0442\u0447\u0435\u0442\u044b</summary>\n\n| \u2713 | \u0410\u0434\u0440\u0435\u0441 \u043c\u0435\u0442\u043e\u0434\u0430 Ozon | \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u0430 | Python-\u043c\u0435\u0442\u043e\u0434 |\n|---|---|---|---|\n| \u2610 | `/v2/finance/realization` | \u041e\u0442\u0447\u0451\u0442 \u043e \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0442\u043e\u0432\u0430\u0440\u043e\u0432 (\u0432\u0435\u0440\u0441\u0438\u044f 2) | `finance_realization()` |\n| \u2610 | `/v1/finance/realization/posting` | \u041f\u043e\u0437\u0430\u043a\u0430\u0437\u043d\u044b\u0439 \u043e\u0442\u0447\u0451\u0442 \u043e \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0442\u043e\u0432\u0430\u0440\u043e\u0432 | `finance_realization_posting()` |\n| \u2610 | `/v3/finance/transaction/list` | \u0421\u043f\u0438\u0441\u043e\u043a \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0439 | `finance_transaction_list()` |\n| \u2610 | `/v3/finance/transaction/totals` | \u0421\u0443\u043c\u043c\u044b \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0439 | `finance_transaction_totals()` |\n| \u2610 | `/v1/finance/document-b2b-sales` | \u0420\u0435\u0435\u0441\u0442\u0440 \u043f\u0440\u043e\u0434\u0430\u0436 \u044e\u0440\u0438\u0434\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u043b\u0438\u0446\u0430\u043c | `finance_document_b2b_sales()` |\n| \u2610 | `/v1/finance/document-b2b-sales/json` | \u0420\u0435\u0435\u0441\u0442\u0440 \u043f\u0440\u043e\u0434\u0430\u0436 \u044e\u0440\u0438\u0434\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u043b\u0438\u0446\u0430\u043c \u0432 JSON-\u0444\u043e\u0440\u043c\u0430\u0442\u0435 | `finance_document_b2b_sales_json()` |\n| \u2610 | `/v1/finance/mutual-settlement` | \u041e\u0442\u0447\u0451\u0442 \u043e \u0432\u0437\u0430\u0438\u043c\u043e\u0440\u0430\u0441\u0447\u0451\u0442\u0430\u0445 | `finance_mutual_settlement()` |\n| \u2610 | `/v1/finance/products/buyout` | \u041e\u0442\u0447\u0451\u0442 \u043e \u0432\u044b\u043a\u0443\u043f\u043b\u0435\u043d\u043d\u044b\u0445 \u0442\u043e\u0432\u0430\u0440\u0430\u0445 | `finance_products_buyout()` |\n| \u2610 | `/v1/finance/compensation` | \u041e\u0442\u0447\u0451\u0442 \u043e \u043a\u043e\u043c\u043f\u0435\u043d\u0441\u0430\u0446\u0438\u044f\u0445 | `finance_compensation()` |\n| \u2610 | `/v1/finance/decompensation` | \u041e\u0442\u0447\u0451\u0442 \u043e \u0434\u0435\u043a\u043e\u043c\u043f\u0435\u043d\u0441\u0430\u0446\u0438\u044f\u0445 | `finance_decompensation()` |\n</details>\n<details>\n<summary>\u0420\u0435\u0439\u0442\u0438\u043d\u0433 \u043f\u0440\u043e\u0434\u0430\u0432\u0446\u0430</summary>\n\n| \u2713 | \u0410\u0434\u0440\u0435\u0441 \u043c\u0435\u0442\u043e\u0434\u0430 Ozon | \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u0430 | Python-\u043c\u0435\u0442\u043e\u0434 |\n|---|---|---|---|\n| \u2610 | `/v1/rating/summary` | \u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u0442\u0435\u043a\u0443\u0449\u0438\u0445 \u0440\u0435\u0439\u0442\u0438\u043d\u0433\u0430\u0445 \u043f\u0440\u043e\u0434\u0430\u0432\u0446\u0430 | `rating_summary()` |\n| \u2610 | `/v1/rating/history` | \u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u0440\u0435\u0439\u0442\u0438\u043d\u0433\u0430\u0445 \u043f\u0440\u043e\u0434\u0430\u0432\u0446\u0430 \u0437\u0430 \u043f\u0435\u0440\u0438\u043e\u0434 | `rating_history()` |\n</details>\n<details>\n<summary>\u041f\u0440\u043e\u0447\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u044b (1)</summary>\n\n| \u2713 | \u0410\u0434\u0440\u0435\u0441 \u043c\u0435\u0442\u043e\u0434\u0430 Ozon | \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u0430                                           | Python-\u043c\u0435\u0442\u043e\u0434                                |\n|---|---|-----------------------------------------------------------|---------------------------------------------|\n| \u2610 | `/v1/analytics/manage/stocks` | \u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043e\u0441\u0442\u0430\u0442\u043a\u0430\u043c\u0438                                      | `analytics_manage_stocks()`                 |\n| \u2713 | `/v1/analytics/stocks` | \u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0443 \u043f\u043e \u043e\u0441\u0442\u0430\u0442\u043a\u0430\u043c                            | `analytics_stocks()`                        |\n| \u2610 | `/v1/analytics/average-delivery-time` | \u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0443 \u043f\u043e \u0441\u0440\u0435\u0434\u043d\u0435\u043c\u0443 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0438           | `analytics_average_delivery_time()`         |\n| \u2610 | `/v1/analytics/average-delivery-time/details` | \u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0434\u0435\u0442\u0430\u043b\u044c\u043d\u0443\u044e \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0443 \u043f\u043e \u0441\u0440\u0435\u0434\u043d\u0435\u043c\u0443 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0438 | `analytics_average_delivery_time_details()` |\n| \u2610 | `/v1/analytics/average-delivery-time/summary` | \u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043e\u0431\u0449\u0443\u044e \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0443 \u043f\u043e \u0441\u0440\u0435\u0434\u043d\u0435\u043c\u0443 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0438     | `analytics_average_delivery_time_summary()` |\n| \u2610 | `/v1/product/info/wrong-volume` | \u0421\u043f\u0438\u0441\u043e\u043a \u0442\u043e\u0432\u0430\u0440\u043e\u0432 \u0441 \u043d\u0435\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u044b\u043c\u0438 \u041e\u0412\u0425                        | `product_info_wrong_volume()`               |\n| \u2610 | `/v1/removal/from-supply/list` | \u041e\u0442\u0447\u0451\u0442 \u043f\u043e \u0432\u044b\u0432\u043e\u0437\u0443 \u0438 \u0443\u0442\u0438\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0441 \u043f\u043e\u0441\u0442\u0430\u0432\u043a\u0438 FBO               | `removal_from_supply_list()`                |\n| \u2610 | `/v1/removal/from-stock/list` | \u041e\u0442\u0447\u0451\u0442 \u043f\u043e \u0432\u044b\u0432\u043e\u0437\u0443 \u0438 \u0443\u0442\u0438\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0441\u043e \u0441\u0442\u043e\u043a\u0430 FBO                 | `removal_from_stock_list()`                 |\n| \u2610 | `/v1/report/marked-products-sales/create` | \u041e\u0442\u0447\u0451\u0442 \u043f\u043e \u043f\u0440\u043e\u0434\u0430\u0436\u0430\u043c \u0442\u043e\u0432\u0430\u0440\u043e\u0432 \u0441 \u043c\u0430\u0440\u043a\u0438\u0440\u043e\u0432\u043a\u043e\u0439                   | `report_marked_products_sales_create()`     |\n| \u2610 | `/v3/supply-order/list` | \u0421\u043f\u0438\u0441\u043e\u043a \u0437\u0430\u044f\u0432\u043e\u043a \u043d\u0430 \u043f\u043e\u0441\u0442\u0430\u0432\u043a\u0443 \u043d\u0430 \u0441\u043a\u043b\u0430\u0434 Ozon                   | `supply_order_list()`                       |\n| \u2610 | `/v3/supply-order/get` | \u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u0437\u0430\u044f\u0432\u043a\u0435 \u043d\u0430 \u043f\u043e\u0441\u0442\u0430\u0432\u043a\u0443                           | `supply_order_get()`                        |\n| \u2610 | `/v1/supply-order/content/update/validation` | \u041f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u043d\u043e\u0432\u044b\u0439 \u0442\u043e\u0432\u0430\u0440\u043d\u044b\u0439 \u0441\u043e\u0441\u0442\u0430\u0432                           | `supply_order_content_update_validation()`  |\n| \u2610 | `/v1/product/info/warehouse/stocks` | \u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043f\u043e \u043e\u0441\u0442\u0430\u0442\u043a\u0430\u043c \u043d\u0430 \u0441\u043a\u043b\u0430\u0434\u0435 FBS \u0438 rFBS      | `product_info_warehouse_stocks()`           |\n</details>\n<details>\n<summary>\u0420\u0430\u0431\u043e\u0442\u0430 \u0441 \u0446\u0438\u0444\u0440\u043e\u0432\u044b\u043c\u0438 \u0442\u043e\u0432\u0430\u0440\u0430\u043c\u0438</summary>\n\n| \u2713 | \u0410\u0434\u0440\u0435\u0441 \u043c\u0435\u0442\u043e\u0434\u0430 Ozon | \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u0430 | Python-\u043c\u0435\u0442\u043e\u0434 |\n|---|---|---|---|\n| \u2610 | `/v1/posting/digital/codes/upload` | \u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u043a\u043e\u0434\u044b \u0446\u0438\u0444\u0440\u043e\u0432\u044b\u0445 \u0442\u043e\u0432\u0430\u0440\u043e\u0432 \u0434\u043b\u044f \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f | `posting_digital_codes_upload()` |\n| \u2610 | `/v1/posting/digital/list` | \u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0441\u043f\u0438\u0441\u043e\u043a \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0439 | `posting_digital_list()` |\n| \u2610 | `/v1/product/digital/stocks/import` | \u041e\u0431\u043d\u043e\u0432\u0438\u0442\u044c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0446\u0438\u0444\u0440\u043e\u0432\u044b\u0445 \u0442\u043e\u0432\u0430\u0440\u043e\u0432 | `product_digital_stocks_import()` |\n</details>\n<details>\n<summary>\u0420\u0430\u0431\u043e\u0442\u0430 \u0441 \u043a\u0432\u0430\u043d\u0442\u0430\u043c\u0438</summary>\n\n| \u2713 | \u0410\u0434\u0440\u0435\u0441 \u043c\u0435\u0442\u043e\u0434\u0430 Ozon | \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u0430 | Python-\u043c\u0435\u0442\u043e\u0434 |\n|---|---|---|---|\n| \u2610 | `/v1/product/quant/list` | \u0421\u043f\u0438\u0441\u043e\u043a \u044d\u043a\u043e\u043d\u043e\u043c-\u0442\u043e\u0432\u0430\u0440\u043e\u0432 | `product_quant_list()` |\n| \u2610 | `/v1/product/quant/info` | \u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e\u0431 \u044d\u043a\u043e\u043d\u043e\u043c-\u0442\u043e\u0432\u0430\u0440\u0435 | `product_quant_info()` |\n</details>\n<details>\n<summary>\u0420\u0430\u0431\u043e\u0442\u0430 \u0441 \u043e\u0442\u0437\u044b\u0432\u0430\u043c\u0438</summary>\n\n| \u2713 | \u0410\u0434\u0440\u0435\u0441 \u043c\u0435\u0442\u043e\u0434\u0430 Ozon | \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u0430 | Python-\u043c\u0435\u0442\u043e\u0434 |\n|---|---|---|---|\n| \u2610 | `/v1/review/comment/create` | \u041e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0439 \u043d\u0430 \u043e\u0442\u0437\u044b\u0432 | `review_comment_create()` |\n| \u2610 | `/v1/review/comment/delete` | \u0423\u0434\u0430\u043b\u0438\u0442\u044c \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0439 \u043d\u0430 \u043e\u0442\u0437\u044b\u0432 | `review_comment_delete()` |\n| \u2610 | `/v1/review/comment/list` | \u0421\u043f\u0438\u0441\u043e\u043a \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0435\u0432 \u043d\u0430 \u043e\u0442\u0437\u044b\u0432 | `review_comment_list()` |\n| \u2610 | `/v1/review/change-status` | \u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0441\u0442\u0430\u0442\u0443\u0441 \u043e\u0442\u0437\u044b\u0432\u043e\u0432 | `review_change_status()` |\n| \u2610 | `/v1/review/count` | \u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043e\u0442\u0437\u044b\u0432\u043e\u0432 \u043f\u043e \u0441\u0442\u0430\u0442\u0443\u0441\u0430\u043c | `review_count()` |\n| \u2610 | `/v1/review/info` | \u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e\u0431 \u043e\u0442\u0437\u044b\u0432\u0435 | `review_info()` |\n| \u2610 | `/v1/review/list` | \u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0441\u043f\u0438\u0441\u043e\u043a \u043e\u0442\u0437\u044b\u0432\u043e\u0432 | `review_list()` |\n</details>\n<details>\n<summary>\u0420\u0430\u0431\u043e\u0442\u0430 \u0441 \u0432\u043e\u043f\u0440\u043e\u0441\u0430\u043c\u0438 \u0438 \u043e\u0442\u0432\u0435\u0442\u0430\u043c\u0438</summary>\n\n| \u2713 | \u0410\u0434\u0440\u0435\u0441 \u043c\u0435\u0442\u043e\u0434\u0430 Ozon | \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u0430 | Python-\u043c\u0435\u0442\u043e\u0434 |\n|---|---|---|---|\n| \u2610 | `/v1/question/answer/create` | \u0421\u043e\u0437\u0434\u0430\u0442\u044c \u043e\u0442\u0432\u0435\u0442 \u043d\u0430 \u0432\u043e\u043f\u0440\u043e\u0441 | `question_answer_create()` |\n| \u2610 | `/v1/question/answer/delete` | \u0423\u0434\u0430\u043b\u0438\u0442\u044c \u043e\u0442\u0432\u0435\u0442 \u043d\u0430 \u0432\u043e\u043f\u0440\u043e\u0441 | `question_answer_delete()` |\n| \u2610 | `/v1/question/answer/list` | \u0421\u043f\u0438\u0441\u043e\u043a \u043e\u0442\u0432\u0435\u0442\u043e\u0432 \u043d\u0430 \u0432\u043e\u043f\u0440\u043e\u0441 | `question_answer_list()` |\n| \u2610 | `/v1/question/change-status` | \u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0441\u0442\u0430\u0442\u0443\u0441 \u0432\u043e\u043f\u0440\u043e\u0441\u043e\u0432 | `question_change_status()` |\n| \u2610 | `/v1/question/count` | \u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0432\u043e\u043f\u0440\u043e\u0441\u043e\u0432 \u043f\u043e \u0441\u0442\u0430\u0442\u0443\u0441\u0430\u043c | `question_count()` |\n| \u2610 | `/v1/question/info` | \u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u0432\u043e\u043f\u0440\u043e\u0441\u0435 | `question_info()` |\n| \u2610 | `/v1/question/list` | \u0421\u043f\u0438\u0441\u043e\u043a \u0432\u043e\u043f\u0440\u043e\u0441\u043e\u0432 | `question_list()` |\n| \u2610 | `/v1/question/top-sku` | \u0422\u043e\u0432\u0430\u0440\u044b \u0441 \u043d\u0430\u0438\u0431\u043e\u043b\u044c\u0448\u0438\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e\u043c \u0432\u043e\u043f\u0440\u043e\u0441\u043e\u0432 | `question_top_sku()` |\n</details>\n<details>\n<summary>\u0420\u0430\u0431\u043e\u0442\u0430 \u0441 FBS-\u0441\u043a\u043b\u0430\u0434\u0430\u043c\u0438</summary>\n\n| \u2713 | \u0410\u0434\u0440\u0435\u0441 \u043c\u0435\u0442\u043e\u0434\u0430 Ozon | \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u0430 | Python-\u043c\u0435\u0442\u043e\u0434 |\n|---|---|---|---|\n| \u2610 | `/v1/warehouse/fbs/create/drop-off/list` | \u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0441\u043f\u0438\u0441\u043e\u043a drop-off \u043f\u0443\u043d\u043a\u0442\u043e\u0432 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0441\u043a\u043b\u0430\u0434\u0430 | `warehouse_fbs_create_drop_off_list()` |\n| \u2610 | `/v1/warehouse/fbs/update/drop-off/list` | \u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0441\u043f\u0438\u0441\u043e\u043a drop-off \u043f\u0443\u043d\u043a\u0442\u043e\u0432 \u0434\u043b\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u0441\u043a\u043b\u0430\u0434\u0430 | `warehouse_fbs_update_drop_off_list()` |\n| \u2610 | `/v1/warehouse/fbs/create` | \u0421\u043e\u0437\u0434\u0430\u0442\u044c \u0441\u043a\u043b\u0430\u0434 | `warehouse_fbs_create()` |\n| \u2610 | `/v1/warehouse/fbs/update` | \u041e\u0431\u043d\u043e\u0432\u0438\u0442\u044c \u0441\u043a\u043b\u0430\u0434 | `warehouse_fbs_update()` |\n| \u2610 | `/v1/warehouse/operation/status` | \u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0441\u0442\u0430\u0442\u0443\u0441 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 | `warehouse_operation_status()` |\n| \u2610 | `/v2/warehouse/list` | \u0421\u043f\u0438\u0441\u043e\u043a \u0441\u043a\u043b\u0430\u0434\u043e\u0432 | `warehouse_list()` |\n| \u2610 | `/v1/warehouse/fbs/first-mile/update` | \u041e\u0431\u043d\u043e\u0432\u0438\u0442\u044c \u043f\u0435\u0440\u0432\u0443\u044e \u043c\u0438\u043b\u044e | `warehouse_fbs_first_mile_update()` |\n| \u2610 | `/v1/warehouse/archive` | \u041f\u0435\u0440\u0435\u043d\u0435\u0441\u0442\u0438 \u0441\u043a\u043b\u0430\u0434 \u0432 \u0430\u0440\u0445\u0438\u0432 | `warehouse_archive()` |\n| \u2610 | `/v1/warehouse/unarchive` | \u041f\u0435\u0440\u0435\u043d\u0435\u0441\u0442\u0438 \u0441\u043a\u043b\u0430\u0434 \u0438\u0437 \u0430\u0440\u0445\u0438\u0432\u0430 | `warehouse_unarchive()` |\n</details>\n<details>\n<summary>Premium-\u043c\u0435\u0442\u043e\u0434\u044b</summary>\n\n| \u2713 | \u0410\u0434\u0440\u0435\u0441 \u043c\u0435\u0442\u043e\u0434\u0430 Ozon | \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u0430 | Python-\u043c\u0435\u0442\u043e\u0434 |\n|---|---|---|---|\n| \u2610 | `/v1/chat/send/message` | \u041e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 | `chat_send_message()` |\n| \u2610 | `/v1/chat/start` | \u0421\u043e\u0437\u0434\u0430\u0442\u044c \u043d\u043e\u0432\u044b\u0439 \u0447\u0430\u0442 | `chat_start()` |\n| \u2610 | `/v3/chat/history` | \u0418\u0441\u0442\u043e\u0440\u0438\u044f \u0447\u0430\u0442\u0430 | `chat_history()` |\n| \u2610 | `/v2/chat/read` | \u041e\u0442\u043c\u0435\u0442\u0438\u0442\u044c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u043a\u0430\u043a \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u043d\u043d\u044b\u0435 | `chat_read()` |\n| \u2610 | `/v1/analytics/data` | \u0414\u0430\u043d\u043d\u044b\u0435 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0438 | `analytics_data()` |\n| \u2610 | `/v1/analytics/product-queries` | \u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u0437\u0430\u043f\u0440\u043e\u0441\u0430\u0445 \u043c\u043e\u0438\u0445 \u0442\u043e\u0432\u0430\u0440\u043e\u0432 | `analytics_product_queries()` |\n| \u2610 | `/v1/analytics/product-queries/details` | \u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0434\u0435\u0442\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u043f\u043e \u0442\u043e\u0432\u0430\u0440\u0443 | `analytics_product_queries_details()` |\n| \u2610 | `/v1/finance/realization/by-day` | \u041e\u0442\u0447\u0451\u0442 \u043e \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0442\u043e\u0432\u0430\u0440\u043e\u0432 \u0437\u0430 \u0434\u0435\u043d\u044c | `finance_realization_by_day()` |\n| \u2610 | `/v1/search-queries/text` | \u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0441\u043f\u0438\u0441\u043e\u043a \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u044b\u0445 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u043f\u043e \u0442\u0435\u043a\u0441\u0442\u0443 | `search_queries_text()` |\n| \u2610 | `/v1/search-queries/top` | \u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0441\u043f\u0438\u0441\u043e\u043a \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0445 \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u044b\u0445 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 | `search_queries_top()` |\n</details>\n<details>\n<summary>\u041b\u043e\u0433\u0438\u0441\u0442\u0438\u043a\u0430 (Ozon Logistics)</summary>\n\n| \u2713 | \u0410\u0434\u0440\u0435\u0441 \u043c\u0435\u0442\u043e\u0434\u0430 Ozon | \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u0430 | Python-\u043c\u0435\u0442\u043e\u0434 |\n|---|---|---|---|\n| \u2610 | `/v1/delivery/check` | \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u0438 \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0438 Ozon \u0434\u043b\u044f \u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u044f | `delivery_check()` |\n| \u2610 | `/v1/delivery/map` | \u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0441\u043f\u0438\u0441\u043e\u043a \u0442\u043e\u0447\u0435\u043a \u0441\u0430\u043c\u043e\u0432\u044b\u0432\u043e\u0437\u0430 \u043d\u0430 \u043a\u0430\u0440\u0442\u0435 | `delivery_map()` |\n| \u2610 | `/v1/delivery/point/list` | \u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0441\u043f\u0438\u0441\u043e\u043a \u0432\u0441\u0435\u0445 \u0442\u043e\u0447\u0435\u043a \u0441\u0430\u043c\u043e\u0432\u044b\u0432\u043e\u0437\u0430 | `delivery_point_list()` |\n| \u2610 | `/v1/delivery/point/info` | \u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u043e\u0439 \u0442\u043e\u0447\u043a\u0435 \u0441\u0430\u043c\u043e\u0432\u044b\u0432\u043e\u0437\u0430 | `delivery_point_info()` |\n| \u2610 | `/v1/delivery/checkout` | \u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u0438 \u0442\u043e\u0432\u0430\u0440\u0430 \u0438 \u0440\u0430\u0441\u0447\u0435\u0442 \u0441\u0440\u043e\u043a\u043e\u0432 \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0438 | `delivery_checkout()` |\n| \u2610 | `/v1/order/create` | \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0437\u0430\u043a\u0430\u0437\u0430 | `order_create()` |\n| \u2610 | `/v1/posting/marks` | \u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0441\u043f\u0438\u0441\u043e\u043a \u043a\u043e\u0434\u043e\u0432 \u043c\u0430\u0440\u043a\u0438\u0440\u043e\u0432\u043e\u043a \u0442\u043e\u0432\u0430\u0440\u043e\u0432 | `posting_marks()` |\n| \u2610 | `/v1/cancel-reason/list` | \u0421\u043f\u0438\u0441\u043e\u043a \u043f\u0440\u0438\u0447\u0438\u043d \u043e\u0442\u043c\u0435\u043d \u0434\u043b\u044f \u0437\u0430\u043a\u0430\u0437\u0430 | `cancel_reason_list()` |\n| \u2610 | `/v1/cancel-reason/list-by-order` | \u0414\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u043e\u0442\u043c\u0435\u043d \u0434\u043b\u044f \u0437\u0430\u043a\u0430\u0437\u0430 | `cancel_reason_list_by_order()` |\n| \u2610 | `/v1/cancel-reason/list-by-posting` | \u0414\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u043e\u0442\u043c\u0435\u043d \u0434\u043b\u044f \u043f\u043e\u0441\u0442\u0438\u043d\u0433\u0430 \u0438\u0437 \u0437\u0430\u043a\u0430\u0437\u0430 | `cancel_reason_list_by_posting()` |\n| \u2610 | `/v1/order/cancel/check` | \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u0438 \u043e\u0442\u043c\u0435\u043d\u044b | `order_cancel_check()` |\n| \u2610 | `/v1/order/cancel` | \u041c\u0435\u0442\u043e\u0434 \u043e\u0442\u043c\u0435\u043d\u044b \u0437\u0430\u043a\u0430\u0437\u0430 | `order_cancel()` |\n| \u2610 | `/v1/posting/cancel` | \u041c\u0435\u0442\u043e\u0434 \u043e\u0442\u043c\u0435\u043d\u044b \u043f\u043e\u0441\u0442\u0438\u043d\u0433\u0430 \u0438\u0437 \u0437\u0430\u043a\u0430\u0437\u0430 | `posting_cancel()` |\n| \u2610 | `/v1/order/cancel/status` | \u0421\u0442\u0430\u0442\u0443\u0441 \u043e\u0442\u043c\u0435\u043d\u044b \u0437\u0430\u043a\u0430\u0437\u0430 | `order_cancel_status()` |\n| \u2610 | `/v1/posting/cancel/status` | \u0421\u0442\u0430\u0442\u0443\u0441 \u043e\u0442\u043c\u0435\u043d\u044b \u043f\u043e\u0441\u0442\u0438\u043d\u0433\u0430 \u0438\u0437 \u0437\u0430\u043a\u0430\u0437\u0430 | `posting_cancel_status()` |\n</details>\n\n---\n\n[MIT License](LICENSE)\n\n---\n\n*\u041f\u0440\u043e\u0435\u043a\u0442 \u043d\u0435 \u0430\u0444\u0444\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u043d \u0441 Ozon. \u0412\u0441\u0435 \u0442\u043e\u0440\u0433\u043e\u0432\u044b\u0435 \u043c\u0430\u0440\u043a\u0438 \u043f\u0440\u0438\u043d\u0430\u0434\u043b\u0435\u0436\u0430\u0442 \u0438\u0445 \u043f\u0440\u0430\u0432\u043e\u043e\u0431\u043b\u0430\u0434\u0430\u0442\u0435\u043b\u044f\u043c.*\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "\u0410\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u044b\u0439 pydantic-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0434\u043b\u044f Ozon Seller API c \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435\u043c \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0438 docstrings",
    "version": "0.13.0",
    "project_urls": {
        "Changelog": "https://github.com/a-ulianov/OzonAPI/releases",
        "Documentation": "https://github.com/a-ulianov/OzonAPI#readme",
        "Homepage": "https://github.com/a-ulianov/OzonAPI",
        "Issues": "https://github.com/a-ulianov/OzonAPI/issues",
        "Repository": "https://github.com/a-ulianov/OzonAPI"
    },
    "split_keywords": [
        "ozon",
        " api",
        " async",
        " ecommerce",
        " seller",
        " docstring",
        " pydantic",
        " analytics",
        " prices",
        " stocks"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "3b7fd7169c49ebbae2c876be06781fd9f992e22758999c792baaad087f9c8866",
                "md5": "c517aa7ca139e4bab37ba96317511df8",
                "sha256": "8df40fe3278f589041f43a82fcdeae07227f9bbc43a180c0b46c266a324e1b2b"
            },
            "downloads": -1,
            "filename": "ozonapi_async-0.13.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "c517aa7ca139e4bab37ba96317511df8",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4.0,>=3.9",
            "size": 217423,
            "upload_time": "2025-10-29T11:33:53",
            "upload_time_iso_8601": "2025-10-29T11:33:53.918520Z",
            "url": "https://files.pythonhosted.org/packages/3b/7f/d7169c49ebbae2c876be06781fd9f992e22758999c792baaad087f9c8866/ozonapi_async-0.13.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "097d8f8747a31a8a6fef91c67c3cc086413c9739e2a5c6688bb3b1b7d050bd63",
                "md5": "9795ad50a014a5e70607079646a6fbd8",
                "sha256": "ff7047013891cf73533305d00f9f952461af428143155d98b5dc03fb3b4f19af"
            },
            "downloads": -1,
            "filename": "ozonapi_async-0.13.0.tar.gz",
            "has_sig": false,
            "md5_digest": "9795ad50a014a5e70607079646a6fbd8",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4.0,>=3.9",
            "size": 141535,
            "upload_time": "2025-10-29T11:33:55",
            "upload_time_iso_8601": "2025-10-29T11:33:55.375319Z",
            "url": "https://files.pythonhosted.org/packages/09/7d/8f8747a31a8a6fef91c67c3cc086413c9739e2a5c6688bb3b1b7d050bd63/ozonapi_async-0.13.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-10-29 11:33:55",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "a-ulianov",
    "github_project": "OzonAPI",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [],
    "lcname": "ozonapi-async"
}
        
Elapsed time: 1.57989s