API Ozon: как получить данные для автоматизации бизнеса

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

В отличие от ручного управления аккаунтом через личный кабинет, работа с API требует технических навыков — хотя бы базового понимания HTTP-запросов, JSON и принципов OAuth 2.0. Но не пугайтесь: мы разберём процесс шаг за шагом, от регистрации приложения до парсинга ответов сервера. Даже если вы никогда не работали с API, после прочтения этой статьи вы сможете самостоятельно получать данные о заказах, остатках или отзывах.

Важно понимать, что API Ozon — это не единый интерфейс, а набор отдельных сервисов для разных задач: Seller API (для продавцов), Performance API (аналитика), FBS/FBO API (логистика) и другие. Каждый из них имеет свою документацию, лимиты запросов и особенности аутентификации. Мы сфокусируемся на Seller API — самом востребованном инструменте для автоматизации торговли.

1. Подготовка: регистрация приложения в Ozon

Прежде чем отправлять запросы к API, необходимо зарегистрировать своё приложение в экосистеме Ozon. Это обязательный шаг, так как все запросы должны проходить с уникальными ключами доступа (client_id и client_secret). Без них сервер вернёт ошибку 401 Unauthorized.

Инструкция по регистрации:

  • 🔹 Перейдите в Личный кабинет продавца и авторизуйтесь.
  • 🔹 В меню выберите Настройки → API и интеграции → Мои приложения.
  • 🔹 Нажмите «Создать приложение» и заполните форму:
    • Укажите название (например, «Мой парсер заказов»).
    • Выберите тип интеграции: для большинства задач подойдёт «Серверное приложение».
    • Добавьте redirect URI (можно указать https://localhost для тестирования).
  • 🔹 Сохраните client_id и client_secret — они понадобятся для аутентификации.
⚠️ Внимание: Никогда не передавайте client_secret третьим лицам или не храните его в открытом виде в коде приложения. При компрометации ключей немедленно отзовите их в личном кабинете и сгенерируйте новые.

После регистрации приложение будет находиться в статусе «На модерации». Обычно проверка занимает от нескольких часов до 1–2 дней. Ускорить процесс можно, если:

  • 📌 Приложение зарегистрировано от имени верифицированного аккаунта продавца.
  • 📌 Указано корректное описание целей использования API (например, «Автоматизация обработки заказов»).
  • 📌 В настройках профиля продавца заполнены все обязательные поля (ИНН, реквизиты и т. д.).
📊 Для чего вы планируете использовать API Ozon?
Автоматизация заказов
Синхронизация остатков
Аналитика продаж
Интеграция с 1С/CRM
Другое

2. Аутентификация: получение токена доступа

Все запросы к API Ozon должны содержать токен доступа (access_token), который подтверждает права вашего приложения. Токен выдаётся по протоколу OAuth 2.0 и действует ограниченное время (обычно 1 час). Для его получения нужно выполнить два шага:

  1. Получить код авторизации (authorization_code).
  2. Обменять код на токен.

Сначала сформируйте URL для авторизации пользователя (вас как продавца):

https://seller.ozon.ru/api/v1/oauth/authorize?

client_id=ВАШ_CLIENT_ID

&response_type=code

&redirect_uri=ВАШ_REDIRECT_URI

&state=произвольная_строка

После перехода по этой ссылке Ozon перенаправит вас на указанный redirect_uri с параметром code в адресной строке. Скопируйте этот код — он нужен для следующего шага.

Теперь отправьте POST-запрос на обмен кода на токен:

POST https://api-seller.ozon.ru/v1/token

Content-Type: application/x-www-form-urlencoded

client_id=ВАШ_CLIENT_ID

&client_secret=ВАШ_CLIENT_SECRET

&grant_type=authorization_code

&code=ПОЛУЧЕННЫЙ_CODE

&redirect_uri=ВАШ_REDIRECT_URI

В ответ вы получите JSON с полями:

  • access_token — токен для запросов.
  • expires_in — время жизни токена в секундах (3600 = 1 час).
  • refresh_token — токен для обновления access_token без повторной авторизации.

3. Основные методы API для получения данных

После успешной аутентификации можно приступать к работе с данными. Ниже — самые востребованные методы Seller API, которые покрывают 80% задач продавцов:

Метод Описание Пример запроса Лимит запросов
GET /v2/analytics/data Статистика продаж (выручка, количество заказов, возвраты). https://api-seller.ozon.ru/v2/analytics/data?metrics=revenue&dimensions=day 1000 запросов/час
GET /v3/posting/fbs/list Список заказов FBS с фильтрами по статусу и дате. https://api-seller.ozon.ru/v3/posting/fbs/list?limit=50 500 запросов/час
GET /v2/product/info Информация о товаре (цена, остатки, статус модерации). https://api-seller.ozon.ru/v2/product/info?offer_id=12345 2000 запросов/час
GET /v1/review/list Список отзывов с фильтрами по дате и рейтингу. https://api-seller.ozon.ru/v1/review/list?limit=100 300 запросов/час

Пример запроса для получения списка заказов FBS:

GET https://api-seller.ozon.ru/v3/posting/fbs/list

Headers:

Authorization: Bearer ВАШ_ACCESS_TOKEN

Client-Id: ВАШ_CLIENT_ID

Query params:

limit=100

offset=0

status=awaiting_packaging

В ответе вы получите массив объектов с данными о заказах, включая:

  • 📦 posting_number — номер заказа.
  • 📅 created_at — дата создания.
  • 📍 delivery_method — способ доставки (FBS/FBO).
  • 💰 products.price — цена товара.

Зарегистрировать приложение в личном кабинете|Получить client_id и client_secret|Пройти авторизацию и получить access_token|Изучить документацию по нужным методам|Настроить обработку ошибок (401, 403, 429)-->

4. Обработка ошибок и лимиты запросов

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

Код ошибки Причина Решение
401 Unauthorized Недействительный или истёкший access_token. Обновите токен с помощью refresh_token или пройдите авторизацию заново.
403 Forbidden Недостаточно прав у приложения. Проверьте scope-ы (разрешения) в настройках приложения.
429 Too Many Requests Превышен лимит запросов. Добавьте задержки между запросами или используйте пакетную обработку.
500 Internal Server Error Ошибка на стороне Ozon. Повторите запрос позже или обратитесь в поддержку.

Особое внимание уделите лимитам запросов. Например, для метода /v2/analytics/data лимит составляет 1000 запросов в час. Если вы превысите его, API вернёт 429 и заблокирует доступ на 5–10 минут. Чтобы избежать блокировок:

  • 🔄 Используйте пагинацию (параметры limit и offset).
  • ⏱️ Добавьте задержки между запросами (например, 1 запрос в секунду).
  • 📊 Кэшируйте данные, если они не требуют постоянного обновления.
⚠️ Внимание: При работе с большими объёмами данных (например, выгрузка всех заказов за месяц) используйте асинхронные методы (например, /v1/analytics/data/async). Они позволяют получить данные в фоновом режиме без блокировки лимитов.

5. Практические примеры: получение данных о заказах и товарах

Разберём двачных сценария: выгрузку списка заказов и проверку остатков товаров.

Пример 1: Получение списка заказов FBS

Допустим, вам нужно получить все заказы в статусе «awaiting_packaging» (ожидает упаковки) за последние 24 часа. Используем метод /v3/posting/fbs/list:

GET https://api-seller.ozon.ru/v3/posting/fbs/list?status=awaiting_packaging&created_at_from=2026-05-20T00:00:00Z&limit=100

Headers:

Authorization: Bearer ВАШ_ACCESS_TOKEN

Client-Id: ВАШ_CLIENT_ID

В ответе вы получите массив заказов. Обратите внимание на поля:

  • posting_number — уникальный номер заказа.
  • products.sku — артикул товара.
  • delivery_method.warehouse_id — идентификатор склада FBS.

Пример 2: Проверка остатков товаров

Чтобы узнать текущие остатки по конкретному offer_id, используйте метод /v2/product/info/stock:

POST https://api-seller.ozon.ru/v2/product/info/stock

Headers:

Authorization: Bearer ВАШ_ACCESS_TOKEN

Client-Id: ВАШ_CLIENT_ID

Body (JSON):

{

"offer_id": ["12345","67890"],

"warehouse_id": [123456] // ID склада (опционально)

}

В ответе будет массив объектов с полями stock (количество) и reserved (зарезервировано).

6. Автоматизация: интеграция с 1С, Excel и другими системами

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

  • 📊 Excel/Google Sheets:
    • Используйте Power Query или скрипты на Google Apps Script для выгрузки данных.
    • Пример: автоматическое обновление таблицы с остатками товаров раз в час.
  • 🖥️ 1С:Предприятие:
    • Настройте HTTP-запросы через встроенный механизм или расширение «1С:Интеграция с Ozon».
    • Синхронизируйте заказы, цены и остатки в реальном времени.
  • 🤖 Собственные скрипты (Python, PHP):
    • Библиотека requests для Python упрощает работу с API.
    • Пример кода для получения заказов:
      import requests
      
      

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

      headers = {

      "Authorization":"Bearer ВАШ_TOKEN",

      "Client-Id":"ВАШ_CLIENT_ID"

      }

      params = {"status":"awaiting_packaging","limit": 50}

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

      print(response.json)

Для сложных интеграций (например, синхронизация с CRM или WMS) рекомендуем использовать готовые коннекторы:

  • 🔗 Ozon Connector для Bitrix24.
  • 🔗 MoySklad + Ozon (через API2Cart).
  • 🔗 RetailCRM с модулем интеграции.
⚠️ Внимание: При автоматизации учитывайте задержки выполнения некоторых операций на стороне Ozon. Например, после изменения цены товара через API обновление на сайте может занять до 15 минут.

7. Безопасность и лучшие практики

Работа с API требует внимания к безопасности, особенно если вы храните токены или обрабатываете данные заказов. Следуйте этим рекомендациям:

  • 🔐 Храните токены в безопасности:
    • Не коммитьте client_secret или access_token в публичные репозитории (например, GitHub).
    • Используйте переменные окружения (.env-файлы) для хранения чувствительных данных.
  • 🔄 Обновляйте токены:
    • Токен действует 1 час — автоматизируйте его обновление с помощью refresh_token.
    • Пример запроса на обновление:
      POST https://api-seller.ozon.ru/v1/token
      

      grant_type=refresh_token

      &refresh_token=ВАШ_REFRESH_TOKEN

      &client_id=ВАШ_CLIENT_ID

      &client_secret=ВАШ_CLIENT_SECRET

  • 📡 Мониторьте активность:
    • Периодически проверяйте лог запросов в личном кабинете (Настройки → API → Журнал активности).
    • При подозрительных действиях (неожиданные IP-адреса) сразу отзывайте токены.

Также соблюдайте правила Ozon для разработчиков:

  • ⚠️ Не отправляйте более 10 запросов в секунду (риск блокировки IP).
  • ⚠️ Не используйте API для парсинга цен конкурентов (это нарушает правила маркетплейса).
  • ⚠️ Кэшируйте данные, если они не требуют частого обновления (например, справочники категорий).
Что будет если превысить лимиты API?

При систематическом превышении лимитов Ozon может временно заблокировать ваш client_id (на 24 часа) или вовсе отключить доступ к API. Восстановить его можно только через поддержку, предоставив объяснения и план по исправлению ситуации.

FAQ: Частые вопросы по работе с API Ozon

❓ Как часто обновляются данные в API?

Данные о заказах и остатках обновляются в реальном времени, но некоторые аналитические отчёты (например, по продажам) могут иметь задержку до 24 часов. Для точных данных используйте параметр date или created_at в запросах.

❓ Можно ли получить данные по FBO-заказам через API?

Да, для FBO-заказов используйте метод /v3/posting/fbo/list. Он возвращает информацию о заказах, которые вы отправляете самостоятельно (в отличие от FBS, где логистикой занимается Ozon). Обратите внимание, что для FBO доступны дополнительные поля, такие как track_number (трек-номер отправления).

❓ Как обработать ответ API, если он слишком большой?

Для больших объёмов данных используйте пагинацию (параметры limit и offset) или асинхронные методы (например, /v1/analytics/data/async). Асинхронные запросы возвращают task_id, по которомуLater можно получить результат через /v1/analytics/data/result.

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

Ошибка 500 Internal Server Error означает сбой на стороне Ozon. Повторите запрос через 5–10 минут. Если ошибка повторяется, проверьте статус работы API на странице статуса сервисов или обратитесь в поддержку с указанием request_id из ответа.

❓ Как протестировать API без риска для продаж?

Ozon предоставляет песочницу (sandbox) для тестирования. Чтобы её подключить:

  1. Создайте отдельное тестовое приложение в личном кабинете.
  2. Используйте эндпоинты с префиксом https://sbx-api-seller.ozon.ru/....
  3. Данные в песочнице не связаны с реальным аккаунтом, поэтому можно экспериментировать без последствий.