Ozon Seller API: как работать с API маркетплейса для автоматизации продаж

Работа с Ozon Seller API открывает для продавцов возможности автоматизации рутинных процессов: от загрузки товаров до управления заказами и аналитики. Однако многие сталкиваются с трудностями при первом подключении — неясные инструкции, ошибки аутентификации или проблемы с обработкой ответов сервера. Эта статья поможет разобраться, как правильно настроить интеграцию, избежать типичных ошибок и использовать API для масштабирования бизнеса на Ozon.

API маркетплейса позволяет синхронизировать данные между вашей CRM, 1С или самописной системой и платформой Ozon в реальном времени. Вы сможете автоматически обновлять остатки, получать уведомления о новых заказах, управлять ценами и даже настраивать динамическое ценообразование. Но прежде чем приступить к работе, важно понять ключевые принципы: как работает авторизация, какие есть ограничения по количеству запросов и как структурированы ответы сервера.

Что такое Ozon Seller API и зачем оно нужно

Ozon Seller API — это набор HTTP-методов, который позволяет внешним системам взаимодействовать с платформой Ozon программно. С его помощью продавцы могут:

  • 📦 Автоматически загружать и обновлять карточки товаров (включая цены, описания, фотографии).
  • 📊 Получать данные о заказах, статусах доставки и возвратах в реальном времени.
  • 💰 Управлять финансовыми операциями: выплатами, комиссиями, штрафами.
  • 📈 Интегрировать аналитику продаж с внешними сервисами (например, Google Analytics или Power BI).

Основное преимущество API — сокращение времени на рутинные операции до 80%. Например, если у вас 10 000 товаров, обновление цен вручную займёт дни, а через API — несколько минут. Кроме того, интеграция снижает риск ошибок (например, несовпадения остатков на складе и в карточке товара), что напрямую влияет на рейтинг продавца.

Однако API не заменяет личный кабинет полностью. Некоторые операции (например, moderation товаров или обжалование штрафов) всё ещё требуют ручного вмешательства. Также стоит учитывать, что Ozon регулярно обновляет документацию, и некоторые методы могут устаревать или менять формат ответов.

📊 Для чего вы планируете использовать Ozon Seller API?
Автоматизация загрузки товаров
Управление заказами и логистикой
Аналитика продаж
Интеграция с 1С/CRM
Другое

Как получить доступ к Ozon Seller API

Чтобы начать работу с API, вам потребуется:

  1. Client-ID и API-Key — уникальные идентификаторы вашего приложения. Их можно получить в личном кабинете Ozon Seller в разделе Настройки → API.
  2. Токен доступа (Access Token) — временный ключ для аутентификации запросов. Генерируется через OAuth 2.0.
  3. Сервер для обработки запросов (если вы не используете готовые решения типа MoySklad или Bitrix24).

Процесс получения токена выглядит так:

  1. Перейдите по ссылке для авторизации:
    https://api-seller.ozon.ru/oauth/authorize?client_id=YOUR_CLIENT_ID&response_type=code&redirect_uri=YOUR_REDIRECT_URI

    Замените YOUR_CLIENT_ID и YOUR_REDIRECT_URI на свои значения.

  2. После авторизации вы получите authorization code — временный код для получения токена.
  3. Отправьте POST-запрос на эндпоинт /oauth/token с параметрами:
    {
    

    "grant_type": "authorization_code",

    "code": "YOUR_AUTH_CODE",

    "client_id": "YOUR_CLIENT_ID",

    "client_secret": "YOUR_API_KEY",

    "redirect_uri": "YOUR_REDIRECT_URI"

    }

В ответ придет JSON с access_token и refresh_token. Access Token действует 1 час, после чего его нужно обновлять с помощью Refresh Token (метод /oauth/token с параметром grant_type=refresh_token).

Основные методы Ozon Seller API: что можно автоматизировать

API Ozon разделено на несколько групп методов, каждая из которых отвечает за определённую область. Рассмотрим ключевые:

Категория методов Примеры задач Популярные эндпоинты
Товары (Product) Загрузка, обновление, архивация карточек товаров /v2/product/import, /v1/product/info
Заказы (Order) Получение списка заказов, изменение статусов /v2/posting/fbs/list, /v1/posting/fbs/ship
Финансы (Finance) Получение выплат, комиссий, штрафов /v1/finance/transaction/totals
Аналитика (Analytics) Статистика продаж, остатки на складах /v1/analytics/data, /v2/analytics/stock_on_warehouses

Например, чтобы получить список активных заказов в статусе "awaiting_packaging" (ожидает упаковки), используйте запрос:

