[](https://pypi.org/project/ozonapi-async/)
[](https://pypi.org/project/ozonapi-async/)
[](https://github.com/a-ulianov/OzonAPI)
[](https://github.com/a-ulianov/OzonAPI/actions/workflows/test.yml)
[](https://sonarcloud.io/summary/new_code?id=a-ulianov_OzonAPI)[](https://codecov.io/gh/a-ulianov/OzonAPI)
[](https://www.python.org/downloads/)
[](LICENSE)
# 🌀 OzonAPI
Предоставляет легковесный асинхронный pydantic-интерфейс для взаимодействия с **Ozon API Seller**.
**Поддерживает ограничения запросов, работу с несколькими client_id, гибкую настройку через `.env`.**
**✅ Актуально на 4-й квартал 2025 года.**
**🤝 Коммиты приветствуются!**
[](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": "[](https://pypi.org/project/ozonapi-async/)\n[](https://pypi.org/project/ozonapi-async/)\n[](https://github.com/a-ulianov/OzonAPI)\n[](https://github.com/a-ulianov/OzonAPI/actions/workflows/test.yml)\n[](https://sonarcloud.io/summary/new_code?id=a-ulianov_OzonAPI)[](https://codecov.io/gh/a-ulianov/OzonAPI) \n[](https://www.python.org/downloads/)\n[](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[](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"
}