GET /v2/posting/fbs/list?dir=ASC&filter={"status":"awaiting_packaging"}&limit=100

Headers:

Authorization: Bearer YOUR_ACCESS_TOKEN

Client-Id: YOUR_CLIENT_ID

В ответ придет JSON с массивом заказов, где для каждого указаны posting_number (номер заказа), items (список товаров) и delivery_method (способ доставки).

Получить Client-ID и API-Key в личном кабинете|Настроить сервер для обработки запросов|Реализовать механизм обновления токена|Изучить документацию по нужным методам|Протестировать запросы в пессочнице (SandBox)

-->

Примеры кода для работы с Ozon Seller API

Рассмотрим практические примеры на Python (с использованием библиотеки requests) и PHP.

1. Получение списка заказов (Python)

import requests

url = "https://api-seller.ozon.ru/v2/posting/fbs/list"

headers = {

"Authorization": "Bearer YOUR_ACCESS_TOKEN",

"Client-Id": "YOUR_CLIENT_ID"

}

params = {

"dir": "ASC",

"filter": '{"status":"awaiting_packaging"}',

"limit": 10

}

response = requests.get(url, headers=headers, params=params)

orders = response.json()["result"]["postings"]

print(orders)

2. Обновление цены товара (PHP)

<?php

$url = "https://api-seller.ozon.ru/v1/product/import/prices";

$token = "YOUR_ACCESS_TOKEN";

$clientId = "YOUR_CLIENT_ID";

$data = [

"prices" => [

[

"product_id" => 12345678, // ID товара

"price" => "999.99" // Новая цена

]

]

];

$options = [

'http' => [

'header' => "Authorization: Bearer {$token}\r\nClient-Id: {$clientId}\r\nContent-Type: application/json\r\n",

'method' => 'POST',

'content' => json_encode($data),

],

];

$context = stream_context_create($options);

$result = file_get_contents($url, false, $context);

echo $result;

Обратите внимание на формат данных: цены передаются в виде строки (например, "999.99", а не 999.99), а product_id должен соответствовать идентификатору товара в системе Ozon.

Что делать, если API возвращает ошибку 429 (Too Many Requests)?

Ошибка 429 означает превышение лимита запросов (обычно 100 запросов в минуту для большинства методов). Решения:

1. Реализуйте задержки между запросами (например, 1 запрос в секунду).

2. Используйте пакетную обработку (например, обновляйте цены для 100 товаров в одном запросе).

3. Запросите увеличение лимита в поддержке Ozon (для крупных продавцов).

Типичные ошибки и как их избежать

Даже опытные разработчики сталкиваются с проблемами при работе с API Ozon. Вот наиболее распространённые ошибки и способы их решения:

  • 🔴 Ошибка 401 (Unauthorized) — истёк access_token или неверные Client-ID/API-Key. Решение: обновите токен или проверьте ключи.
  • 🔴 Ошибка 400 (Bad Request) — неверный формат данных. Например, цена передана как число вместо строки. Решение: валидируйте JSON перед отправкой.
  • 🔴 Ошибка 500 (Internal Server Error) — проблемы на стороне Ozon. Решение: повторите запрос позже или обратитесь в поддержку.
  • 🔴 Ошибка 403 (Forbidden) — недостаточно прав. Решение: проверьте, что ваш аккаунт имеет доступ к API (в личном кабинете).

Ещё одна частая проблема — несовпадение данных. Например, вы обновляете остатки через API, но в личном кабинете они не меняются. Причины:

  • 📌 Запрос ушёл на пессочницу (SandBox), а не на продакшн.
  • 📌 Неверный warehouse_id (идентификатор склада).
  • 📌 Товар находится на модерации или архивирован.

Если API возвращает неожиданный ответ, используйте инструменты вроде Postman или cURL для дебага. Например, чтобы проверить запрос на получение информации о товаре:

curl -X GET "https://api-seller.ozon.ru/v1/product/info?product_id=12345678" \

-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \

-H "Client-Id: YOUR_CLIENT_ID"

Оптимизация работы с API: советы для масштабирования

Если вы обрабатываете тысячи товаров или заказов, важно оптимизировать взаимодействие с API, чтобы избежать ограничений и ускорить работу. Вот несколько советов:

  1. Используйте пакетные запросы. Например, вместо 100 отдельных запросов на обновление цен отправляйте один запрос с массивом из 100 товаров.
  2. Кэшируйте данные. Не запрашивайте одни и те же данные (например, список складов) при каждом запуске скрипта — храните их в базе.
  3. Настройте асинхронную обработку. Для длинных операций (например, выгрузки аналитики) используйте очереди задач (Celery, RabbitMQ).
  4. Мониторьте лимиты. Отслеживайте количество запросов с помощью заголовка X-RateLimit-Remaining в ответах сервера.

Для крупных продавцов полезно настроить вебхуки (webhooks) — уведомления о событиях (новый заказ, изменение статуса) в реальном времени. Это снизит нагрузку на ваш сервер, так как не придётся постоянно опрашивать API. Чтобы настроить вебхуки:

  1. Зарегистрируйте URL вашего обработчика в личном кабинете (Настройки → API → Вебхуки).
  2. Убедитесь, что ваш сервер принимает POST-запросы с подписью Ozon (проверяйте заголовок X-Ozon-Signature).
  3. Обрабатывайте события (например, "order_created", "stock_updated") и обновляйте свою систему.

Также обратите внимание на документацию по тарифам. Например, для метода /v1/product/import лимит составляет 1000 товаров в одном запросе, а для /v2/analytics/sales — 30 дней данных за один запрос. Превышение лимитов может привести к блокировке аккаунта.

Безопасность при работе с Ozon Seller API

Работа с API требует особого внимания к безопасности, так как утечка ключей или токенов может привести к несанкционированному доступу к вашему аккаунту. Следуйте этим правилам:

  • 🔒 Никогда не храните токены в открытом виде в коде или репозиториях. Используйте переменные окружения или секретные менеджеры (AWS Secrets Manager, HashiCorp Vault).
  • 🔒 Ограничивайте права доступа. Выдавайте токены с минимально необходимыми разрешениями (например, только для чтения заказов, если не нужно их редактировать).
  • 🔒 Используйте HTTPS для всех запросов. Ozon блокирует запросы по HTTP.
  • 🔒 Ротируйте ключи. Периодически (раз в 3–6 месяцев) обновляйте Client-ID и API-Key в личном кабинете.

Если вы подозреваете, что ваши ключи скомпрометированы, немедленно:

  1. Отзовите старые токены в разделе Настройки → API.
  2. Сгенерируйте новые Client-ID и API-Key.
  3. Проверьте логи на подозрительную активность (например, неожиданные изменения цен или остатков).

Также рекомендуется настроить двухфакторную аутентификацию (2FA) для аккаунта Ozon Seller и ограничить доступ к API по IP (если ваш сервер имеет статический IP).

FAQ: ответы на частые вопросы

Можно ли использовать Ozon Seller API бесплатно?

Да, само подключение к API бесплатное, но есть лимиты на количество запросов (обычно 100 в минуту для большинства методов). Для увеличения лимитов нужно обратиться в поддержку Ozon и подтвердить необходимость (например, большой ассортимент или высокий оборот).

Как часто обновляются данные в API? Например, остатки на складе.

Данные о заказах и статусах обновляются в реальном времени (с задержкой до 5 минут). Остатки на складах синхронизируются каждые 15–30 минут. Для критических операций (например, бронирования товара) используйте методы с флагом real_time=true (если поддерживается).

Что делать, если API возвращает пустой ответ или ошибку 502?

Ошибка 502 (Bad Gateway) обычно означает проблемы на стороне Ozon. Решения:

  1. Подождите 5–10 минут и повторите запрос.
  2. Проверьте статус работы API на странице status.ozon.ru.
  3. Если проблема сохраняется, обратитесь в поддержку с логами запроса (время, эндпоинт, заголовки).

Можно ли через API управлять рекламными кампаниями на Ozon?

На данный момент (2026 год) Ozon не предоставляет публичного API для управления рекламой (например, настройкой Ozon Рекламы или Ozon Express). Эти операции доступны только через личный кабинет. Однако вы можете автоматизировать аналитику рекламы, экспортируя данные через /v1/analytics/performance.

Как интегрировать Ozon Seller API с 1С?

Для интеграции с можно использовать:

  • 🔗 Готовые решения: МойСклад, Атол, Bitrix24 (у них есть предварительно настроенные коннекторы).
  • 🔗 Самописный обмен через HTTP-запросы (используйте объект HTTPСоединение в 1С).
  • 🔗 Промежуточный сервер (например, на Node.js или Python), который будет синхронизировать данные между 1С и Ozon.

Пример кода для 1С (упрощённо):

Запрос = Новый HTTPЗапрос("https://api-seller.ozon.ru/v1/product/import");

Запрос.УстановитьЗаголовок("Authorization", "Bearer " + ТокенDoступа);

Запрос.УстановитьЗаголовок("Client-Id", КлиентID);

Ответ = Запрос.ОтправитьДляJSON(ДанныеДляОтправки);