Программный доступ к рассчитанным данным MetricLab — статистике ваших кабинетов Wildberries, Ozon и Яндекс Маркет (заказы, выкупы, реклама, прибыль и др.) — и к ручным формам кабинета (планы, себестоимость, расходы, налоги и т.д.) на чтение и запись. Подходит для интеграции с BI, скриптов, собственных дашбордов и ИИ-ассистентов.
| Base URL | https://web.metriclab.ru |
| Формат | JSON request, JSON response (UTF-8) |
| Версия | v1 — обратная совместимость до объявления sunset |
| Маркетплейсы | wb (Wildberries), ozon (Ozon), yandex (Яндекс Маркет) |
| Авторизация | Bearer API-key в заголовке Authorization |
# Пример минимального запроса
curl https://web.metriclab.ru/v1/wb/metrics \
-H "Authorization: Bearer ml_live_xxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"cabinets": [],
"date_from": "2026-05-01",
"date_to": "2026-05-31",
"metrics": ["orders_amount"]
}'
POST https://web.metriclab.ru/v1/{wb|ozon|yandex}/{metrics|advertising|unit-fact|stocks|supplies|costs|costs-update} и ручные формы /v1/{marketplace}/forms/{form} (+ /update); GET — /v1/cabinets, /v1/{marketplace}/forms и каталоги /v1/{marketplace}/{metrics|advertising|unit-fact}-catalog. У Яндекс Маркета нет stocks и supplies. JSON in/out, UTF-8. Заголовок Authorization: Bearer ml_live_... в каждом запросе.GET /v1/cabinets → возьмите cabinet_id и подставьте в поле cabinets остальных методов./metrics. Рекламные кампании → /advertising. Полная экономика каждого товара за период одной таблицей (реализация, все услуги площадки, себестоимость, налог, НДС, к перечислению, прибыль, маржинальность, ABC — как лист «Unit-факт» на сайте) → /unit-fact, разреза по дням в нём нет. Где лежит товар по складам и стоимость остатка → /stocks. Сколько везти и куда (расчёт, не сырьё) → /supplies. Себестоимость прочитать или записать → /costs, /costs-update. Ручные формы (группы товаров, планы, заметки, самовыкупы, раздачи, операционные расходы, налоги) → сначала GET /v1/{marketplace}/forms — там точный контракт каждой формы, потом /forms/{form} и /forms/{form}/update.article = nmID (число); Ozon — sku и/или article (артикул продавца, offer_id); Яндекс Маркет — article (артикул продавца, строка). В формах сервер сам переводит sku↔article в то, чем форма хранит товар.append у форм-списков не идемпотентен — не повторяйте его вслепую после таймаута.docs — ссылка на раздел этой страницы по вызванному методу — и hint с той же подсказкой коротко. Если непонятно, что означает поле или какой метод нужен, — откройте docs.cabinets (string[]), date_from, date_to (YYYY-MM-DD, включительно), metrics (string[]). Опц. group_by: date, article (для рекламы ещё campaign).computed запрашивать нельзя — API их не возвращает и ответит 400. Это производные (ДРР, CPM, CTR, маржа…); считайте их сами из сырых метрик по формуле рядом с ними в каталоге.data.current.totals есть всегда; by_date / by_article / by_article_date — только под соответствующий group_by. data.previous — только если include_previous: true И заданы date_from_previous + date_to_previous (авто-сдвига периода нет).by_article / by_campaign — вида "<юрлицо>:<значение>"; режьте по первому :, чтобы получить голый артикул / sku / id кампании.group_by: ["campaign"] меняет форму ответа — добавляются data.campaigns (имя/тип/статус) и data.current.by_campaign./supplies) — это РАСЧЁТ потребности, не сырьё. До 5000 строк за запрос (limit по умолчанию и максимум), сортировка по убыванию потребности; постранично через offset, всего — в data.total.429 — подождите Retry-After секунд, не опрашивайте в плотном цикле.400/500) → {"status":"error","error":…}; авторизация/доступ/лимиты (401/403/429) → {"success":false,"error":…}. Поле error есть всегда — проверяйте HTTP-код ≠ 200 и читайте error. В форме {"status":"error"} есть ещё docs — ссылка на раздел документации по этому эндпоинту (та же ссылка дописана в конец error).date_to в будущем обрезается до сегодня.ml_live_abcdefgh…WXYZ). Если ключ утерян —
отозвите его и создайте новый.
Каждый запрос (кроме этой страницы) должен содержать:
Authorization: Bearer ml_live_xxxxxxxxxxx
Ключ привязан к пользователю и имеет доступ только к его кабинетам. Запрос с чужим
cabinet_id вернёт 403 Forbidden.
Authorization: Bearer ml_live_xxxxxxxxxxx
Если писать код не нужно — подключите кабинеты Wildberries, Ozon и Яндекс Маркета к чату и спрашивайте словами: «почему в июле вырос ДРР», «что заканчивается на складах», «топ-10 артикулов за прошлый месяц». Ассистент сам возьмёт нужные данные, посчитает ДРР и конверсии и подставит даты.
Ключ вручную вводить не нужно: при добавлении подключения откроется страница входа в MetricLab, вы нажмёте «Разрешить», и ассистент получит доступ к вашим кабинетам.
| ChatGPT |
Настройки → Коннекторы → Добавить. Адрес
https://web.metriclab.ru/mcp/, аутентификация OAuth.
Нажмите «Создать», войдите в MetricLab и разрешите доступ.
|
| Claude |
Settings → Connectors → Add custom connector. Адрес
https://web.metriclab.ru/mcp/, дальше кнопка «Connect»:
вход в MetricLab и «Разрешить».
|
| Cursor, Claude Code и другие |
Если клиент умеет OAuth — тот же адрес, вход откроется в браузере. Если нет —
ключ из Настройки → Для разработчиков в заголовке
Authorization: Bearer … (пример справа) или прямо в адресе:
https://web.metriclab.ru/mcp/k/ваш-ключ/.
|
Готово. Проверьте вопросом «Какие кабинеты тебе доступны?» — в ответ придёт список ваших магазинов.
Доступны те же данные и те же параметры, что и в REST: статистика, реклама, остатки, поставки, себестоимость, ручные формы, фильтры, разрезы, сравнение периодов. Попросите «выгрузку в CSV» — ассистент вернёт сырые числа для Excel. Ограничения на ключ общие с API.
// mcp.json — Cursor / Claude Code
{
"mcpServers": {
"metriclab": {
"url": "https://web.metriclab.ru/mcp/",
"headers": {
"Authorization": "Bearer ml_live_xxxxxxxxxxx"
}
}
}
}
# Проверить подключение
curl https://web.metriclab.ru/mcp/ \
-H "Authorization: Bearer ml_live_xxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
Лимит считается сразу по двум правилам: отдельно на каждый метод и суммарно по ключу. Окно — одна минута. Платных тарифов нет — лимиты одинаковые для всех.
| Лимит | Endpoint | Значение |
|---|---|---|
| на метод | GET /v1/cabinets |
10 req/min |
| на метод | POST /v1/{marketplace}/metrics, /advertising |
3 req/min |
| на метод | POST /v1/{wb,ozon}/supplies |
5 req/min |
| на метод | POST /v1/{wb,ozon}/stocks |
5 req/min |
| на метод | POST /v1/{marketplace}/costs |
5 req/min |
| на метод | POST /v1/{marketplace}/costs-update |
5 req/min |
| на метод | POST /v1/{marketplace}/unit-fact |
3 req/min |
| на метод | POST /v1/{marketplace}/forms/{form} и …/update — на каждую форму и действие отдельно |
10 req/min |
| на метод | GET /v1/{marketplace}/forms, GET …-catalog |
10 req/min |
| всего по ключу | все методы вместе | 60 req/min |
Превышение любого из этих лимитов возвращает 429 Too Many Requests.
Лимиты на методы считаются отдельно: в одну и ту же минуту можно сделать 3 запроса
к /v1/wb/metrics и ещё 3 к /v1/ozon/metrics.
Есть в каждом ответе (включая 429) — по ним можно следить за темпом и не ловить ошибки. Показывают самый строгий из двух лимитов (на метод или всего по ключу) — тот, где осталось меньше запросов.
| Заголовок | Значение |
|---|---|
| X-RateLimit-Limit | Максимум запросов в окне для активного (узкого) лимита. |
| X-RateLimit-Remaining | Сколько ещё можно сделать до конца окна. 0 — следующий запрос отдаст 429. |
| X-RateLimit-Reset | Секунд до сброса окна. |
| Retry-After | Только в ответе 429: рекомендуемое время ожидания (секунды) перед повтором. |
Корректная стратегия — подождать Retry-After секунд и повторить.
Не используйте exponential backoff с короткой начальной задержкой: окно фиксированное
в одну минуту.
# Успешный ответ — оставалось 2 из 3 на этом endpoint
HTTP/1.1 200 OK
X-RateLimit-Limit: 3
X-RateLimit-Remaining: 2
X-RateLimit-Reset: 47
# Превышение лимита на метод
HTTP/1.1 429 Too Many Requests
X-RateLimit-Limit: 3
X-RateLimit-Remaining: 0
X-RateLimit-Reset: 12
Retry-After: 12
{
"success": false,
"error": "rate limit exceeded: 3 req/min для этого endpoint, 60 req/min суммарно по ключу"
}
| Код | Когда | Тело |
|---|---|---|
| 200 | Успех | {"status":"success", "data":{…}, "meta":{…}} |
| 400 | Невалидный payload (нет обязательного поля, неверный тип, неизвестная метрика, неверный group_by, незнакомое поле или значение в ручной форме) | {"status":"error", "error":"…", "docs":"…"} |
| 401 | Отсутствует или невалидный API-ключ | {"success":false, "error":"invalid or missing API key"} |
| 403 | Запрошены недоступные кабинеты; для ручных форм — ещё и если вкладка «Ручные формы» закрыта для аккаунта | {"success":false, "error":"cabinets not accessible: […]"} |
| 429 | Превышен rate limit. См. Retry-After. |
{"success":false, "error":"rate limit exceeded: 3 req/min"} |
| 500 | Ошибка сервера. Технических деталей в ответе нет — повторите запрос через минуту, если повторяется — напишите в поддержку | {"status":"error", "error":"…", "docs":"…"} |
| 502 | Бэкенд статистики недоступен | {"success":false, "error":"upstream unavailable"} |
400, 500) приходят как {"status":"error", …}; ошибки авторизации, доступа и лимитов (401, 403, 429, 502) — как {"success":false, …}. Текстовое поле error есть в обеих. Надёжный способ обработки: считать ошибкой любой HTTP-код ≠ 200 и читать error, не полагаясь на наличие success или status. В форме {"status":"error", …} есть ещё поле docs — ссылка на раздел документации по вызванному эндпоинту; та же ссылка с рекомендацией свериться с документацией дописана в конец текста error.{
"success": false,
"error": "cabinets not accessible: ['00000000']"
}
{
"status": "error",
"error": "unknown metrics: ['ordrs']. Please check the request against the API documentation: https://web.metriclab.ru/api-doc/#ep-wb",
"docs": "https://web.metriclab.ru/api-doc/#ep-wb"
}
Возвращает список всех кабинетов (Wildberries, Ozon, Яндекс Маркет),
доступных владельцу API-ключа. Удобно для первичной настройки: получить
cabinet_id'ы, которые потом передавать в поле cabinets остальных методов.
cabinet_id в поле cabinets остальных методов.cabinet_id — это supplier_id (Wildberries), client_id (Ozon), business_id (Яндекс Маркет). Передавайте строкой, как есть. Вместо id можно прислать имя кабинета (name или yl).yl (юрлицо) ещё пригодится: оно стоит префиксом в ключах by_article и by_campaign в других методах.cabinets: [] = все доступные кабинеты. Удобно, но при многих кабинетах ответ большой и медленный — лучше перечислять нужные явно.Параметров нет. Список возвращается для пользователя, к которому привязан API-ключ.
"success" при HTTP 200.
"wb", "ozon", "yandex".
supplier_id, Ozon — client_id, Яндекс Маркет — business_id. Передавайте именно его в cabinets остальных методов.
article_key в ответах /v1/{marketplace}/{metrics,advertising} при group_by: ["article"]. Пустая строка если бэкенд статистики временно недоступен.
cabinets.
curl https://web.metriclab.ru/v1/cabinets \
-H "Authorization: Bearer ml_live_xxxxxxxxxxx"
import requests
KEY = "ml_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
HOST = "https://web.metriclab.ru"
resp = requests.get(
f"{HOST}/v1/cabinets",
headers={"Authorization": f"Bearer {KEY}"},
timeout=30,
)
resp.raise_for_status()
for c in resp.json()["cabinets"]:
print(c["marketplace"], c["cabinet_id"], c["yl"], c["inn"])
const KEY = "ml_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
const HOST = "https://web.metriclab.ru";
const r = await fetch(`${HOST}/v1/cabinets`, {
headers: { "Authorization": `Bearer ${KEY}` },
});
if (!r.ok) throw new Error(`HTTP ${r.status}`);
const { cabinets } = await r.json();
console.log(cabinets);
{
"status": "success",
"cabinets": [
{
"marketplace": "wb",
"cabinet_id": "12345",
"yl": "LEGO-w484",
"inn": "1234567890",
"name": "LEGO"
},
{
"marketplace": "ozon",
"cabinet_id": "67890",
"yl": "Sokolov-3870",
"inn": "0987654321",
"name": "SOKOLOV"
},
{
"marketplace": "yandex",
"cabinet_id": "11223344",
"yl": "Sokolov-y512",
"inn": "0987654321",
"name": "SOKOLOV Маркет"
}
],
"total": 3
}
Возвращает статистику Wildberries за период с опциональной группировкой по датам и/или артикулам.
computed в ответе НЕ приходят. Это производные (ДРР, маржа и т.п.). Запросите сырые метрики из их формулы и посчитайте сами; если передать computed-метрику в metrics — будет ошибка 400.group_by: [] (только итоги) — самый быстрый вариант.["article","date"] на большом ассортименте за длинный период даёт очень большой ответ. Выбирайте разрез осознанно.by_article — "юрлицо:артикул". Чтобы получить голый артикул, отрежьте часть до первого :.YYYY-MM-DD, включительно. date_to в будущем обрезается до сегодня.include_previous: true плюс явные date_from_previous/date_to_previous (авто-сдвига периода нет).429 подождите Retry-After секунд и повторите.supplier_id кабинетов. Вместо идентификатора можно указать название кабинета — то, что отдаёт GET /v1/cabinets в поле name (регистр не важен). Кабинет должен принадлежать владельцу API-ключа (получите доступные через GET /v1/cabinets). Пустой массив [] — взять все доступные пользователю.
YYYY-MM-DD. Включительно.
YYYY-MM-DD. Включительно.
computed — метрики с такой пометкой API не считает, их вы получаете сами по формуле (она указана рядом в каталоге).
"date", "article". По умолчанию [] — только итоги (totals). Можно комбинировать.
true — в ответе появится data.previous для сравнения с прошлым периодом. Сам период задайте полями date_from_previous и date_to_previous. По умолчанию false.
YYYY-MM-DD. Нужно вместе с include_previous: true.
YYYY-MM-DD.
nm_id) в виде строк.
"success" при HTTP 200. При ошибке — "error" и поле error.
current (всегда) и опционально previous.
date_from … date_to).
group_by есть "date". Ключ — дата YYYY-MM-DD.
group_by есть "article". Ключ строки — "кабинет:артикул". Кабинет в начале — чтобы одинаковые артикулы из разных кабинетов не склеились; название кабинета то же, что в GET /v1/cabinets.
group_by есть и "date", и "article". Разрез артикул × дата.
include_previous: true. Структура идентична current — те же totals / by_date / by_article / by_article_date за предыдущий период.
"wb".
"metrics".
В поле metrics передаются key метрик. Группировка и порядок —
как в виджете RNP внутри MetricLab. Метрики с тегом
computed в ответе API
не возвращаются — это производные показатели; запросите сырые компоненты
из формулы и посчитайте на стороне клиента. Метрики с тегом
план — это ваши же планы из формы «Планы»:
план среза равен сумме дневных планов внутри него, а рядом с тегом стоит ключ
метрики факта, к которой план относится.
Метрики воронки продаж: показы, клики, корзина, заказы, продажи
wb_rnp_notes |
Заметки | text |
card_views |
Показы карточки | number |
card_clicks |
Переходы в карточку | number |
add_to_basket |
Добавления в корзину | number |
add_to_wishlist |
Добавления в отложенные | number |
orders_amount |
Заказы, шт. | number |
orders_sum |
Заказы, руб. | money |
sales_amount |
Продажи, шт. | number |
sales_sum |
Продажи, руб. | money |
buyout_sales_45d |
Выкупы за 45д (скольз.) | number |
buyout_orders_45d |
Заказы за 45д (скольз.) | number |
wb_card_views_14d |
Показы за 14д (скольз.) | number |
wb_card_clicks_14d |
Клики за 14д (скольз.) | number |
wb_add_to_basket_14d |
Корзина за 14д (скольз.) | number |
wb_orders_amount_14d |
Заказы за 14д (скольз.) | number |
wb_ctr |
Конверсия в клик, %computed
wb_ctr = card_clicks / card_views * 100
|
percent |
wb_ctr_14d |
Конверсия в клик за 14 дней, %computed
wb_ctr_14d = wb_card_clicks_14d / wb_card_views_14d * 100
|
percent |
wb_conversion_to_basket |
Конверсия в корзину, %computed
wb_conversion_to_basket = add_to_basket / card_clicks * 100
|
percent |
wb_conversion_to_basket_14d |
Конверсия в корзину за 14 дней, %computed
wb_conversion_to_basket_14d = wb_add_to_basket_14d / wb_card_clicks_14d * 100
|
percent |
wb_conversion_to_order |
Конверсия в заказ, %computed
wb_conversion_to_order = orders_amount / add_to_basket * 100
|
percent |
wb_conversion_to_order_14d |
Конверсия в заказ за 14 дней, %computed
wb_conversion_to_order_14d = wb_orders_amount_14d / wb_add_to_basket_14d * 100
|
percent |
wb_conversion_click_to_order |
Конверсия из клика в заказ, %computed
wb_conversion_click_to_order = orders_amount / card_clicks * 100
|
percent |
wb_conversion_click_to_order_14d |
Конверсия из клика в заказ за 14 дней, %computed
wb_conversion_click_to_order_14d = wb_orders_amount_14d / wb_card_clicks_14d * 100
|
percent |
wb_avg_price_order |
Средний чек заказа, рубcomputed
wb_avg_price_order = orders_sum / orders_amount
|
money |
wb_avg_price_sale |
Средний чек продажи, рубcomputed
wb_avg_price_sale = sales_sum / sales_amount
|
money |
wb_buyout_rate_45d |
Процент выкупа, %computed
wb_buyout_rate_45d = buyout_sales_45d / buyout_orders_45d * 100
|
percent |
Органическая воронка: показатели всего за вычетом рекламных (РК)
card_views_org |
Показы орг., штcomputed
card_views_org = card_views - card_views_adv
|
number |
card_clicks_org |
Клики орг., штcomputed
card_clicks_org = card_clicks - card_clicks_adv
|
number |
add_to_basket_org |
Корзина орг., штcomputed
add_to_basket_org = add_to_basket - add_to_basket_adv
|
number |
orders_amount_org |
Заказы орг., штcomputed
orders_amount_org = orders_amount - orders_amount_adv
|
number |
orders_sum_org |
Заказы орг., рубcomputed
orders_sum_org = orders_sum - orders_sum_adv
|
money |
Метрики рекламы: расходы, ДРР, заказы по РК
adv_sum |
Расходы РК (все) | money |
adv_sum_money |
Расходы РК (деньги) | money |
adv_sum_bonus |
Расходы РК (Бонусы и кэшбэк) | money |
adv_sum_cpm_unified |
Расходы ОЗП (CPM, Единая) | money |
adv_sum_cpm_manual |
Расходы ОЗП (CPM, Ручная) | money |
adv_sum_cpc |
Расходы ОЗК (CPC) | money |
orders_sum_adv |
Заказы по РК, руб. | money |
card_views_adv |
Показы РК, шт | number |
wb_card_views_adv_cpm_unified |
Показы ОЗП (CPM, Единая), шт | number |
wb_card_views_adv_cpm_manual |
Показы ОЗП (CPM, Ручная), шт | number |
wb_card_views_adv_cpc |
Показы ОЗК (CPC), шт | number |
card_clicks_adv |
Клики РК, шт | number |
wb_card_clicks_adv_cpm_unified |
Клики ОЗП (CPM, Единая), шт | number |
wb_card_clicks_adv_cpm_manual |
Клики ОЗП (CPM, Ручная), шт | number |
wb_card_clicks_adv_cpc |
Клики ОЗК (CPC), шт | number |
add_to_basket_adv |
Корзина РК, шт | number |
orders_amount_adv |
Заказы РК, шт | number |
wb_orders_amount_adv_cpm_unified |
Заказы ОЗП (CPM, Единая), шт | number |
wb_orders_amount_adv_cpm_manual |
Заказы ОЗП (CPM, Ручная), шт | number |
wb_orders_amount_adv_cpc |
Заказы ОЗК (CPC), шт | number |
wb_drr_of_all_orders |
ДРР от всех заказов (все), %computed
wb_drr_of_all_orders = adv_sum / orders_sum * 100
|
percent |
wb_drr_of_all_orders_money |
ДРР от всех заказов (деньги), %computed
wb_drr_of_all_orders_money = adv_sum_money / orders_sum * 100
|
percent |
wb_drr_of_all_orders_bonus |
ДРР от всех заказов (Бонусы и кэшбэк), %computed
wb_drr_of_all_orders_bonus = adv_sum_bonus / orders_sum * 100
|
percent |
wb_drr_of_all_orders_cpm_unified |
ДРР от всех заказов (Единая), %computed
wb_drr_of_all_orders_cpm_unified = adv_sum_cpm_unified / orders_sum * 100
|
percent |
wb_drr_of_all_orders_cpm_manual |
ДРР от всех заказов (Ручная), %computed
wb_drr_of_all_orders_cpm_manual = adv_sum_cpm_manual / orders_sum * 100
|
percent |
wb_drr_of_all_orders_cpc |
ДРР от всех заказов (CPC), %computed
wb_drr_of_all_orders_cpc = adv_sum_cpc / orders_sum * 100
|
percent |
wb_drr_of_adv_orders |
ДРР от заказов РК (все), %computed
wb_drr_of_adv_orders = adv_sum / orders_sum_adv * 100
|
percent |
wb_drr_of_adv_orders_money |
ДРР от заказов РК (деньги), %computed
wb_drr_of_adv_orders_money = adv_sum_money / orders_sum_adv * 100
|
percent |
wb_drr_of_adv_orders_bonus |
ДРР от заказов РК (Бонусы и кэшбэк), %computed
wb_drr_of_adv_orders_bonus = adv_sum_bonus / orders_sum_adv * 100
|
percent |
wb_ctr_adv |
CTR РК, %computed
wb_ctr_adv = card_clicks_adv / card_views_adv * 100
|
percent |
wb_ctr_adv_cpm_unified |
CTR ОЗП (CPM, Единая), %computed
wb_ctr_adv_cpm_unified = wb_card_clicks_adv_cpm_unified / wb_card_views_adv_cpm_unified * 100
|
percent |
wb_ctr_adv_cpm_manual |
CTR ОЗП (CPM, Ручная), %computed
wb_ctr_adv_cpm_manual = wb_card_clicks_adv_cpm_manual / wb_card_views_adv_cpm_manual * 100
|
percent |
wb_ctr_adv_cpc |
CTR ОЗК (CPC), %computed
wb_ctr_adv_cpc = wb_card_clicks_adv_cpc / wb_card_views_adv_cpc * 100
|
percent |
wb_drr_of_all_sales |
ДРР от всех продаж (все), %computed
wb_drr_of_all_sales = adv_sum / sales_sum * 100
|
percent |
wb_drr_of_all_sales_money |
ДРР от всех продаж (деньги), %computed
wb_drr_of_all_sales_money = adv_sum_money / sales_sum * 100
|
percent |
wb_drr_of_all_sales_bonus |
ДРР от всех продаж (Бонусы и кэшбэк), %computed
wb_drr_of_all_sales_bonus = adv_sum_bonus / sales_sum * 100
|
percent |
wb_drr_of_all_sales_cpm_unified |
ДРР от всех продаж (Единая), %computed
wb_drr_of_all_sales_cpm_unified = adv_sum_cpm_unified / sales_sum * 100
|
percent |
wb_drr_of_all_sales_cpm_manual |
ДРР от всех продаж (Ручная), %computed
wb_drr_of_all_sales_cpm_manual = adv_sum_cpm_manual / sales_sum * 100
|
percent |
wb_drr_of_all_sales_cpc |
ДРР от всех продаж (CPC), %computed
wb_drr_of_all_sales_cpc = adv_sum_cpc / sales_sum * 100
|
percent |
wb_cost_per_mille |
Стоимость 1000 показов, рубcomputed
wb_cost_per_mille = adv_sum / card_views * 1000
|
money |
wb_cost_per_click |
Стоимость клика, рубcomputed
wb_cost_per_click = adv_sum / card_clicks
|
money |
wb_cost_per_cart |
Стоимость корзины, рубcomputed
wb_cost_per_cart = adv_sum / add_to_basket
|
money |
wb_cost_per_order |
Стоимость заказа, рубcomputed
wb_cost_per_order = adv_sum / orders_amount
|
money |
wb_cost_per_sale |
Стоимость продажи, рубcomputed
wb_cost_per_sale = adv_sum / sales_amount
|
money |
wb_adv_views_per_order |
Показов РК на 1 заказcomputed
wb_adv_views_per_order = card_views_adv / orders_amount
|
number |
wb_adv_clicks_per_order |
Кликов РК на 1 заказcomputed
wb_adv_clicks_per_order = card_clicks_adv / orders_amount_adv
|
number |
wb_adv_carts_per_order |
Корзин РК на 1 заказcomputed
wb_adv_carts_per_order = add_to_basket_adv / orders_amount_adv
|
number |
Метрики план-факт: план, % выполнения, прогноз; целевые ДРР и маржинальность — цель и отклонение от неё
wb_rnp_views_plan |
ПЛАН: Показы, штплан → card_views | number |
wb_rnp_ads_cost_plan |
ПЛАН: Расходы на рекламуплан → adv_sum | money |
wb_rnp_profit_plan |
ПЛАН: Прибыль, рубплан → wb_nedeli_profit_sum | money |
wb_rnp_for_pay_plan |
ПЛАН: Сумма к перечислению, рубплан → wb_nedeli_for_pay | money |
wb_rnp_clicks_plan |
ПЛАН: Клики, штплан → card_clicks | number |
wb_rnp_add_to_cart_plan |
ПЛАН: Корзина, штплан → add_to_basket | number |
wb_rnp_orders_count_plan |
ПЛАН: Заказы, штплан → orders_amount | number |
wb_rnp_orders_sum_plan |
ПЛАН: Заказы, рубплан → orders_sum | money |
wb_rnp_sales_count_plan |
ПЛАН: Продажи, штплан → sales_amount | number |
wb_rnp_sales_sum_plan |
ПЛАН: Продажи, рубплан → sales_sum | money |
wb_views_plan_pct |
% ВЫПОЛНЕНИЯ: Показы, штcomputed
wb_views_plan_pct = card_views / wb_rnp_views_plan * 100
|
percent |
wb_ads_cost_plan_pct |
% ВЫПОЛНЕНИЯ: Расходы на рекламуcomputed
wb_ads_cost_plan_pct = adv_sum / wb_rnp_ads_cost_plan * 100
|
percent |
wb_profit_plan_pct |
% ВЫПОЛНЕНИЯ: Прибыль, рубcomputed
wb_profit_plan_pct = wb_nedeli_profit_sum / wb_rnp_profit_plan * 100
|
percent |
wb_for_pay_plan_pct |
% ВЫПОЛНЕНИЯ: Сумма к перечислению, рубcomputed
wb_for_pay_plan_pct = wb_nedeli_for_pay / wb_rnp_for_pay_plan * 100
|
percent |
wb_clicks_plan_pct |
% ВЫПОЛНЕНИЯ: Клики, штcomputed
wb_clicks_plan_pct = card_clicks / wb_rnp_clicks_plan * 100
|
percent |
wb_add_to_cart_plan_pct |
% ВЫПОЛНЕНИЯ: Корзина, штcomputed
wb_add_to_cart_plan_pct = add_to_basket / wb_rnp_add_to_cart_plan * 100
|
percent |
wb_orders_count_plan_pct |
% ВЫПОЛНЕНИЯ: Заказы, штcomputed
wb_orders_count_plan_pct = orders_amount / wb_rnp_orders_count_plan * 100
|
percent |
wb_orders_sum_plan_pct |
% ВЫПОЛНЕНИЯ: Заказы, рубcomputed
wb_orders_sum_plan_pct = orders_sum / wb_rnp_orders_sum_plan * 100
|
percent |
wb_sales_count_plan_pct |
% ВЫПОЛНЕНИЯ: Продажи, штcomputed
wb_sales_count_plan_pct = sales_amount / wb_rnp_sales_count_plan * 100
|
percent |
wb_sales_sum_plan_pct |
% ВЫПОЛНЕНИЯ: Продажи, рубcomputed
wb_sales_sum_plan_pct = sales_sum / wb_rnp_sales_sum_plan * 100
|
percent |
Метрики прибыли и маржинальности
wb_nedeli_sum_before_spp_realized |
До СПП: сумма реализации | money |
wb_nedeli_sum_after_spp_realized |
После СПП: сумма реализации | money |
wb_nedeli_direct_cost_sebes_sum |
Себестоимость реализованного товара | money |
wb_nedeli_wb_commission_before_spp_sum |
Комиссия от реализации до СПП | money |
wb_nedeli_wb_acquiring_sum |
Эквайринг | money |
wb_nedeli_wb_logistics_sum |
Логистика | money |
wb_nedeli_wb_storage_sum |
Хранение | money |
wb_nedeli_wb_adv_balance_sum |
Начисления за рекламу (баланс продавца) | money |
wb_nedeli_wb_adv_account_sum |
Начисления за рекламу (счёт продавца) | money |
wb_nedeli_wb_reviews_bonuses_sum |
Баллы за отзывы | money |
wb_nedeli_wb_loyalty_bonuses_sum |
Удержания за баллы лояльности | money |
wb_nedeli_wb_jam_subscription_sum |
Подписка Джем | money |
wb_nedeli_wb_transit_cost_sum |
Транзитные поставки | money |
wb_nedeli_wb_paid_acceptance_sum |
Платная приёмка | money |
wb_nedeli_wb_penalties_sum |
Штрафы | money |
wb_nedeli_wb_additional_payments_sum |
Доплаты | money |
wb_nedeli_direct_cost_nalog_sum |
Налог | money |
wb_nedeli_direct_cost_out_nalog_sum |
НДС (исходящий) | money |
wb_nedeli_direct_cost_in_nalog_sum |
НДС (входящий) | money |
wb_nedeli_direct_cost_self_sales_sum |
Затраты на самовыкупы | money |
wb_nedeli_direct_cost_self_sales_sebes_sum |
Себестоимость самовыкупленного товара | money |
wb_nedeli_direct_cost_distribution_sum |
Затраты на раздачи | money |
wb_nedeli_direct_cost_external_marketing_sum |
Внешний маркетинг | money |
wb_nedeli_wb_imizr_sum |
Штраф ИМИЗР | money |
wb_nedeli_wb_other_deductions_sum |
Прочие удержания | money |
wb_nedeli_for_pay |
Сумма к перечислениюcomputed
wb_nedeli_for_pay = wb_nedeli_sum_before_spp_realized + (wb_nedeli_wb_commission_before_spp_sum + wb_nedeli_wb_acquiring_sum + wb_nedeli_wb_logistics_sum + wb_nedeli_wb_storage_sum + (wb_nedeli_wb_adv_balance_sum + wb_nedeli_wb_adv_account_sum) + wb_nedeli_wb_reviews_bonuses_sum + wb_nedeli_wb_loyalty_bonuses_sum + wb_nedeli_wb_jam_subscription_sum + wb_nedeli_wb_transit_cost_sum + wb_nedeli_wb_paid_acceptance_sum + wb_nedeli_wb_penalties_sum + wb_nedeli_wb_additional_payments_sum + wb_nedeli_wb_imizr_sum + wb_nedeli_wb_other_deductions_sum) - wb_nedeli_wb_adv_account_sum
|
money |
wb_nedeli_for_pay_share |
Доля суммы к перечислению к сумме реализацииcomputed
wb_nedeli_for_pay_share = wb_nedeli_for_pay / wb_nedeli_sum_before_spp_realized * 100
|
percent |
wb_nedeli_percent_sebes |
% себестоимости от реализации до СППcomputed
wb_nedeli_percent_sebes = -wb_nedeli_direct_cost_sebes_sum / wb_nedeli_sum_before_spp_realized * 100
|
percent |
wb_nedeli_profit_sum |
Маржинальная прибыльcomputed
wb_nedeli_profit_sum = wb_nedeli_sum_before_spp_realized + (wb_nedeli_wb_commission_before_spp_sum + wb_nedeli_wb_acquiring_sum + wb_nedeli_wb_logistics_sum + wb_nedeli_wb_storage_sum + (wb_nedeli_wb_adv_balance_sum + wb_nedeli_wb_adv_account_sum) + wb_nedeli_wb_reviews_bonuses_sum + wb_nedeli_wb_loyalty_bonuses_sum + wb_nedeli_wb_jam_subscription_sum + wb_nedeli_wb_transit_cost_sum + wb_nedeli_wb_paid_acceptance_sum + wb_nedeli_wb_penalties_sum + wb_nedeli_wb_additional_payments_sum + wb_nedeli_wb_imizr_sum + wb_nedeli_wb_other_deductions_sum) + wb_nedeli_direct_cost_sebes_sum + wb_nedeli_direct_cost_nalog_sum + (wb_nedeli_direct_cost_out_nalog_sum + wb_nedeli_direct_cost_in_nalog_sum) + wb_nedeli_direct_cost_self_sales_sum - wb_nedeli_direct_cost_self_sales_sebes_sum + wb_nedeli_direct_cost_distribution_sum + wb_nedeli_direct_cost_external_marketing_sum
|
money |
wb_nedeli_percent_profit_before_spp |
% прибыли от реализации до СПП (маржинальность)computed
wb_nedeli_percent_profit_before_spp = wb_nedeli_profit_sum / wb_nedeli_sum_before_spp_realized * 100
|
percent |
wb_nedeli_percent_profit_after_spp |
% прибыли от реализации после СПП (маржинальность)computed
wb_nedeli_percent_profit_after_spp = wb_nedeli_profit_sum / wb_nedeli_sum_after_spp_realized * 100
|
percent |
wb_nedeli_percent_profitability |
% прибыли от себестоимости (рентабельность)computed
wb_nedeli_percent_profitability = wb_nedeli_profit_sum / -wb_nedeli_direct_cost_sebes_sum * 100
|
percent |
Метрики остатков и запасов
stocks_amount |
Остаток FBO, шт | number |
stocks_amount_fbs |
Остаток FBS, шт | number |
stocks_amount_total |
Остаток (FBO+FBS), шт | number |
stocks_in_transit |
Товары в пути, шт. | number |
wb_orders_amount_7d |
Заказы за 7д (скольз.) | number |
wb_stock_days_fbo |
Запас FBO, днейcomputed
wb_stock_days_fbo = stocks_amount / (wb_orders_amount_7d / 7)
|
number |
wb_stock_days_fbs |
Запас FBS, днейcomputed
wb_stock_days_fbs = stocks_amount_fbs / (wb_orders_amount_7d / 7)
|
number |
wb_stock_days_total |
Запас (FBO+FBS), днейcomputed
wb_stock_days_total = stocks_amount_total / (wb_orders_amount_7d / 7)
|
number |
Метрики цен и СПП
price_before_spp |
Цена до СПП, руб | money |
price_after_spp |
Цена с СПП, руб | money |
spp_percent |
СПП, % | percent |
spp_rub |
СПП, рубcomputed
spp_rub = price_before_spp * spp_percent / 100
|
money |
Прогнозные метрики на основе заказов
forecast_orders_sum |
ПРОГНОЗ: Заказы, руб | money |
forecast_realization |
ПРОГНОЗ: Реализация, руб | money |
forecast_all_services |
ПРОГНОЗ: Все услуги, руб | money |
forecast_wb_commission |
ПРОГНОЗ: Комиссия ВБ, руб | money |
forecast_logistics |
ПРОГНОЗ: Прямая логистика, руб | money |
forecast_reverse_logistics |
ПРОГНОЗ: Обр. логистика, руб | money |
forecast_ads |
ПРОГНОЗ: Реклама, руб | money |
forecast_storage |
ПРОГНОЗ: Хранение, руб | money |
paid_storage_daily |
Хранение, руб | money |
forecast_acquiring |
ПРОГНОЗ: Эквайринг, руб | money |
forecast_tax |
ПРОГНОЗ: Налог, руб | money |
forecast_outgoing_vat |
ПРОГНОЗ: Исходящий НДС, руб | money |
forecast_incoming_vat |
ПРОГНОЗ: Входящий НДС, руб | money |
forecast_cost_price |
ПРОГНОЗ: Себестоимость, руб | money |
forecast_profit |
ПРОГНОЗ: Прибыль, руб | money |
forecast_profit_custom |
ПРОГНОЗ: Прибыль, руб (ИУ) | money |
forecast_realization_custom |
ПРОГНОЗ: Реализация, руб (ИУ) | money |
forecast_orders_sum_custom |
ПРОГНОЗ: Заказы, руб (ИУ) | money |
forecast_wb_commission_custom |
ПРОГНОЗ: Комиссия ВБ, руб (ИУ) | money |
forecast_ads_custom |
ПРОГНОЗ: Реклама, руб (ИУ) | money |
forecast_fulfillment_custom |
ПРОГНОЗ: Фулфилмент, руб (ИУ) | money |
forecast_cost_price_custom |
ПРОГНОЗ: Себестоимость, руб (ИУ) | money |
forecast_nds_custom |
ПРОГНОЗ: НДС, руб (ИУ) | money |
forecast_tax_custom |
ПРОГНОЗ: Налог, руб (ИУ) | money |
wb_fp_all_services_pct |
ПРОГНОЗ: % всех услугcomputed
wb_fp_all_services_pct = forecast_all_services / forecast_realization * 100
|
percent |
wb_fp_commission_pct |
ПРОГНОЗ: % комиссии ВБcomputed
wb_fp_commission_pct = forecast_wb_commission / forecast_realization * 100
|
percent |
wb_fp_logistics_pct |
ПРОГНОЗ: % прямой логистикиcomputed
wb_fp_logistics_pct = forecast_logistics / forecast_realization * 100
|
percent |
wb_fp_reverse_logistics_pct |
ПРОГНОЗ: % обр. логистикиcomputed
wb_fp_reverse_logistics_pct = forecast_reverse_logistics / forecast_realization * 100
|
percent |
wb_fp_logistics_total |
ПРОГНОЗ: Логистика, рубcomputed
wb_fp_logistics_total = forecast_logistics + forecast_reverse_logistics
|
money |
wb_fp_logistics_total_pct |
ПРОГНОЗ: % логистикиcomputed
wb_fp_logistics_total_pct = wb_fp_logistics_total / forecast_realization * 100
|
percent |
wb_fp_ads_pct |
ПРОГНОЗ: % рекламыcomputed
wb_fp_ads_pct = forecast_ads / forecast_realization * 100
|
percent |
wb_fp_storage_pct |
ПРОГНОЗ: % храненияcomputed
wb_fp_storage_pct = forecast_storage / forecast_realization * 100
|
percent |
wb_fp_acquiring_pct |
ПРОГНОЗ: % эквайрингаcomputed
wb_fp_acquiring_pct = forecast_acquiring / forecast_realization * 100
|
percent |
wb_fp_tax_pct |
ПРОГНОЗ: % налогаcomputed
wb_fp_tax_pct = forecast_tax / forecast_realization * 100
|
percent |
wb_fp_outgoing_vat_pct |
ПРОГНОЗ: % исходящего НДСcomputed
wb_fp_outgoing_vat_pct = forecast_outgoing_vat / forecast_realization * 100
|
percent |
wb_fp_incoming_vat_pct |
ПРОГНОЗ: % входящего НДСcomputed
wb_fp_incoming_vat_pct = forecast_incoming_vat / forecast_realization * 100
|
percent |
wb_fp_cost_price_pct |
ПРОГНОЗ: % себестоимостиcomputed
wb_fp_cost_price_pct = forecast_cost_price / forecast_realization * 100
|
percent |
wb_fp_margin_pct |
ПРОГНОЗ: Маржинальность, %computed
wb_fp_margin_pct = forecast_profit / forecast_realization * 100
|
percent |
wb_fp_profitability_pct |
ПРОГНОЗ: Рентабельность, %computed
wb_fp_profitability_pct = forecast_profit / forecast_cost_price * 100
|
percent |
wb_fp_markup |
ПРОГНОЗ: Наценка, коэффcomputed
wb_fp_markup = forecast_realization / forecast_cost_price
|
number |
wb_fp_buyout_rate |
ПРОГНОЗ: Выкуп, %computed
wb_fp_buyout_rate = buyout_sales_45d / buyout_orders_45d * 100
|
percent |
wb_fp_margin_custom |
ПРОГНОЗ: Маржинальность, % (ИУ)computed
wb_fp_margin_custom = forecast_profit_custom / forecast_realization_custom * 100
|
percent |
wb_fp_buyout_rate_custom |
ПРОГНОЗ: Выкуп, % (ИУ)computed
wb_fp_buyout_rate_custom = buyout_sales_45d / buyout_orders_45d * 100
|
percent |
curl https://web.metriclab.ru/v1/wb/metrics \
-H "Authorization: Bearer ml_live_xxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"cabinets": ["12345"],
"date_from": "2026-05-01",
"date_to": "2026-05-31",
"metrics": ["orders_amount", "orders_sum", "card_clicks"],
"group_by": ["date"]
}'
import requests
KEY = "ml_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
HOST = "https://web.metriclab.ru"
resp = requests.post(
f"{HOST}/v1/wb/metrics",
headers={"Authorization": f"Bearer {KEY}"},
json={
"cabinets": ["12345"],
"date_from": "2026-05-01",
"date_to": "2026-05-31",
"metrics": ["orders_amount", "orders_sum", "card_clicks"],
"group_by": ["date"],
},
timeout=120,
)
resp.raise_for_status()
data = resp.json()
print(data["data"]["current"]["totals"])
const KEY = "ml_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
const HOST = "https://web.metriclab.ru";
const r = await fetch(`${HOST}/v1/wb/metrics`, {
method: "POST",
headers: {
"Authorization": `Bearer ${KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
cabinets: ["12345"],
date_from: "2026-05-01",
date_to: "2026-05-31",
metrics: ["orders_amount", "orders_sum", "card_clicks"],
group_by: ["date"],
}),
});
if (!r.ok) throw new Error(`HTTP ${r.status}`);
const { data, meta } = await r.json();
console.log(data.current.totals);
{
"status": "success",
"data": {
"current": {
"totals": {
"orders_amount": 1234,
"orders_sum": 567890.12,
"card_clicks": 18540
},
"by_date": {
"2026-05-01": {
"orders_amount": 42,
"card_clicks": 380
}
/* ... */
}
}
},
"meta": {
"marketplace": "wb",
"dataset": "metrics",
"cabinets": 1,
"yls": 1,
"metrics": ["orders_amount", "orders_sum", "card_clicks"],
"group_by": ["date"],
"include_previous": false
}
}
Возвращает статистику Ozon за период с опциональной группировкой по датам и/или артикулам.
computed в ответе НЕ приходят. Это производные (ДРР, маржа и т.п.). Запросите сырые метрики из их формулы и посчитайте сами; если передать computed-метрику в metrics — будет ошибка 400.group_by: [] (только итоги) — самый быстрый вариант.["article","date"] на большом ассортименте за длинный период даёт очень большой ответ. Выбирайте разрез осознанно.by_article — "юрлицо:артикул". Чтобы получить голый артикул, отрежьте часть до первого :.YYYY-MM-DD, включительно. date_to в будущем обрезается до сегодня.include_previous: true плюс явные date_from_previous/date_to_previous (авто-сдвига периода нет).429 подождите Retry-After секунд и повторите.client_id кабинетов. Вместо идентификатора можно указать название кабинета — то, что отдаёт GET /v1/cabinets в поле name (регистр не важен). Кабинет должен принадлежать владельцу API-ключа (получите доступные через GET /v1/cabinets). Пустой массив [] — взять все доступные пользователю.
YYYY-MM-DD. Включительно.
YYYY-MM-DD. Включительно.
computed — метрики с такой пометкой API не считает, их вы получаете сами по формуле (она указана рядом в каталоге).
"date", "article". По умолчанию [] — только итоги (totals). Можно комбинировать.
true — в ответе появится data.previous для сравнения с прошлым периодом. Сам период задайте полями date_from_previous и date_to_previous. По умолчанию false.
YYYY-MM-DD. Нужно вместе с include_previous: true.
YYYY-MM-DD.
"success" при HTTP 200. При ошибке — "error" и поле error.
current (всегда) и опционально previous.
date_from … date_to).
group_by есть "date". Ключ — дата YYYY-MM-DD.
group_by есть "article". Ключ строки — "кабинет:sku". Кабинет в начале — чтобы одинаковые SKU из разных кабинетов не склеились; название кабинета то же, что в GET /v1/cabinets.
group_by есть и "date", и "article". Разрез артикул × дата.
include_previous: true. Структура идентична current — те же totals / by_date / by_article / by_article_date за предыдущий период.
"ozon".
"metrics".
В поле metrics передаются key метрик. Группировка и порядок —
как в виджете RNP внутри MetricLab. Метрики с тегом
computed в ответе API
не возвращаются — это производные показатели; запросите сырые компоненты
из формулы и посчитайте на стороне клиента. Метрики с тегом
план — это ваши же планы из формы «Планы»:
план среза равен сумме дневных планов внутри него, а рядом с тегом стоит ключ
метрики факта, к которой план относится.
Метрики воронки продаж: показы, клики, корзина, заказы, продажи
ozon_rnp_notes |
Заметки | text |
card_views |
Показы карточки | number |
ozon_views_search_catalog |
Показы (поиск и каталог) | number |
card_clicks |
Переходы в карточку | number |
ozon_unique_visitors |
Уникальные посетители | number |
ozon_sessions_search_catalog |
Уникальные посет. (ПиК) | number |
add_to_basket |
Добавления в корзину | number |
orders_amount |
Заказы, шт. | number |
orders_sum |
Заказы, руб. | money |
sales_amount |
Продажи, шт. | number |
sales_sum |
Продажи, руб. | money |
ozon_buyout_num |
Выкупы за 45д (скольз.) | number |
ozon_buyout_den |
Заказы с исходом за 45д (скольз.) | number |
search_position |
Средняя позиция в поиске | number |
ozon_show_frequency |
Частота показовcomputed
ozon_show_frequency = card_views / ozon_unique_visitors
|
number |
ozon_show_frequency_new |
Частота показов (ПиК)computed
ozon_show_frequency_new = ozon_views_search_catalog / ozon_sessions_search_catalog
|
number |
ozon_new_views_share |
Доля показов (ПиК), %computed
ozon_new_views_share = ozon_views_search_catalog / card_views * 100
|
percent |
ozon_ctr |
Конверсия в клик, %computed
ozon_ctr = card_clicks / card_views * 100
|
percent |
ozon_conversion_to_basket |
Конверсия в корзину, %computed
ozon_conversion_to_basket = add_to_basket / card_clicks * 100
|
percent |
ozon_conversion_to_order |
Конверсия в заказ, %computed
ozon_conversion_to_order = orders_amount / add_to_basket * 100
|
percent |
ozon_avg_price_order |
Средний чек заказа, рубcomputed
ozon_avg_price_order = orders_sum / orders_amount
|
money |
ozon_avg_price_sale |
Средний чек продажи, рубcomputed
ozon_avg_price_sale = sales_sum / sales_amount
|
money |
ozon_buyout_rate |
Процент выкупа, %computed
ozon_buyout_rate = ozon_buyout_num / ozon_buyout_den * 100
|
percent |
Органическая воронка: показатели всего за вычетом рекламных (РК)
card_views_org |
Показы орг., штcomputed
card_views_org = card_views - card_views_adv
|
number |
card_clicks_org |
Клики орг., штcomputed
card_clicks_org = card_clicks - card_clicks_adv
|
number |
orders_amount_org |
Заказы орг., штcomputed
orders_amount_org = orders_amount - orders_amount_adv
|
number |
orders_sum_org |
Заказы орг., рубcomputed
orders_sum_org = orders_sum - orders_sum_adv
|
money |
Метрики рекламы: расходы, ДРР, заказы по РК
adv_sum |
Расходы РК (все) | money |
adv_sum_ozk_search |
Расходы на ОЗК (Поиск) | money |
adv_sum_ozk_search_rec |
Расходы на ОЗК (Поиск + рек.) | money |
adv_sum_special |
Расходы на Спецразмещение | money |
adv_sum_ozz |
Расходы на ОЗЗ | money |
orders_sum_adv |
Заказы по РК, руб. | money |
card_views_adv |
Показы РК, шт | number |
card_clicks_adv |
Клики РК, шт | number |
orders_amount_adv |
Заказы РК, шт | number |
ozon_drr_of_all_orders |
ДРР от всех заказов, %computed
ozon_drr_of_all_orders = adv_sum / orders_sum * 100
|
percent |
ozon_drr_of_all_orders_ozk_search |
ДРР от всех заказов (ОЗК поиск), %computed
ozon_drr_of_all_orders_ozk_search = adv_sum_ozk_search / orders_sum * 100
|
percent |
ozon_drr_of_all_orders_ozk_search_rec |
ДРР от всех заказов (ОЗК поиск + рек.), %computed
ozon_drr_of_all_orders_ozk_search_rec = adv_sum_ozk_search_rec / orders_sum * 100
|
percent |
ozon_drr_of_all_orders_special |
ДРР от всех заказов (Спецразмещение), %computed
ozon_drr_of_all_orders_special = adv_sum_special / orders_sum * 100
|
percent |
ozon_drr_of_all_orders_ozz |
ДРР от всех заказов (ОЗЗ), %computed
ozon_drr_of_all_orders_ozz = adv_sum_ozz / orders_sum * 100
|
percent |
ozon_drr_of_adv_orders |
ДРР от заказов РК, %computed
ozon_drr_of_adv_orders = adv_sum / orders_sum_adv * 100
|
percent |
ozon_drr_of_all_sales |
ДРР от всех продаж, %computed
ozon_drr_of_all_sales = adv_sum / sales_sum * 100
|
percent |
ozon_drr_of_all_sales_ozk_search |
ДРР от всех продаж (ОЗК поиск), %computed
ozon_drr_of_all_sales_ozk_search = adv_sum_ozk_search / sales_sum * 100
|
percent |
ozon_drr_of_all_sales_ozk_search_rec |
ДРР от всех продаж (ОЗК поиск + рек.), %computed
ozon_drr_of_all_sales_ozk_search_rec = adv_sum_ozk_search_rec / sales_sum * 100
|
percent |
ozon_drr_of_all_sales_special |
ДРР от всех продаж (Спецразмещение), %computed
ozon_drr_of_all_sales_special = adv_sum_special / sales_sum * 100
|
percent |
ozon_drr_of_all_sales_ozz |
ДРР от всех продаж (ОЗЗ), %computed
ozon_drr_of_all_sales_ozz = adv_sum_ozz / sales_sum * 100
|
percent |
ozon_cost_per_mille |
Стоимость 1000 показов, рубcomputed
ozon_cost_per_mille = adv_sum / card_views * 1000
|
money |
ozon_cost_per_click |
Стоимость клика, рубcomputed
ozon_cost_per_click = adv_sum / card_clicks
|
money |
ozon_cost_per_cart |
Стоимость корзины, рубcomputed
ozon_cost_per_cart = adv_sum / add_to_basket
|
money |
ozon_cost_per_order |
Стоимость заказа, рубcomputed
ozon_cost_per_order = adv_sum / orders_amount
|
money |
ozon_cost_per_sale |
Стоимость продажи, рубcomputed
ozon_cost_per_sale = adv_sum / sales_amount
|
money |
Метрики план-факт: план, % выполнения, прогноз; целевые ДРР и маржинальность — цель и отклонение от неё
ozon_rnp_views_plan |
ПЛАН: Показы, штплан → card_views | number |
ozon_rnp_ads_cost_plan |
ПЛАН: Расходы на рекламуплан → adv_sum | money |
ozon_rnp_profit_plan |
ПЛАН: Прибыльплан → profit_sum | money |
ozon_rnp_for_pay_plan |
ПЛАН: Сумма к перечислениюплан → for_pay | money |
ozon_rnp_clicks_plan |
ПЛАН: Клики, штплан → card_clicks | number |
ozon_rnp_add_to_cart_plan |
ПЛАН: Корзина, штплан → add_to_basket | number |
ozon_rnp_orders_count_plan |
ПЛАН: Заказы, штплан → orders_amount | number |
ozon_rnp_orders_sum_plan |
ПЛАН: Заказы, рубплан → orders_sum | money |
ozon_rnp_sales_count_plan |
ПЛАН: Продажи, штплан → sales_amount | number |
ozon_rnp_sales_sum_plan |
ПЛАН: Продажи, рубплан → sales_sum | money |
ozon_views_plan_pct |
% ВЫПОЛНЕНИЯ: Показы, штcomputed
ozon_views_plan_pct = card_views / ozon_rnp_views_plan * 100
|
percent |
ozon_ads_cost_plan_pct |
% ВЫПОЛНЕНИЯ: Расходы на рекламуcomputed
ozon_ads_cost_plan_pct = adv_sum / ozon_rnp_ads_cost_plan * 100
|
percent |
ozon_profit_plan_pct |
% ВЫПОЛНЕНИЯ: Прибыльcomputed
ozon_profit_plan_pct = profit_sum / ozon_rnp_profit_plan * 100
|
percent |
ozon_for_pay_plan_pct |
% ВЫПОЛНЕНИЯ: Сумма к перечислениюcomputed
ozon_for_pay_plan_pct = for_pay / ozon_rnp_for_pay_plan * 100
|
percent |
ozon_clicks_plan_pct |
% ВЫПОЛНЕНИЯ: Клики, штcomputed
ozon_clicks_plan_pct = card_clicks / ozon_rnp_clicks_plan * 100
|
percent |
ozon_add_to_cart_plan_pct |
% ВЫПОЛНЕНИЯ: Корзина, штcomputed
ozon_add_to_cart_plan_pct = add_to_basket / ozon_rnp_add_to_cart_plan * 100
|
percent |
ozon_orders_count_plan_pct |
% ВЫПОЛНЕНИЯ: Заказы, штcomputed
ozon_orders_count_plan_pct = orders_amount / ozon_rnp_orders_count_plan * 100
|
percent |
ozon_orders_sum_plan_pct |
% ВЫПОЛНЕНИЯ: Заказы, рубcomputed
ozon_orders_sum_plan_pct = orders_sum / ozon_rnp_orders_sum_plan * 100
|
percent |
ozon_sales_count_plan_pct |
% ВЫПОЛНЕНИЯ: Продажи, штcomputed
ozon_sales_count_plan_pct = sales_amount / ozon_rnp_sales_count_plan * 100
|
percent |
ozon_sales_sum_plan_pct |
% ВЫПОЛНЕНИЯ: Продажи, рубcomputed
ozon_sales_sum_plan_pct = sales_sum / ozon_rnp_sales_sum_plan * 100
|
percent |
Метрики прибыли и маржинальности
sum_before_spp_realized |
Реализация до СПП, руб. | money |
ozon_sum_before_spp_realized_rf |
Реализация до СПП, РФ, руб. | money |
ozon_sum_before_spp_realized_cis |
Реализация до СПП, другие страны, руб. | money |
sum_after_spp_realized |
Реализация после СПП, руб. | money |
ozon_sum_after_spp_realized_rf |
Реализация после СПП, РФ, руб. | money |
ozon_sum_after_spp_realized_cis |
Реализация с учётом выкупного коэффициента, другие страны, руб. | money |
ozon_commission_sum |
Комиссия Ozon | money |
ozon_commission_sum_rf |
Комиссия Ozon, РФ | money |
ozon_commission_sum_cis |
Комиссия Ozon, другие страны | money |
for_pay |
К перечислению | money |
ozon_for_pay_rf |
К перечислению, РФ | money |
ozon_for_pay_cis |
К перечислению за продажи в другие страны | money |
direct_cost_sebes_sum |
Себестоимость | money |
ozon_sebes_sum_rf |
Себестоимость, РФ | money |
ozon_sebes_sum_cis |
Себестоимость, другие страны | money |
profit_sum |
Прибыль | money |
ozon_all_services_sum |
Все услуги Ozon | money |
ozon_3_logistics |
Логистика Ozon | money |
ozon_12_reverse_logistics |
Обратная логистика | money |
ozon_advertising_spent_sum |
Реклама — списано денег | money |
ozon_20_placement_of_goods_on_the_warehouse |
Размещение товаров на складе (платное хранение) | money |
ozon_41_service_of_acquiring |
Эквайринг Ozon | money |
direct_cost_nalog_sum |
Налог | money |
direct_cost_in_and_out_nalog_sum |
НДС (вход. + исход.) | money |
ozon_avg_commission_percent |
Средний % комиссии Ozoncomputed
ozon_avg_commission_percent = -ozon_commission_sum / sum_before_spp_realized * 100
|
percent |
ozon_for_pay_share |
Доля суммы к перечислению к сумме реализацииcomputed
ozon_for_pay_share = for_pay / sum_before_spp_realized * 100
|
percent |
ozon_sebes_share |
Доля себестоимости от суммы реализацииcomputed
ozon_sebes_share = -direct_cost_sebes_sum / sum_before_spp_realized * 100
|
percent |
ozon_margin_before_spp |
Маржинальность до СПП, %computed
ozon_margin_before_spp = profit_sum / sum_before_spp_realized * 100
|
percent |
ozon_margin_after_spp |
Маржинальность после СПП, %computed
ozon_margin_after_spp = profit_sum / sum_after_spp_realized * 100
|
percent |
ozon_profit_share_of_sebes |
Доля прибыли от себестоимости (рентабельность товара)computed
ozon_profit_share_of_sebes = profit_sum / -direct_cost_sebes_sum * 100
|
percent |
Метрики остатков и запасов
stocks_amount |
Остаток FBO, шт | number |
stocks_amount_fbs |
Остаток FBS, шт | number |
stocks_amount_total |
Остаток (FBO+FBS), шт | number |
stocks_in_transit |
Товары в пути, шт. | number |
Метрики цен и СПП
price_before_spp |
Цена до СПП, руб | money |
price_after_spp |
Цена с СПП, руб | money |
spp_percent |
СПП, % | percent |
price_after_spp_and_card |
Цена с картой Ozon, руб | money |
spp_rub |
СПП, рубcomputed
spp_rub = price_before_spp * spp_percent / 100
|
money |
Прогнозные метрики на основе заказов
ozon_forecast_orders_sum |
ПРОГНОЗ: Заказы, руб | money |
ozon_forecast_realization |
ПРОГНОЗ: Реализация, руб | money |
ozon_forecast_all_services |
ПРОГНОЗ: Все услуги, руб | money |
ozon_forecast_commission |
ПРОГНОЗ: Комиссия Ozon, руб | money |
ozon_forecast_logistics |
ПРОГНОЗ: Прямая логистика, руб | money |
ozon_forecast_reverse_logistics |
ПРОГНОЗ: Обр. логистика, руб | money |
ozon_forecast_ads |
ПРОГНОЗ: Реклама, руб | money |
ozon_forecast_storage |
ПРОГНОЗ: Хранение, руб | money |
ozon_forecast_acquiring |
ПРОГНОЗ: Эквайринг, руб | money |
ozon_forecast_other_services |
ПРОГНОЗ: Прочие услуги, руб | money |
ozon_forecast_tax |
ПРОГНОЗ: Налог, руб | money |
ozon_forecast_outgoing_vat |
ПРОГНОЗ: Исходящий НДС, руб | money |
ozon_forecast_incoming_vat |
ПРОГНОЗ: Входящий НДС, руб | money |
ozon_forecast_cost_price |
ПРОГНОЗ: Себестоимость, руб | money |
ozon_forecast_profit |
ПРОГНОЗ: Прибыль, руб | money |
ozon_forecast_buyout_units_40d |
Выкупы за 45 дней до заказа | number |
ozon_forecast_resolved_units_40d |
Заказы с исходом за 45 дней до заказа | number |
ozon_fp_all_services_pct |
ПРОГНОЗ: % всех услугcomputed
ozon_fp_all_services_pct = ozon_forecast_all_services / ozon_forecast_realization * 100
|
percent |
ozon_fp_commission_pct |
ПРОГНОЗ: % комиссии Ozoncomputed
ozon_fp_commission_pct = ozon_forecast_commission / ozon_forecast_realization * 100
|
percent |
ozon_fp_logistics_pct |
ПРОГНОЗ: % прямой логистикиcomputed
ozon_fp_logistics_pct = ozon_forecast_logistics / ozon_forecast_realization * 100
|
percent |
ozon_fp_reverse_logistics_pct |
ПРОГНОЗ: % обр. логистикиcomputed
ozon_fp_reverse_logistics_pct = ozon_forecast_reverse_logistics / ozon_forecast_realization * 100
|
percent |
ozon_fp_logistics_total |
ПРОГНОЗ: Логистика, рубcomputed
ozon_fp_logistics_total = ozon_forecast_logistics + ozon_forecast_reverse_logistics
|
money |
ozon_fp_logistics_total_pct |
ПРОГНОЗ: % логистикиcomputed
ozon_fp_logistics_total_pct = ozon_fp_logistics_total / ozon_forecast_realization * 100
|
percent |
ozon_fp_ads_pct |
ПРОГНОЗ: % рекламыcomputed
ozon_fp_ads_pct = ozon_forecast_ads / ozon_forecast_realization * 100
|
percent |
ozon_fp_storage_pct |
ПРОГНОЗ: % храненияcomputed
ozon_fp_storage_pct = ozon_forecast_storage / ozon_forecast_realization * 100
|
percent |
ozon_fp_acquiring_pct |
ПРОГНОЗ: % эквайрингаcomputed
ozon_fp_acquiring_pct = ozon_forecast_acquiring / ozon_forecast_realization * 100
|
percent |
ozon_fp_other_services_pct |
ПРОГНОЗ: % прочих услугcomputed
ozon_fp_other_services_pct = ozon_forecast_other_services / ozon_forecast_realization * 100
|
percent |
ozon_fp_tax_pct |
ПРОГНОЗ: % налогаcomputed
ozon_fp_tax_pct = ozon_forecast_tax / ozon_forecast_realization * 100
|
percent |
ozon_fp_outgoing_vat_pct |
ПРОГНОЗ: % исходящего НДСcomputed
ozon_fp_outgoing_vat_pct = ozon_forecast_outgoing_vat / ozon_forecast_realization * 100
|
percent |
ozon_fp_incoming_vat_pct |
ПРОГНОЗ: % входящего НДСcomputed
ozon_fp_incoming_vat_pct = ozon_forecast_incoming_vat / ozon_forecast_realization * 100
|
percent |
ozon_fp_cost_price_pct |
ПРОГНОЗ: % себестоимостиcomputed
ozon_fp_cost_price_pct = ozon_forecast_cost_price / ozon_forecast_realization * 100
|
percent |
ozon_fp_margin_pct |
ПРОГНОЗ: Маржинальность, %computed
ozon_fp_margin_pct = ozon_forecast_profit / ozon_forecast_realization * 100
|
percent |
ozon_fp_profitability_pct |
ПРОГНОЗ: Рентабельность, %computed
ozon_fp_profitability_pct = ozon_forecast_profit / ozon_forecast_cost_price * 100
|
percent |
ozon_fp_markup |
ПРОГНОЗ: Наценка, коэффcomputed
ozon_fp_markup = ozon_forecast_realization / ozon_forecast_cost_price
|
number |
ozon_fp_buyout_rate |
ПРОГНОЗ: Выкуп, %computed
ozon_fp_buyout_rate = ozon_forecast_realization / ozon_forecast_orders_sum * 100
|
percent |
ozon_fp_buyout_rate_40d |
ПРОГНОЗ: Выкуп за 45 дней (скольз.), %computed
ozon_fp_buyout_rate_40d = ozon_forecast_buyout_units_40d / ozon_forecast_resolved_units_40d * 100
|
percent |
curl https://web.metriclab.ru/v1/ozon/metrics \
-H "Authorization: Bearer ml_live_xxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"cabinets": ["67890"],
"date_from": "2026-05-01",
"date_to": "2026-05-31",
"metrics": ["orders_amount", "orders_sum", "card_clicks"],
"group_by": ["date"]
}'
import requests
KEY = "ml_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
HOST = "https://web.metriclab.ru"
resp = requests.post(
f"{HOST}/v1/ozon/metrics",
headers={"Authorization": f"Bearer {KEY}"},
json={
"cabinets": ["67890"],
"date_from": "2026-05-01",
"date_to": "2026-05-31",
"metrics": ["orders_amount", "orders_sum", "card_clicks"],
"group_by": ["date"],
},
timeout=120,
)
resp.raise_for_status()
data = resp.json()
print(data["data"]["current"]["totals"])
const KEY = "ml_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
const HOST = "https://web.metriclab.ru";
const r = await fetch(`${HOST}/v1/ozon/metrics`, {
method: "POST",
headers: {
"Authorization": `Bearer ${KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
cabinets: ["67890"],
date_from: "2026-05-01",
date_to: "2026-05-31",
metrics: ["orders_amount", "orders_sum", "card_clicks"],
group_by: ["date"],
}),
});
if (!r.ok) throw new Error(`HTTP ${r.status}`);
const { data, meta } = await r.json();
console.log(data.current.totals);
{
"status": "success",
"data": {
"current": {
"totals": {
"orders_amount": 1234,
"orders_sum": 567890.12,
"card_clicks": 18540
},
"by_date": {
"2026-05-01": {
"orders_amount": 42,
"card_clicks": 380
}
/* ... */
}
}
},
"meta": {
"marketplace": "ozon",
"dataset": "metrics",
"cabinets": 1,
"yls": 1,
"metrics": ["orders_amount", "orders_sum", "card_clicks"],
"group_by": ["date"],
"include_previous": false
}
}
Возвращает статистику Яндекс Маркет за период с опциональной группировкой по датам и/или артикулам.
computed в ответе НЕ приходят. Это производные (ДРР, маржа и т.п.). Запросите сырые метрики из их формулы и посчитайте сами; если передать computed-метрику в metrics — будет ошибка 400.group_by: [] (только итоги) — самый быстрый вариант.["article","date"] на большом ассортименте за длинный период даёт очень большой ответ. Выбирайте разрез осознанно.by_article — "юрлицо:артикул". Чтобы получить голый артикул, отрежьте часть до первого :.YYYY-MM-DD, включительно. date_to в будущем обрезается до сегодня.include_previous: true плюс явные date_from_previous/date_to_previous (авто-сдвига периода нет).429 подождите Retry-After секунд и повторите.business_id кабинетов. Вместо идентификатора можно указать название кабинета — то, что отдаёт GET /v1/cabinets в поле name (регистр не важен). Кабинет должен принадлежать владельцу API-ключа (получите доступные через GET /v1/cabinets). Пустой массив [] — взять все доступные пользователю.
YYYY-MM-DD. Включительно.
YYYY-MM-DD. Включительно.
computed — метрики с такой пометкой API не считает, их вы получаете сами по формуле (она указана рядом в каталоге).
"date", "article". По умолчанию [] — только итоги (totals). Можно комбинировать.
true — в ответе появится data.previous для сравнения с прошлым периодом. Сам период задайте полями date_from_previous и date_to_previous. По умолчанию false.
YYYY-MM-DD. Нужно вместе с include_previous: true.
YYYY-MM-DD.
"success" при HTTP 200. При ошибке — "error" и поле error.
current (всегда) и опционально previous.
date_from … date_to).
group_by есть "date". Ключ — дата YYYY-MM-DD.
group_by есть "article". Ключ строки — "кабинет:артикул". Кабинет в начале — чтобы одинаковые артикулы из разных кабинетов не склеились; название кабинета то же, что в GET /v1/cabinets.
group_by есть и "date", и "article". Разрез артикул × дата.
include_previous: true. Структура идентична current — те же totals / by_date / by_article / by_article_date за предыдущий период.
"yandex".
"metrics".
В поле metrics передаются key метрик. Группировка и порядок —
как в виджете RNP внутри MetricLab. Метрики с тегом
computed в ответе API
не возвращаются — это производные показатели; запросите сырые компоненты
из формулы и посчитайте на стороне клиента. Метрики с тегом
план — это ваши же планы из формы «Планы»:
план среза равен сумме дневных планов внутри него, а рядом с тегом стоит ключ
метрики факта, к которой план относится.
Метрики воронки продаж: показы, переходы, корзина, заказы, реализация
yandex_rnp_notes |
Заметки | text |
yandex_card_views |
Показы карточки, шт | number |
yandex_card_clicks |
Переходы в карточку, шт | number |
yandex_add_to_basket |
Добавления в корзину, шт | number |
yandex_orders_amount |
Заказы, шт. | number |
yandex_orders_sum |
Заказы, руб. | money |
yandex_sales_amount |
Реализовано, шт. | number |
yandex_sales_sum |
Реализовано, руб. | money |
yandex_cancels_unredeemed |
Отмены и невыкупы, шт. | number |
yandex_returns_funnel |
Возвраты (воронка), шт. | number |
yandex_uf_returns_sum |
Сумма возвратов | money |
yandex_buyout_num |
Выкупы за 45д (скольз.) | number |
yandex_buyout_den |
Заказы с исходом за 45д (скольз.) | number |
yandex_uf_sales_sum |
Сумма продаж | money |
yandex_uf_sales_qty |
Продаж | number |
yandex_uf_returns_qty |
Возвратов | number |
yandex_ctr |
Конверсия в клик, %computed
yandex_ctr = yandex_card_clicks / yandex_card_views * 100
|
percent |
yandex_conversion_to_basket |
Конверсия в корзину, %computed
yandex_conversion_to_basket = yandex_add_to_basket / yandex_card_clicks * 100
|
percent |
yandex_conversion_to_order |
Конверсия в заказ, %computed
yandex_conversion_to_order = yandex_orders_amount / yandex_add_to_basket * 100
|
percent |
yandex_avg_price_order |
Средний чек заказа, руб.computed
yandex_avg_price_order = yandex_orders_sum / yandex_orders_amount
|
money |
yandex_avg_price_sale |
Средний чек реализации, руб.computed
yandex_avg_price_sale = yandex_sales_sum / yandex_sales_amount
|
money |
yandex_uf_cancels_sum |
Сумма отмен и невыкуповcomputed
yandex_uf_cancels_sum = yandex_cancels_unredeemed * yandex_uf_sales_sum / yandex_uf_sales_qty
|
money |
yandex_uf_cancel_rate |
% отмен и невыкуповcomputed
yandex_uf_cancel_rate = yandex_cancels_unredeemed / yandex_orders_amount * 100
|
percent |
yandex_uf_return_rate |
% возвратовcomputed
yandex_uf_return_rate = yandex_uf_returns_qty / yandex_uf_sales_qty * 100
|
percent |
yandex_buyout_rate_45d |
Процент выкупа, %computed
yandex_buyout_rate_45d = yandex_buyout_num / yandex_buyout_den * 100
|
percent |
Органическая воронка: показатели всего за вычетом продвижения
yandex_organic_sales_amount |
Продажи (органика), шт. | number |
yandex_card_views_org |
Показы орг., штcomputed
yandex_card_views_org = yandex_card_views - yandex_card_views_adv
|
number |
yandex_card_clicks_org |
Переходы орг., штcomputed
yandex_card_clicks_org = yandex_card_clicks - yandex_card_clicks_adv
|
number |
yandex_orders_amount_org |
Заказы орг., штcomputed
yandex_orders_amount_org = yandex_orders_amount - yandex_orders_amount_adv
|
number |
yandex_orders_sum_org |
Заказы орг., рубcomputed
yandex_orders_sum_org = yandex_orders_sum - yandex_orders_sum_adv
|
money |
Метрики продвижения: расходы, ДРР, заказы по кампаниям
yandex_adv_sum |
Расходы на продвижение, руб. | money |
yandex_adv_sum_bonus |
Расходы на продвижение (бонусы), руб. | money |
yandex_adv_sum_boost_sales |
Расходы на буст продаж, руб. | money |
yandex_adv_sum_boost_shows |
Расходы на буст показов, руб. | money |
yandex_adv_sum_shelf |
Расходы на полку, руб. | money |
yandex_adv_sum_banner |
Расходы на баннеры, руб. | money |
yandex_card_views_adv |
Показы по РК, шт | number |
yandex_card_clicks_adv |
Переходы по РК, шт | number |
yandex_add_to_basket_adv |
Корзина по РК, шт | number |
yandex_orders_amount_adv |
Заказы по РК, шт | number |
yandex_orders_sum_adv |
Заказы по РК, руб. | money |
yandex_adv_sales_amount |
Продажи по РК, шт. | number |
yandex_adv_sales_sum |
Продажи по РК, руб. | money |
yandex_drr_of_all_orders |
ДРР от всех заказов, %computed
yandex_drr_of_all_orders = yandex_adv_sum / yandex_orders_sum * 100
|
percent |
yandex_drr_of_all_orders_bonus |
ДРР от всех заказов (бонусы), %computed
yandex_drr_of_all_orders_bonus = yandex_adv_sum_bonus / yandex_orders_sum * 100
|
percent |
yandex_drr_of_all_orders_boost_sales |
ДРР от всех заказов (буст продаж), %computed
yandex_drr_of_all_orders_boost_sales = yandex_adv_sum_boost_sales / yandex_orders_sum * 100
|
percent |
yandex_drr_of_all_orders_boost_shows |
ДРР от всех заказов (буст показов), %computed
yandex_drr_of_all_orders_boost_shows = yandex_adv_sum_boost_shows / yandex_orders_sum * 100
|
percent |
yandex_drr_of_all_orders_shelf |
ДРР от всех заказов (полка), %computed
yandex_drr_of_all_orders_shelf = yandex_adv_sum_shelf / yandex_orders_sum * 100
|
percent |
yandex_drr_of_all_orders_banner |
ДРР от всех заказов (баннеры), %computed
yandex_drr_of_all_orders_banner = yandex_adv_sum_banner / yandex_orders_sum * 100
|
percent |
yandex_drr_of_all_sales |
ДРР от реализации, %computed
yandex_drr_of_all_sales = yandex_adv_sum / yandex_sales_sum * 100
|
percent |
yandex_drr_of_all_sales_bonus |
ДРР от реализации (бонусы), %computed
yandex_drr_of_all_sales_bonus = yandex_adv_sum_bonus / yandex_sales_sum * 100
|
percent |
yandex_drr_of_all_sales_boost_sales |
ДРР от реализации (буст продаж), %computed
yandex_drr_of_all_sales_boost_sales = yandex_adv_sum_boost_sales / yandex_sales_sum * 100
|
percent |
yandex_drr_of_all_sales_boost_shows |
ДРР от реализации (буст показов), %computed
yandex_drr_of_all_sales_boost_shows = yandex_adv_sum_boost_shows / yandex_sales_sum * 100
|
percent |
yandex_drr_of_all_sales_shelf |
ДРР от реализации (полка), %computed
yandex_drr_of_all_sales_shelf = yandex_adv_sum_shelf / yandex_sales_sum * 100
|
percent |
yandex_drr_of_all_sales_banner |
ДРР от реализации (баннеры), %computed
yandex_drr_of_all_sales_banner = yandex_adv_sum_banner / yandex_sales_sum * 100
|
percent |
yandex_drr_of_adv_orders |
ДРР от заказов по РК, %computed
yandex_drr_of_adv_orders = yandex_adv_sum / yandex_orders_sum_adv * 100
|
percent |
yandex_cost_per_mille |
Стоимость 1000 показов, руб.computed
yandex_cost_per_mille = yandex_adv_sum / yandex_card_views * 1000
|
money |
yandex_cost_per_click |
Стоимость перехода, руб.computed
yandex_cost_per_click = yandex_adv_sum / yandex_card_clicks
|
money |
yandex_cost_per_cart |
Стоимость корзины, руб.computed
yandex_cost_per_cart = yandex_adv_sum / yandex_add_to_basket
|
money |
yandex_cost_per_order |
Стоимость заказа, руб.computed
yandex_cost_per_order = yandex_adv_sum / yandex_orders_amount
|
money |
yandex_cost_per_sale |
Стоимость реализации, руб.computed
yandex_cost_per_sale = yandex_adv_sum / yandex_sales_amount
|
money |
Метрики план-факт: план, % выполнения, прогноз; целевые ДРР и маржинальность — цель и отклонение от неё
yandex_rnp_views_plan |
ПЛАН: Показы, штплан → yandex_card_views | number |
yandex_rnp_ads_cost_plan |
ПЛАН: Расходы на продвижениеплан → yandex_adv_sum | money |
yandex_rnp_profit_plan |
ПЛАН: Прибыльплан → yandex_uf_profit | money |
yandex_rnp_for_pay_plan |
ПЛАН: Сумма к перечислениюплан → yandex_uf_for_pay | money |
yandex_rnp_clicks_plan |
ПЛАН: Переходы, штплан → yandex_card_clicks | number |
yandex_rnp_add_to_cart_plan |
ПЛАН: Корзина, штплан → yandex_add_to_basket | number |
yandex_rnp_orders_count_plan |
ПЛАН: Заказы, штплан → yandex_orders_amount | number |
yandex_rnp_orders_sum_plan |
ПЛАН: Заказы, рубплан → yandex_orders_sum | money |
yandex_rnp_sales_count_plan |
ПЛАН: Реализовано, штплан → yandex_sales_amount | number |
yandex_rnp_sales_sum_plan |
ПЛАН: Реализовано, рубплан → yandex_sales_sum | money |
yandex_views_plan_pct |
% ВЫПОЛНЕНИЯ: Показы, штcomputed
yandex_views_plan_pct = yandex_card_views / yandex_rnp_views_plan * 100
|
percent |
yandex_ads_cost_plan_pct |
% ВЫПОЛНЕНИЯ: Расходы на продвижениеcomputed
yandex_ads_cost_plan_pct = yandex_adv_sum / yandex_rnp_ads_cost_plan * 100
|
percent |
yandex_profit_plan_pct |
% ВЫПОЛНЕНИЯ: Прибыльcomputed
yandex_profit_plan_pct = yandex_uf_profit / yandex_rnp_profit_plan * 100
|
percent |
yandex_for_pay_plan_pct |
% ВЫПОЛНЕНИЯ: Сумма к перечислениюcomputed
yandex_for_pay_plan_pct = yandex_uf_for_pay / yandex_rnp_for_pay_plan * 100
|
percent |
yandex_clicks_plan_pct |
% ВЫПОЛНЕНИЯ: Переходы, штcomputed
yandex_clicks_plan_pct = yandex_card_clicks / yandex_rnp_clicks_plan * 100
|
percent |
yandex_add_to_cart_plan_pct |
% ВЫПОЛНЕНИЯ: Корзина, штcomputed
yandex_add_to_cart_plan_pct = yandex_add_to_basket / yandex_rnp_add_to_cart_plan * 100
|
percent |
yandex_orders_count_plan_pct |
% ВЫПОЛНЕНИЯ: Заказы, штcomputed
yandex_orders_count_plan_pct = yandex_orders_amount / yandex_rnp_orders_count_plan * 100
|
percent |
yandex_orders_sum_plan_pct |
% ВЫПОЛНЕНИЯ: Заказы, рубcomputed
yandex_orders_sum_plan_pct = yandex_orders_sum / yandex_rnp_orders_sum_plan * 100
|
percent |
yandex_sales_count_plan_pct |
% ВЫПОЛНЕНИЯ: Реализовано, штcomputed
yandex_sales_count_plan_pct = yandex_sales_amount / yandex_rnp_sales_count_plan * 100
|
percent |
yandex_sales_sum_plan_pct |
% ВЫПОЛНЕНИЯ: Реализовано, рубcomputed
yandex_sales_sum_plan_pct = yandex_sales_sum / yandex_rnp_sales_sum_plan * 100
|
percent |
Метрики прибыли и маржинальности
yandex_uf_for_pay |
Сумма к перечислению | money |
yandex_uf_sebes |
Себестоимость реализованного товара | money |
yandex_uf_profit |
Маржинальная прибыль | money |
yandex_uf_buyer_payments |
Оплатили покупатели | money |
yandex_uf_payment_returns |
Возвращено покупателям | money |
yandex_uf_tax |
Налог | money |
yandex_uf_vat_out |
НДС (исходящий) | money |
yandex_uf_vat_in |
НДС (входящий) | money |
yandex_uf_self_buyouts |
Затраты на самовыкупы | money |
yandex_uf_self_buyouts_sebes |
Себестоимость самовыкупов | money |
yandex_uf_distributions |
Затраты на раздачи (сумма кэшбэка) | money |
yandex_uf_marketing |
Внешний маркетинг | money |
yandex_uf_realized_after |
Сумма реализации с учётом скидок Маркетаcomputed
yandex_uf_realized_after = yandex_uf_buyer_payments + yandex_uf_payment_returns
|
money |
yandex_uf_for_pay_share |
К перечислению, %computed
yandex_uf_for_pay_share = yandex_uf_for_pay / yandex_sales_sum * 100
|
percent |
yandex_uf_sebes_share |
Себестоимость, %computed
yandex_uf_sebes_share = -yandex_uf_sebes / yandex_sales_sum * 100
|
percent |
yandex_uf_margin |
Маржинальность до скидок Маркетаcomputed
yandex_uf_margin = yandex_uf_profit / yandex_sales_sum * 100
|
percent |
yandex_uf_margin_after |
Маржинальность после скидок Маркетаcomputed
yandex_uf_margin_after = yandex_uf_profit / yandex_uf_realized_after * 100
|
percent |
yandex_uf_roi |
Рентабельность товараcomputed
yandex_uf_roi = yandex_uf_profit / -yandex_uf_sebes * 100
|
percent |
Метрики остатков и запасов
yandex_stocks_amount |
Остаток, шт | number |
yandex_stocks_fit |
Остаток годного, шт | number |
yandex_stocks_reserved |
Зарезервировано под заказы, шт | number |
yandex_stocks_quarantine |
Карантин, шт | number |
yandex_stocks_defect |
Брак, шт | number |
yandex_stocks_expiring |
С истекшим сроком, шт | number |
yandex_stocks_utilization |
К утилизации, шт | number |
yandex_stock_price |
Цена реализации остатков, руб. | money |
yandex_stock_sebes |
Себестоимость остатков, руб. | money |
Метрики цен и скидок Маркета
yandex_price_before_discount |
Цена до скидок, руб | money |
yandex_price_after_discount |
Цена после скидок, руб | money |
yandex_discount_rub |
Скидка Маркета, рубcomputed
yandex_discount_rub = yandex_price_before_discount - yandex_price_after_discount
|
money |
yandex_discount_percent |
Скидка Маркета, %computed
yandex_discount_percent = (yandex_price_before_discount - yandex_price_after_discount) / yandex_price_before_discount * 100
|
percent |
curl https://web.metriclab.ru/v1/yandex/metrics \
-H "Authorization: Bearer ml_live_xxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"cabinets": ["11223344"],
"date_from": "2026-05-01",
"date_to": "2026-05-31",
"metrics": ["orders_amount", "orders_sum", "card_clicks"],
"group_by": ["date"]
}'
import requests
KEY = "ml_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
HOST = "https://web.metriclab.ru"
resp = requests.post(
f"{HOST}/v1/yandex/metrics",
headers={"Authorization": f"Bearer {KEY}"},
json={
"cabinets": ["11223344"],
"date_from": "2026-05-01",
"date_to": "2026-05-31",
"metrics": ["orders_amount", "orders_sum", "card_clicks"],
"group_by": ["date"],
},
timeout=120,
)
resp.raise_for_status()
data = resp.json()
print(data["data"]["current"]["totals"])
const KEY = "ml_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
const HOST = "https://web.metriclab.ru";
const r = await fetch(`${HOST}/v1/yandex/metrics`, {
method: "POST",
headers: {
"Authorization": `Bearer ${KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
cabinets: ["11223344"],
date_from: "2026-05-01",
date_to: "2026-05-31",
metrics: ["orders_amount", "orders_sum", "card_clicks"],
group_by: ["date"],
}),
});
if (!r.ok) throw new Error(`HTTP ${r.status}`);
const { data, meta } = await r.json();
console.log(data.current.totals);
{
"status": "success",
"data": {
"current": {
"totals": {
"orders_amount": 1234,
"orders_sum": 567890.12,
"card_clicks": 18540
},
"by_date": {
"2026-05-01": {
"orders_amount": 42,
"card_clicks": 380
}
/* ... */
}
}
},
"meta": {
"marketplace": "yandex",
"dataset": "metrics",
"cabinets": 1,
"yls": 1,
"metrics": ["orders_amount", "orders_sum", "card_clicks"],
"group_by": ["date"],
"include_previous": false
}
}
Рекламная статистика Wildberries за период с группировкой по датам и/или артикулам: показы, клики, добавления в корзину, заказы (в шт. и руб.), расходы. Все data-метрики аддитивны — суммируются по любому разрезу.
/metrics, но метрики рекламные (wb_rnpadv_*)._no_assoc."campaign" в group_by. Тогда форма ответа другая: блок data.campaigns (имя/тип/статус) + data.current.by_campaign (метрики по кампании). См. раздел «Разрез по рекламным кампаниям» ниже.429 — ждите Retry-After.supplier_id кабинетов. Вместо идентификатора можно указать название кабинета — то, что отдаёт GET /v1/cabinets в поле name (регистр не важен). Кабинет должен принадлежать владельцу API-ключа (получите доступные через GET /v1/cabinets). Пустой массив [] — взять все доступные пользователю.
YYYY-MM-DD. Включительно.
YYYY-MM-DD. Включительно.
computed — метрики с такой пометкой API не считает, их вы получаете сами по формуле (она указана рядом в каталоге).
"date", "article", "campaign". По умолчанию [] — только итоги (totals). Можно комбинировать. Разрез "campaign" отдаёт статистику по каждой рекламной кампании — см. ниже.
true — в ответе появится data.previous для сравнения с прошлым периодом. Сам период задайте полями date_from_previous и date_to_previous. По умолчанию false.
YYYY-MM-DD. Нужно вместе с include_previous: true.
YYYY-MM-DD.
nm_id) в виде строк.
"success" при HTTP 200. При ошибке — "error" и поле error.
current (всегда) и опционально previous.
date_from … date_to).
group_by есть "date". Ключ — дата YYYY-MM-DD.
group_by есть "article". Ключ строки — "кабинет:артикул". Кабинет в начале — чтобы одинаковые артикулы из разных кабинетов не склеились; название кабинета то же, что в GET /v1/cabinets.
group_by есть и "date", и "article". Разрез артикул × дата.
include_previous: true. Структура идентична current — те же totals / by_date / by_article / by_article_date за предыдущий период.
"wb".
"advertising".
Сырые компоненты (показы, клики, расходы, заказы) + производные
(CPM, CTR, CPC, CPA, ДРР и др.) с тегом
computed. Производные в ответе не приходят —
запросите сырые компоненты из формулы и посчитайте сами по приложенному выражению.
Метрики рекламных кампаний: показы, клики, расходы, заказы по РК
wb_rnpadv_notes |
Заметки | text |
wb_rnpadv_views |
Показы РК, шт | number |
wb_rnpadv_clicks |
Клики РК, шт | number |
wb_rnpadv_atbs |
Корзина РК, шт | number |
wb_rnpadv_atbs_no_assoc |
Корзина, шт (без ассоц.) | number |
wb_rnpadv_atbs_assoc |
Корзина, шт (ассоц.) | number |
wb_rnpadv_orders_count |
Заказы РК, шт | number |
wb_rnpadv_orders_count_no_assoc |
Заказы, шт (без ассоц.) | number |
wb_rnpadv_orders_count_assoc |
Заказы, шт (ассоц.) | number |
wb_rnpadv_orders_sum |
Заказы РК, руб | money |
wb_rnpadv_orders_sum_no_assoc |
Заказы, ₽ (без ассоц.) | money |
wb_rnpadv_orders_sum_assoc |
Заказы, ₽ (ассоц.) | money |
wb_rnpadv_expenses |
Расходы, ₽ | money |
wb_adv_cpm |
Стоимость 1000 показов, ₽computed
wb_adv_cpm = wb_rnpadv_expenses / wb_rnpadv_views * 1000
|
number |
wb_adv_ctr |
CTR, %computed
wb_adv_ctr = wb_rnpadv_clicks / wb_rnpadv_views * 100
|
percent |
wb_adv_cpc |
Стоимость клика, ₽computed
wb_adv_cpc = wb_rnpadv_expenses / wb_rnpadv_clicks
|
number |
wb_adv_cr_atbs |
Конверсия в корзину, %computed
wb_adv_cr_atbs = wb_rnpadv_atbs / wb_rnpadv_clicks * 100
|
percent |
wb_adv_cpa |
Стоимость корзины, ₽computed
wb_adv_cpa = wb_rnpadv_expenses / wb_rnpadv_atbs
|
number |
wb_adv_cr_orders |
Конверсия в заказ, %computed
wb_adv_cr_orders = wb_rnpadv_orders_count / wb_rnpadv_atbs * 100
|
percent |
wb_adv_cpo |
Стоимость заказа, ₽computed
wb_adv_cpo = wb_rnpadv_expenses / wb_rnpadv_orders_count
|
number |
wb_adv_drr |
ДРР, %computed
wb_adv_drr = wb_rnpadv_expenses / orders_sum * 100
|
percent |
Добавьте "campaign" в group_by — и статистика придёт по каждой рекламной кампании, а не свёрнутая до артикулов. Можно комбинировать с "date" и "article".
Ответ устроен так же, как обычный (current / previous), только в разрезе кампаний. Имя, тип и статус каждой кампании — в отдельном блоке data.campaigns (он не зависит от периода):
{"<ключ>": {campaign_id, yl, name, type, status}} — имя кампании, тип и статус.{"<ключ>": {metric: value}}."date" — разрез кампания × дата."article" — разрез кампания × артикул.include_previous: true.Ключ кампании — "<yl>:<campaign_id>" (юрлицо : id кампании), чтобы кампании разных юрлиц не сливались.
{
"status": "success",
"data": {
"campaigns": {
"<yl>:123456": {"campaign_id": "123456", "name": "Поиск · вешалки", "type": "ОЗК (Поиск + рекомендации)", "status": "Активная"}
},
"current": {
"totals": {"wb_rnpadv_views": 1250400},
"by_campaign": {
"<yl>:123456": {"wb_rnpadv_views": 787123, "wb_rnpadv_clicks": 23759, "wb_rnpadv_expenses": 59601.35}
}
}
},
"meta": {"dataset": "advertising", "group_by": ["campaign"]}
}
curl https://web.metriclab.ru/v1/wb/advertising \
-H "Authorization: Bearer ml_live_xxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"cabinets": ["12345"],
"date_from": "2026-05-01",
"date_to": "2026-05-31",
"metrics": ["wb_rnpadv_views", "wb_rnpadv_clicks", "wb_rnpadv_expenses"],
"group_by": ["date"]
}'
import requests
KEY = "ml_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
HOST = "https://web.metriclab.ru"
resp = requests.post(
f"{HOST}/v1/wb/advertising",
headers={"Authorization": f"Bearer {KEY}"},
json={
"cabinets": ["12345"],
"date_from": "2026-05-01",
"date_to": "2026-05-31",
"metrics": ["wb_rnpadv_views", "wb_rnpadv_expenses"],
"group_by": ["date"],
},
timeout=120,
)
totals = resp.json()["data"]["current"]["totals"]
ctr = totals["wb_rnpadv_clicks"] / totals["wb_rnpadv_views"] * 100
print(f"CTR: {ctr:.2f}%")
{
"status": "success",
"data": {
"current": {
"totals": {
"wb_rnpadv_views": 1250400,
"wb_rnpadv_clicks": 18540,
"wb_rnpadv_expenses": 45200.50
},
"by_date": {
"2026-05-01": {
"wb_rnpadv_views": 41200,
"wb_rnpadv_clicks": 615
}
/* ... */
}
}
},
"meta": {
"marketplace": "wb",
"dataset": "advertising",
"cabinets": 1,
"yls": 1,
"metrics": ["wb_rnpadv_views", "wb_rnpadv_clicks", "wb_rnpadv_expenses"],
"group_by": ["date"],
"include_previous": false
}
}
Рекламная статистика Ozon за период с группировкой по датам и/или артикулам: показы, клики, добавления в корзину, заказы (в шт. и руб.), расходы. Все data-метрики аддитивны — суммируются по любому разрезу.
/metrics, но метрики рекламные (ozon_rnpadv_*)._no_assoc."campaign" в group_by. Тогда форма ответа другая: блок data.campaigns (имя/тип/статус) + data.current.by_campaign (метрики по кампании). См. раздел «Разрез по рекламным кампаниям» ниже.429 — ждите Retry-After.client_id кабинетов. Вместо идентификатора можно указать название кабинета — то, что отдаёт GET /v1/cabinets в поле name (регистр не важен). Кабинет должен принадлежать владельцу API-ключа (получите доступные через GET /v1/cabinets). Пустой массив [] — взять все доступные пользователю.
YYYY-MM-DD. Включительно.
YYYY-MM-DD. Включительно.
computed — метрики с такой пометкой API не считает, их вы получаете сами по формуле (она указана рядом в каталоге).
"date", "article", "campaign". По умолчанию [] — только итоги (totals). Можно комбинировать. Разрез "campaign" отдаёт статистику по каждой рекламной кампании — см. ниже.
true — в ответе появится data.previous для сравнения с прошлым периодом. Сам период задайте полями date_from_previous и date_to_previous. По умолчанию false.
YYYY-MM-DD. Нужно вместе с include_previous: true.
YYYY-MM-DD.
"success" при HTTP 200. При ошибке — "error" и поле error.
current (всегда) и опционально previous.
date_from … date_to).
group_by есть "date". Ключ — дата YYYY-MM-DD.
group_by есть "article". Ключ строки — "кабинет:sku". Кабинет в начале — чтобы одинаковые SKU из разных кабинетов не склеились; название кабинета то же, что в GET /v1/cabinets.
group_by есть и "date", и "article". Разрез артикул × дата.
include_previous: true. Структура идентична current — те же totals / by_date / by_article / by_article_date за предыдущий период.
"ozon".
"advertising".
Сырые компоненты (показы, клики, расходы, заказы) + производные
(CPM, CTR, CPC, CPA, ДРР и др.) с тегом
computed. Производные в ответе не приходят —
запросите сырые компоненты из формулы и посчитайте сами по приложенному выражению.
Метрики рекламных кампаний: показы, клики, расходы, заказы по РК
ozon_rnpadv_notes |
Заметки | text |
ozon_rnpadv_views |
Показы, шт | number |
ozon_rnpadv_clicks |
Клики, шт | number |
ozon_rnpadv_orders_count |
Заказы, шт | number |
ozon_rnpadv_orders_count_no_assoc |
Заказы, шт (без ассоц.) | number |
ozon_rnpadv_orders_count_assoc |
Заказы, шт (ассоц.) | number |
ozon_rnpadv_orders_sum |
Заказы, ₽ | money |
ozon_rnpadv_orders_sum_no_assoc |
Заказы, ₽ (без ассоц.) | money |
ozon_rnpadv_orders_sum_assoc |
Заказы, ₽ (ассоц.) | money |
ozon_rnpadv_expenses |
Расходы, ₽ | money |
ozon_adv_cpm |
Стоимость 1000 показов, ₽computed
ozon_adv_cpm = ozon_rnpadv_expenses / ozon_rnpadv_views * 1000
|
number |
ozon_adv_ctr |
CTR, %computed
ozon_adv_ctr = ozon_rnpadv_clicks / ozon_rnpadv_views * 100
|
percent |
ozon_adv_cpc |
Стоимость клика, ₽computed
ozon_adv_cpc = ozon_rnpadv_expenses / ozon_rnpadv_clicks
|
number |
ozon_adv_cr_orders |
Конверсия в заказ, %computed
ozon_adv_cr_orders = ozon_rnpadv_orders_count / ozon_rnpadv_clicks * 100
|
percent |
ozon_adv_cpo |
Стоимость заказа, ₽computed
ozon_adv_cpo = ozon_rnpadv_expenses / ozon_rnpadv_orders_count
|
number |
ozon_adv_drr |
ДРР, %computed
ozon_adv_drr = ozon_rnpadv_expenses / orders_sum * 100
|
percent |
Добавьте "campaign" в group_by — и статистика придёт по каждой рекламной кампании, а не свёрнутая до артикулов. Можно комбинировать с "date" и "article".
Ответ устроен так же, как обычный (current / previous), только в разрезе кампаний. Имя, тип и статус каждой кампании — в отдельном блоке data.campaigns (он не зависит от периода):
{"<ключ>": {campaign_id, yl, name, type, status}} — имя кампании, тип и статус.{"<ключ>": {metric: value}}."date" — разрез кампания × дата."article" — разрез кампания × артикул.include_previous: true.Ключ кампании — "<yl>:<campaign_id>" (юрлицо : id кампании), чтобы кампании разных юрлиц не сливались.
{
"status": "success",
"data": {
"campaigns": {
"<yl>:123456": {"campaign_id": "123456", "name": "Поиск · вешалки", "type": "ОЗК (Поиск + рекомендации)", "status": "Активная"}
},
"current": {
"totals": {"ozon_rnpadv_views": 1250400},
"by_campaign": {
"<yl>:123456": {"ozon_rnpadv_views": 787123, "ozon_rnpadv_clicks": 23759, "ozon_rnpadv_expenses": 59601.35}
}
}
},
"meta": {"dataset": "advertising", "group_by": ["campaign"]}
}
curl https://web.metriclab.ru/v1/ozon/advertising \
-H "Authorization: Bearer ml_live_xxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"cabinets": ["67890"],
"date_from": "2026-05-01",
"date_to": "2026-05-31",
"metrics": ["ozon_rnpadv_views", "ozon_rnpadv_clicks", "ozon_rnpadv_expenses"],
"group_by": ["date"]
}'
import requests
KEY = "ml_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
HOST = "https://web.metriclab.ru"
resp = requests.post(
f"{HOST}/v1/ozon/advertising",
headers={"Authorization": f"Bearer {KEY}"},
json={
"cabinets": ["67890"],
"date_from": "2026-05-01",
"date_to": "2026-05-31",
"metrics": ["ozon_rnpadv_views", "ozon_rnpadv_expenses"],
"group_by": ["date"],
},
timeout=120,
)
totals = resp.json()["data"]["current"]["totals"]
ctr = totals["ozon_rnpadv_clicks"] / totals["ozon_rnpadv_views"] * 100
print(f"CTR: {ctr:.2f}%")
{
"status": "success",
"data": {
"current": {
"totals": {
"ozon_rnpadv_views": 1250400,
"ozon_rnpadv_clicks": 18540,
"ozon_rnpadv_expenses": 45200.50
},
"by_date": {
"2026-05-01": {
"ozon_rnpadv_views": 41200,
"ozon_rnpadv_clicks": 615
}
/* ... */
}
}
},
"meta": {
"marketplace": "ozon",
"dataset": "advertising",
"cabinets": 1,
"yls": 1,
"metrics": ["ozon_rnpadv_views", "ozon_rnpadv_clicks", "ozon_rnpadv_expenses"],
"group_by": ["date"],
"include_previous": false
}
}
Рекламная статистика Яндекс Маркет за период с группировкой по датам и/или артикулам: показы, клики, добавления в корзину, заказы (в шт. и руб.), расходы. Все data-метрики аддитивны — суммируются по любому разрезу.
/metrics, но метрики рекламные (yandex_rnpadv_*)._no_assoc."campaign" в group_by. Тогда форма ответа другая: блок data.campaigns (имя/тип/статус) + data.current.by_campaign (метрики по кампании). См. раздел «Разрез по рекламным кампаниям» ниже.429 — ждите Retry-After.business_id кабинетов. Вместо идентификатора можно указать название кабинета — то, что отдаёт GET /v1/cabinets в поле name (регистр не важен). Кабинет должен принадлежать владельцу API-ключа (получите доступные через GET /v1/cabinets). Пустой массив [] — взять все доступные пользователю.
YYYY-MM-DD. Включительно.
YYYY-MM-DD. Включительно.
computed — метрики с такой пометкой API не считает, их вы получаете сами по формуле (она указана рядом в каталоге).
"date", "article", "campaign". По умолчанию [] — только итоги (totals). Можно комбинировать. Разрез "campaign" отдаёт статистику по каждой рекламной кампании — см. ниже.
true — в ответе появится data.previous для сравнения с прошлым периодом. Сам период задайте полями date_from_previous и date_to_previous. По умолчанию false.
YYYY-MM-DD. Нужно вместе с include_previous: true.
YYYY-MM-DD.
"success" при HTTP 200. При ошибке — "error" и поле error.
current (всегда) и опционально previous.
date_from … date_to).
group_by есть "date". Ключ — дата YYYY-MM-DD.
group_by есть "article". Ключ строки — "кабинет:артикул". Кабинет в начале — чтобы одинаковые артикулы из разных кабинетов не склеились; название кабинета то же, что в GET /v1/cabinets.
group_by есть и "date", и "article". Разрез артикул × дата.
include_previous: true. Структура идентична current — те же totals / by_date / by_article / by_article_date за предыдущий период.
"yandex".
"advertising".
Сырые компоненты (показы, клики, расходы, заказы) + производные
(CPM, CTR, CPC, CPA, ДРР и др.) с тегом
computed. Производные в ответе не приходят —
запросите сырые компоненты из формулы и посчитайте сами по приложенному выражению.
Метрики рекламных кампаний: показы, клики, расходы, заказы по РК
yandex_rnpadv_notes |
Заметки | text |
yandex_rnpadv_views |
Показы РК, шт | number |
yandex_rnpadv_clicks |
Клики РК, шт | number |
yandex_rnpadv_atbs |
Корзина РК, шт | number |
yandex_rnpadv_orders_count |
Заказы РК, шт | number |
yandex_rnpadv_sales_count |
Доставлено РК, шт | number |
yandex_rnpadv_orders_sum |
Заказы РК, руб | money |
yandex_rnpadv_sales_sum |
Выручка с бустом, руб | money |
yandex_rnpadv_expenses |
Расходы, ₽ | money |
yandex_rnpadv_bonus |
Оплачено бонусами, ₽ | money |
yandex_adv_cpm |
Стоимость 1000 показов, ₽computed
yandex_adv_cpm = yandex_rnpadv_expenses / yandex_rnpadv_views * 1000
|
number |
yandex_adv_ctr |
CTR, %computed
yandex_adv_ctr = yandex_rnpadv_clicks / yandex_rnpadv_views * 100
|
percent |
yandex_adv_cpc |
Стоимость клика, ₽computed
yandex_adv_cpc = yandex_rnpadv_expenses / yandex_rnpadv_clicks
|
number |
yandex_adv_cr_atbs |
Конверсия в корзину, %computed
yandex_adv_cr_atbs = yandex_rnpadv_atbs / yandex_rnpadv_clicks * 100
|
percent |
yandex_adv_cpa |
Стоимость корзины, ₽computed
yandex_adv_cpa = yandex_rnpadv_expenses / yandex_rnpadv_atbs
|
number |
yandex_adv_cr_orders |
Конверсия в заказ, %computed
yandex_adv_cr_orders = yandex_rnpadv_orders_count / yandex_rnpadv_atbs * 100
|
percent |
yandex_adv_cpo |
Стоимость заказа, ₽computed
yandex_adv_cpo = yandex_rnpadv_expenses / yandex_rnpadv_orders_count
|
number |
yandex_adv_drr |
ДРР, %computed
yandex_adv_drr = yandex_rnpadv_expenses / (yandex_rnpadv_orders_sum + yandex_rnpadv_sales_sum) * 100
|
percent |
Добавьте "campaign" в group_by — и статистика придёт по каждой рекламной кампании, а не свёрнутая до артикулов. Можно комбинировать с "date" и "article".
Ответ устроен так же, как обычный (current / previous), только в разрезе кампаний. Имя, тип и статус каждой кампании — в отдельном блоке data.campaigns (он не зависит от периода):
{"<ключ>": {campaign_id, yl, name, type, status}} — имя кампании, тип и статус.{"<ключ>": {metric: value}}."date" — разрез кампания × дата."article" — разрез кампания × артикул.include_previous: true.Ключ кампании — "<yl>:<campaign_id>" (юрлицо : id кампании), чтобы кампании разных юрлиц не сливались.
{
"status": "success",
"data": {
"campaigns": {
"<yl>:123456": {"campaign_id": "123456", "name": "Поиск · вешалки", "type": "ОЗК (Поиск + рекомендации)", "status": "Активная"}
},
"current": {
"totals": {"yandex_rnpadv_views": 1250400},
"by_campaign": {
"<yl>:123456": {"yandex_rnpadv_views": 787123, "yandex_rnpadv_clicks": 23759, "yandex_rnpadv_expenses": 59601.35}
}
}
},
"meta": {"dataset": "advertising", "group_by": ["campaign"]}
}
curl https://web.metriclab.ru/v1/yandex/advertising \
-H "Authorization: Bearer ml_live_xxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"cabinets": ["11223344"],
"date_from": "2026-05-01",
"date_to": "2026-05-31",
"metrics": ["yandex_rnpadv_views", "yandex_rnpadv_clicks", "yandex_rnpadv_expenses"],
"group_by": ["date"]
}'
import requests
KEY = "ml_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
HOST = "https://web.metriclab.ru"
resp = requests.post(
f"{HOST}/v1/yandex/advertising",
headers={"Authorization": f"Bearer {KEY}"},
json={
"cabinets": ["11223344"],
"date_from": "2026-05-01",
"date_to": "2026-05-31",
"metrics": ["yandex_rnpadv_views", "yandex_rnpadv_expenses"],
"group_by": ["date"],
},
timeout=120,
)
totals = resp.json()["data"]["current"]["totals"]
ctr = totals["yandex_rnpadv_clicks"] / totals["yandex_rnpadv_views"] * 100
print(f"CTR: {ctr:.2f}%")
{
"status": "success",
"data": {
"current": {
"totals": {
"yandex_rnpadv_views": 1250400,
"yandex_rnpadv_clicks": 18540,
"yandex_rnpadv_expenses": 45200.50
},
"by_date": {
"2026-05-01": {
"yandex_rnpadv_views": 41200,
"yandex_rnpadv_clicks": 615
}
/* ... */
}
}
},
"meta": {
"marketplace": "yandex",
"dataset": "advertising",
"cabinets": 1,
"yls": 1,
"metrics": ["yandex_rnpadv_views", "yandex_rnpadv_clicks", "yandex_rnpadv_expenses"],
"group_by": ["date"],
"include_previous": false
}
}
Расчёт потребности в поставках — та же методика, что у виджета «Расчёт поставок» на сайте. Для каждого артикула и размера в разрезе по федеральным округам считаются потребность, текущий остаток, среднесуточные продажи и заказы, прогноз выкупов и оборачиваемость.
Формула потребности по каждой ячейке (товар × округ):
raw = среднесуточное × (planning_days + lead_time) × (1 + demand_growth_percent)
demand = округление(raw − остаток до кратности поставки), не меньше 0.
Что берётся за «среднесуточное» — определяет calc_method.
date_from/date_to — период, по которому считаются среднесуточные продажи/заказы (например, последние 30 дней). Будущее обрезается до сегодня.limit = «топ-N к довозу», по умолчанию и максимум 5000; если товаров больше — листайте через offset (полное число — в data.total).lead_time применяется ко всем округам сразу; переопределить для конкретного — через cluster_settings.planning_days, calc_method и др.) по умолчанию совпадают с виджетом. Чтобы сверить вывод — выставьте на сайте те же значения и тот же период.limit.supplier_id кабинетов. Должны принадлежать владельцу ключа (GET /v1/cabinets). Пустой массив [] — все доступные.YYYY-MM-DD — за него считаются среднесуточные продажи/заказы. Включительно.YYYY-MM-DD. Включительно. Будущие даты усекаются до сегодня.30.0."sales" — выкупы (по умолчанию), "orders" — заказы, "ordersBuyout" — заказы × % выкупа.0.5 = +50%. По умолчанию 0.1 (по умолчанию).true — округлять кратность только вверх; false — математическое округление (по умолчанию).ordersBuyout и прогнозе выкупов. По умолчанию 45.["Центральный"]). Пусто — все известные.lead_time).{"Центральный": {"leadTime": 14}}.data.total; если их больше 5000, забирайте страницами через offset.0. Например offset: 5000 — вторая страница (товары 5001–10000).articles, brands, subjects, article_suppliers, grouping_level_1..3, group_name, responsible)."success" при 200.YYYY-MM-DD.limit/offset). В products приходит срез согласно пагинации.demand/stock/... имеют ключами округа.nm_id)."0" — без размера).null — нет данных.{"Центральный": 120}.null, если нет % выкупа.marketplace, calc_method, planning_days, lead_time, rounding_multiple, clusters, products и др.curl https://web.metriclab.ru/v1/wb/supplies \
-H "Authorization: Bearer ml_live_xxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"cabinets": ["12345"],
"date_from": "2026-05-01",
"date_to": "2026-05-31",
"planning_days": 30,
"lead_time": 7,
"calc_method": "sales",
"limit": 200
}'
import requests
KEY = "ml_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
HOST = "https://web.metriclab.ru"
resp = requests.post(
f"{HOST}/v1/wb/supplies",
headers={"Authorization": f"Bearer {KEY}"},
json={
"cabinets": ["12345"],
"date_from": "2026-05-01",
"date_to": "2026-05-31",
"planning_days": 30,
"lead_time": 7,
"calc_method": "sales",
"limit": 200,
},
timeout=120,
)
products = resp.json()["data"]["products"]
for p in products[:5]:
print(p["article"], p["demand_total"])
{
"status": "success",
"data": {
"clusters": ["Центральный"],
"stock_date": "2026-05-31",
"days_in_period": 31,
"total": 412,
"products": [
{
"article": "176003726", "size": "0",
"article_supplier": "ART-001",
"name": "Товар-пример", "brand": "BrandX",
"redemption_percent": 0.82,
"demand": {"Центральный": 120},
"stock": {"Центральный": 35},
"daily_sales": {"Центральный": 5.16},
"turnover_sales": 6.8,
"demand_total": 120, "stock_total": 35
}
]
},
"meta": {"marketplace": "wb", "dataset": "supplies", "calc_method": "sales", "products": 412}
}
Расчёт потребности в поставках — та же методика, что у виджета «Расчёт поставок» на сайте. Для каждого SKU в разрезе по кластерам Ozon считаются потребность, текущий остаток, среднесуточные продажи и заказы, прогноз выкупов и оборачиваемость.
Формула потребности по каждой ячейке (товар × кластер):
raw = среднесуточное × (planning_days + lead_time) × (1 + demand_growth_percent)
demand = округление(raw − остаток до кратности поставки), не меньше 0.
Что берётся за «среднесуточное» — определяет calc_method.
date_from/date_to — период, по которому считаются среднесуточные продажи/заказы (например, последние 30 дней). Будущее обрезается до сегодня.limit = «топ-N к довозу», по умолчанию и максимум 5000; если товаров больше — листайте через offset (полное число — в data.total).lead_time применяется ко всем кластерам сразу; переопределить для конкретного — через cluster_settings.planning_days, calc_method и др.) по умолчанию совпадают с виджетом. Чтобы сверить вывод — выставьте на сайте те же значения и тот же период.limit.client_id кабинетов. Должны принадлежать владельцу ключа (GET /v1/cabinets). Пустой массив [] — все доступные.YYYY-MM-DD — за него считаются среднесуточные продажи/заказы. Включительно.YYYY-MM-DD. Включительно. Будущие даты усекаются до сегодня.30.0."sales" — продажи (по умолчанию), "orders" — заказы, "ordersBuyout" — заказы × % выкупа.0.5 = +50%. По умолчанию 0.1 (по умолчанию).true — округлять кратность только вверх; false — математическое округление (по умолчанию).ordersBuyout и прогнозе выкупов. По умолчанию 45.["Москва, МО и Дальние регионы"]). Пусто — все известные.lead_time).{"Воронеж": {"leadTime": 14}}.data.total; если их больше 5000, забирайте страницами через offset.0. Например offset: 5000 — вторая страница (товары 5001–10000).skus, brands, subjects, article_suppliers, grouping_level_1..3, group_name, responsible)."success" при 200.YYYY-MM-DD.limit/offset). В products приходит срез согласно пагинации.demand/stock/... имеют ключами кластеры.null — нет данных.{"Воронеж": 120}.null, если нет % выкупа.marketplace, calc_method, planning_days, lead_time, rounding_multiple, clusters, products и др.curl https://web.metriclab.ru/v1/ozon/supplies \
-H "Authorization: Bearer ml_live_xxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"cabinets": ["67890"],
"date_from": "2026-05-01",
"date_to": "2026-05-31",
"planning_days": 30,
"lead_time": 7,
"calc_method": "sales",
"limit": 200
}'
import requests
KEY = "ml_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
HOST = "https://web.metriclab.ru"
resp = requests.post(
f"{HOST}/v1/ozon/supplies",
headers={"Authorization": f"Bearer {KEY}"},
json={
"cabinets": ["67890"],
"date_from": "2026-05-01",
"date_to": "2026-05-31",
"planning_days": 30,
"lead_time": 7,
"calc_method": "sales",
"limit": 200,
},
timeout=120,
)
products = resp.json()["data"]["products"]
for p in products[:5]:
print(p["sku"], p["demand_total"])
{
"status": "success",
"data": {
"clusters": ["Москва, МО и Дальние регионы"],
"stock_date": "2026-05-31",
"days_in_period": 31,
"total": 412,
"products": [
{
"sku": "1612345678",
"article_supplier": "ART-001",
"name": "Товар-пример", "brand": "BrandX",
"redemption_percent": 0.82,
"demand": {"Москва, МО и Дальние регионы": 120},
"stock": {"Москва, МО и Дальние регионы": 35},
"daily_sales": {"Москва, МО и Дальние регионы": 5.16},
"turnover_sales": 6.8,
"demand_total": 120, "stock_total": 35
}
]
},
"meta": {"marketplace": "ozon", "dataset": "supplies", "calc_method": "sales", "products": 412}
}
Остатки товаров по складам, построчно в разрезе товар × склад × дата. По умолчанию FBO (склады Wildberries); параметром type можно запросить FBS (склады продавца) или оба сразу. Для каждой строки: характеристики товара, склад, остаток в штуках, себестоимость и цена единицы, а также стоимость всего остатка.
"fbo" (по умолчанию) — остатки на складах WB; "fbs" — склады продавца; "both" — и то, и то (в строках поле type = FBO/FBS).date_from/date_to задают диапазон дат. Если обе не переданы — вернутся остатки за всё время.stock_cost = quantity × unit_cost, stock_price = quantity × unit_price. Если себес/цена неизвестны — null.limit (по умолчанию 50000, максимум 100000) и offset. Лимит применяется на каждый кабинет: для сквозной постраничной выгрузки запрашивайте по одному cabinets.supplier_id кабинетов. Должны принадлежать владельцу ключа (GET /v1/cabinets). Пустой массив [] — все доступные."fbo" (по умолчанию), "fbs" или "both".YYYY-MM-DD, включительно. Не передавать вместе с date_to → за всё время.YYYY-MM-DD, включительно.50000, максимум 100000.Строки — в data.rows[]. Поля каждой строки:
FBO или FBS.YYYY-MM-DD.null).curl https://web.metriclab.ru/v1/wb/stocks \
-H "Authorization: Bearer ml_live_..." \
-H "Content-Type: application/json" \
-d '{"cabinets": ["12345"], "type": "both", "date_from": "2026-08-01", "date_to": "2026-08-05"}'
Остатки товаров по складам, построчно в разрезе товар × склад × дата. По умолчанию FBO (склады Ozon); параметром type можно запросить FBS (склады продавца) или оба сразу. Для каждой строки: характеристики товара, склад, остаток в штуках, себестоимость и цена единицы, а также стоимость всего остатка.
"fbo" (по умолчанию) — остатки на складах Ozon; "fbs" — склады продавца; "both" — и то, и то (в строках поле type = FBO/FBS).date_from/date_to задают диапазон дат. Если обе не переданы — вернутся остатки за всё время.stock_cost = quantity × unit_cost, stock_price = quantity × unit_price. Если себес/цена неизвестны — null.limit (по умолчанию 50000, максимум 100000) и offset. Лимит применяется на каждый кабинет: для сквозной постраничной выгрузки запрашивайте по одному cabinets.client_id кабинетов. Должны принадлежать владельцу ключа (GET /v1/cabinets). Пустой массив [] — все доступные."fbo" (по умолчанию), "fbs" или "both".YYYY-MM-DD, включительно. Не передавать вместе с date_to → за всё время.YYYY-MM-DD, включительно.50000, максимум 100000.Строки — в data.rows[]. Поля каждой строки:
FBO или FBS.YYYY-MM-DD.curl https://web.metriclab.ru/v1/ozon/stocks \
-H "Authorization: Bearer ml_live_..." \
-H "Content-Type: application/json" \
-d '{"cabinets": ["67890"], "type": "both", "date_from": "2026-08-01", "date_to": "2026-08-05"}'
Себестоимость товаров — та же таблица, что и в форме «Себестоимость» на сайте. Себестоимость хранится по периодам: по неделям (2026_32 — 32-я неделя 2026 года). Без параметра period метод отдаёт последнюю известную себестоимость по каждому товару и период, к которому она относится.
meta.periods (от новых к старым). У каждого периода есть period (ключ для запросов), label и границы date_from/date_to — например "2026_32" → «2026 Н32 (03.08 - 09.08)». Ключи периодов не выдумывайте — берите оттуда.period в каждой строке приходит последняя известная себестоимость и её период (period, period_label, period_start, period_end). С period — значение ровно за этот период.cost = null, период null. Так видно, по каким товарам себестоимость ещё не заполнена.date_from/date_to этот метод не использует — период задаётся только ключом period.supplier_id кабинетов. Пустой массив [] — все доступные.meta.periods, например "2026_32". Без него — последняя известная себестоимость по каждому товару.50000, максимум 100000; применяется на каждый кабинет.Строки — в data.rows[], справочник периодов — в meta.periods[].
null — не заполнена."2026_32".2026 Н32 (03.08 - 09.08).YYYY-MM-DD.curl https://web.metriclab.ru/v1/wb/costs \
-H "Authorization: Bearer ml_live_..." \
-H "Content-Type: application/json" \
-d '{"cabinets": ["12345"]}'
{
"status": "success",
"data": {
"rows": [
{
"article": 158393324,
"barcode": "2037561234567",
"size": "M",
"cost": 1214,
"period": "2026_32",
"period_label": "2026 Н32 (03.08 - 09.08)",
"period_start": "2026-08-03",
"period_end": "2026-08-09"
}
]
},
"meta": {
"marketplace": "wb",
"granularity": "week",
"period": null,
"count": 1,
// справочный список — от новых периодов к старым
"periods": [
{"period": "2026_32",
"label": "2026 Н32 (03.08 - 09.08)",
"date_from": "2026-08-03",
"date_to": "2026-08-09"}
]
}
}
Себестоимость товаров — та же таблица, что и в форме «Себестоимость» на сайте. Себестоимость хранится по периодам: по полумесячным периодам (2026_август_1 — 1–15 августа, 2026_август_2 — 16–31 августа). Без параметра period метод отдаёт последнюю известную себестоимость по каждому товару и период, к которому она относится.
meta.periods (от новых к старым). У каждого периода есть period (ключ для запросов), label и границы date_from/date_to — например "2026_август_1" → «2026 август 1 (01.08 - 15.08)». Ключи периодов не выдумывайте — берите оттуда.period в каждой строке приходит последняя известная себестоимость и её период (period, period_label, period_start, period_end). С period — значение ровно за этот период.cost = null, период null. Так видно, по каким товарам себестоимость ещё не заполнена.date_from/date_to этот метод не использует — период задаётся только ключом period.client_id кабинетов. Пустой массив [] — все доступные.meta.periods, например "2026_август_1". Без него — последняя известная себестоимость по каждому товару.50000, максимум 100000; применяется на каждый кабинет.Строки — в data.rows[], справочник периодов — в meta.periods[].
null — не заполнена."2026_август_1".2026 август 1 (01.08 - 15.08).YYYY-MM-DD.curl https://web.metriclab.ru/v1/ozon/costs \
-H "Authorization: Bearer ml_live_..." \
-H "Content-Type: application/json" \
-d '{"cabinets": ["67890"]}'
{
"status": "success",
"data": {
"rows": [
{
"sku": "1580142736",
"article": "AKO.2201.01",
"cost": 1214,
"period": "2026_август_1",
"period_label": "2026 август 1 (01.08 - 15.08)",
"period_start": "2026-08-01",
"period_end": "2026-08-15"
}
]
},
"meta": {
"marketplace": "ozon",
"granularity": "halfmonth",
"period": null,
"count": 1,
// справочный список — от новых периодов к старым
"periods": [
{"period": "2026_август_1",
"label": "2026 август 1 (01.08 - 15.08)",
"date_from": "2026-08-01",
"date_to": "2026-08-15"}
]
}
}
Себестоимость товаров — та же таблица, что и в форме «Себестоимость» на сайте. Себестоимость хранится по периодам: по полумесячным периодам (2026_август_1 — 1–15 августа, 2026_август_2 — 16–31 августа). Без параметра period метод отдаёт последнюю известную себестоимость по каждому товару и период, к которому она относится.
meta.periods (от новых к старым). У каждого периода есть period (ключ для запросов), label и границы date_from/date_to — например "2026_август_1" → «2026 август 1 (01.08 - 15.08)». Ключи периодов не выдумывайте — берите оттуда.period в каждой строке приходит последняя известная себестоимость и её период (period, period_label, period_start, period_end). С period — значение ровно за этот период.cost = null, период null. Так видно, по каким товарам себестоимость ещё не заполнена.date_from/date_to этот метод не использует — период задаётся только ключом period.business_id кабинетов. Пустой массив [] — все доступные.meta.periods, например "2026_август_1". Без него — последняя известная себестоимость по каждому товару.50000, максимум 100000; применяется на каждый кабинет.Строки — в data.rows[], справочник периодов — в meta.periods[].
null — не заполнена."2026_август_1".2026 август 1 (01.08 - 15.08).YYYY-MM-DD.curl https://web.metriclab.ru/v1/yandex/costs \
-H "Authorization: Bearer ml_live_..." \
-H "Content-Type: application/json" \
-d '{"cabinets": ["11223344"]}'
{
"status": "success",
"data": {
"rows": [
{
"article": "AKO-2201",
"cost": 1214,
"period": "2026_август_1",
"period_label": "2026 август 1 (01.08 - 15.08)",
"period_start": "2026-08-01",
"period_end": "2026-08-15"
}
]
},
"meta": {
"marketplace": "yandex",
"granularity": "halfmonth",
"period": null,
"count": 1,
// справочный список — от новых периодов к старым
"periods": [
{"period": "2026_август_1",
"label": "2026 август 1 (01.08 - 15.08)",
"date_from": "2026-08-01",
"date_to": "2026-08-15"}
]
}
}
Записывает себестоимость за один период сразу по списку товаров — то же самое, что заполнить колонку периода в форме «Себестоимость» и сохранить. Период указывается обязательно; за один запрос меняется ровно один период.
cabinets должен быть ровно один supplier_id — иначе непонятно, чью себестоимость менять.meta.periods ответа POST /v1/wb/costs. Неизвестный период → 400 с подсказкой последних доступных.article, значение проставится на все баркоды (размеры) этого артикула.cost: null очищает себестоимость за этот период.data.skipped — остальные при этом сохраняются. До 5000 позиций в запросе.supplier_id."2026_32".article (обязателен), barcode (опц.), cost. cost: null — очистить.cost: null)./costs.curl https://web.metriclab.ru/v1/wb/costs-update \
-H "Authorization: Bearer ml_live_..." \
-H "Content-Type: application/json" \
-d '{
"cabinets": ["12345"],
"period": "2026_32",
"items": [
{"article": 158393324, "barcode": "2037561234567", "cost": 1214},
{"article": 158393325, "cost": 980.5},
{"article": 158393326, "cost": null}
]
}'
{
"status": "success",
"data": {
"updated": 2,
"cleared": 1,
"skipped": [],
"period": "2026_32",
"period_label": "2026 Н32 (03.08 - 09.08)",
"period_start": "2026-08-03",
"period_end": "2026-08-09"
},
"meta": {
"marketplace": "wb",
"cabinet": "...",
"items": 3
}
}
Записывает себестоимость за один период сразу по списку товаров — то же самое, что заполнить колонку периода в форме «Себестоимость» и сохранить. Период указывается обязательно; за один запрос меняется ровно один период.
cabinets должен быть ровно один client_id — иначе непонятно, чью себестоимость менять.meta.periods ответа POST /v1/ozon/costs. Неизвестный период → 400 с подсказкой последних доступных.cost: null очищает себестоимость за этот период.data.skipped — остальные при этом сохраняются. До 5000 позиций в запросе.client_id."2026_август_1".sku (или article), cost. cost: null — очистить.cost: null)./costs.curl https://web.metriclab.ru/v1/ozon/costs-update \
-H "Authorization: Bearer ml_live_..." \
-H "Content-Type: application/json" \
-d '{
"cabinets": ["67890"],
"period": "2026_август_1",
"items": [
{"sku": "1580142736", "cost": 1214},
{"article": "AKO.2201.01", "cost": 980.5},
{"sku": "1579471752", "cost": null}
]
}'
{
"status": "success",
"data": {
"updated": 2,
"cleared": 1,
"skipped": [],
"period": "2026_август_1",
"period_label": "2026 август 1 (01.08 - 15.08)",
"period_start": "2026-08-01",
"period_end": "2026-08-15"
},
"meta": {
"marketplace": "ozon",
"cabinet": "...",
"items": 3
}
}
Записывает себестоимость за один период сразу по списку товаров — то же самое, что заполнить колонку периода в форме «Себестоимость» и сохранить. Период указывается обязательно; за один запрос меняется ровно один период.
cabinets должен быть ровно один business_id — иначе непонятно, чью себестоимость менять.meta.periods ответа POST /v1/yandex/costs. Неизвестный период → 400 с подсказкой последних доступных.article, строка) — как в форме на сайте.cost: null очищает себестоимость за этот период.data.skipped — остальные при этом сохраняются. До 5000 позиций в запросе.business_id."2026_август_1".article (обязателен), cost. cost: null — очистить.cost: null)./costs.curl https://web.metriclab.ru/v1/yandex/costs-update \
-H "Authorization: Bearer ml_live_..." \
-H "Content-Type: application/json" \
-d '{
"cabinets": ["11223344"],
"period": "2026_август_1",
"items": [
{"article": "AKO-2201", "cost": 1214},
{"article": "AKO-2202", "cost": null}
]
}'
{
"status": "success",
"data": {
"updated": 2,
"cleared": 1,
"skipped": [],
"period": "2026_август_1",
"period_label": "2026 август 1 (01.08 - 15.08)",
"period_start": "2026-08-01",
"period_end": "2026-08-15"
},
"meta": {
"marketplace": "yandex",
"cabinet": "...",
"items": 3
}
}
Лист «Unit-факт» из виджета «Таблица» на сайте — строка на артикул и размер за период со всеми колонками листа: реализация, услуги площадки по статьям, себестоимость, налог и НДС, сумма к перечислению, прибыль, маржинальность, доли, показатели на единицу, ABC-классы и остатки. Считается тем же кодом, что и таблица на сайте, поэтому цифры совпадают с ней.
metrics, где производные считает клиент). Формула каждой такой колонки показана в каталоге ниже.meta.cabinets_notes: по одной заметке на кабинет (с какой даты доступен ежедневный Unit-факт, какие недели вошли по дням, какие целиком, какие пропущены). Чтобы пропущенные недели вошли, расширьте период до границ недель (понедельник–воскресенье).meta.stocks.latest); на последнюю дату внутри периода — те же колонки с суффиксом __in_period (есть, только когда даты различаются).filters и листайте через offset; полное число строк — в data.total.supplier_id кабинетов. Должны принадлежать владельцу ключа (GET /v1/cabinets). Пустой массив [] — все доступные.YYYY-MM-DD, включительно.YYYY-MM-DD, включительно.articles, brands, subjects, article_suppliers, grouping_level_1..3, group_name, responsible).0."success" при 200.cabinet, article_wb, size, article_supplier, brand, subject, группы товаров и далее все показатели. Колонки-формулы, доли и ABC — уже посчитаны (null, если не считается: нет слагаемого или деление на ноль).limit/offset).latest — дата снимка остатков в колонках остатков; in_period — дата снимка в колонках с суффиксом __in_period (null, если совпадает с latest или данных нет).cabinet, daily_available_from (с какой даты есть ежедневные отчёты, null — нет), weeks.by_day / weeks.whole_week / weeks.skipped (недели периода: вошли по дням, целиком, не вошли; у каждой period, date_from, date_to) и note — то же словами.
Ключи колонок в строках ответа. Блоки и порядок — как на листе «Unit-факт» в MetricLab.
Колонки с тегом computed считаются из других
(формула показана рядом) и приходят в ответе уже посчитанными.
Актуальный список — GET /v1/wb/unit-fact-catalog.
grouping_level_1 |
Уровень группировки 1
Группировка 1 из ручной формы «Группы товаров».
|
text |
group_name |
Группа товаров
Название группы товаров из ручной формы «Группы товаров».
|
text |
responsible |
Ответственный
Кто отвечает за товар — из ручной формы «Группы товаров».
|
text |
cabinet |
Кабинет
Кабинет, к которому относится строка.
|
text |
subject |
Предмет
Предмет — категория товара в каталоге Wildberries.
|
text |
brand |
Бренд
Бренд товара из карточки.
|
text |
article_supplier |
Артикул поставщика
Ваш артикул из карточки товара.
|
text |
article_wb |
Артикул Wildberries
Идентификатор товара в системе Wildberries.
|
text |
size |
Размер
Размер товара. Строка отчёта — отдельный размер артикула.
|
text |
card_created |
Дата создания карточки
Когда карточка товара создана на Wildberries.
|
text |
abc_realization |
ABC по сумме реализацииcomputed
Класс товара по накопленной доле в показателе «До спп: сумма реализации». Товары выстраиваются по убыванию значения: A — те, что дают верхнюю часть суммы, B — следующую, C — хвост. Отрицательное значение — класс D. Доли классов (по умолчанию 80 %, 15 % и 5 %) настраиваются в подписи блока.
ABC-класс по wb_unit_fact_sum_before_spp_realized (A/B/C = 80/15/5 %, убыток = D)
|
text |
abc_profit |
ABC по маржинальной прибылиcomputed
Класс товара по накопленной доле в показателе «Маржинальная прибыль». Товары выстраиваются по убыванию значения: A — те, что дают верхнюю часть суммы, B — следующую, C — хвост. Отрицательное значение — класс D. Доли классов (по умолчанию 80 %, 15 % и 5 %) настраиваются в подписи блока.
ABC-класс по wb_unit_fact_profit_sum (A/B/C = 80/15/5 %, убыток = D)
|
text |
abc_for_pay |
ABC по сумме к перечислениюcomputed
Класс товара по накопленной доле в показателе «Сумма к перечислению». Товары выстраиваются по убыванию значения: A — те, что дают верхнюю часть суммы, B — следующую, C — хвост. Отрицательное значение — класс D. Доли классов (по умолчанию 80 %, 15 % и 5 %) настраиваются в подписи блока.
ABC-класс по wb_unit_fact_for_pay (A/B/C = 80/15/5 %, убыток = D)
|
text |
wb_unit_fact_orders_amount |
Заказов
Сколько единиц товара заказали покупатели за период, включая самозаказы и раздачи. Заказ считается в момент оформления, независимо от того, выкупят его потом или отменят. Приходит из статистики заказов Wildberries.
|
number · шт |
wb_unit_fact_count_self_orders |
Самозаказов
Сколько единиц заказано в рамках самовыкупов. Берётся из ручной формы «Самовыкупы». Нужны, чтобы очистить воронку от собственных заказов: в чистых продажах они не участвуют.
|
number · шт |
wb_unit_fact_count_orders_clean |
Заказов (без учета самозаказов и раздач)computed
Заказы покупателей без ваших собственных: из общего числа заказов вычтены самозаказы и раздачи. Именно эта величина показывает реальный спрос. Формула: «Заказов» − «Самозаказов» − «Раздач».
wb_unit_fact_orders_amount - wb_unit_fact_count_self_orders - wb_unit_fact_count_distributions
|
number · шт |
wb_unit_fact_count_deliveries |
Доставок
Сколько единиц товара доехало до покупателя и было ему выдано. Приходит из недельного отчёта Wildberries о реализации.
|
number · шт |
wb_unit_fact_count_refusals |
Отказов
Сколько единиц покупатели не забрали: отказались при получении или товар вернулся невостребованным. Логистику по таким заказам продавец всё равно оплачивает. Приходит из недельного отчёта Wildberries о реализации.
|
number · шт |
wb_unit_fact_percent_refusals |
% отказовcomputed
Какая доля доставок закончилась отказом покупателя. Каждый отказ — это оплаченная логистика без продажи. Формула: «Отказов» / «Доставок» × 100.
wb_unit_fact_count_refusals / wb_unit_fact_count_deliveries * 100
|
percent · % |
wb_unit_fact_count_sales |
Продаж
Сколько единиц выкуплено покупателями, включая самовыкупы и раздачи. Приходит из недельного отчёта Wildberries о реализации.
|
number · шт |
wb_unit_fact_count_self_sales |
Самовыкупов
Сколько единиц выкуплено вами самими. Берётся из ручной формы «Самовыкупы».
|
number · шт |
wb_unit_fact_count_distributions |
Раздач
Сколько единиц роздано по механикам продвижения с кэшбеком. Берётся из ручной формы «Раздачи».
|
number · шт |
wb_unit_fact_count_sales_clean |
Продаж (без учета самозаказов и раздач)computed
Настоящие продажи покупателям: из всех выкупов вычтены самовыкупы и раздачи. Формула: «Продаж» − «Самовыкупов» − «Раздач».
wb_unit_fact_count_sales - wb_unit_fact_count_self_sales - wb_unit_fact_count_distributions
|
number · шт |
wb_unit_fact_count_returns |
Возвратовcomputed
Сколько единиц покупатели вернули после выкупа: разница между выкупленным и дошедшим до реализации, за вычетом списанного товара. Формула: «Продаж» + «Итого списанных товаров» − «Итого реализовано товаров».
wb_unit_fact_count_sales + (wb_unit_fact_count_lost + wb_unit_fact_count_defective + wb_unit_fact_count_replaced) - wb_unit_fact_count_realized
|
number · шт |
wb_unit_fact_percent_returns |
% возвратовcomputed
Какая доля выкупленного товара вернулась обратно. Формула: «Возвратов» / «Продаж» × 100.
(wb_unit_fact_count_sales + (wb_unit_fact_count_lost + wb_unit_fact_count_defective + wb_unit_fact_count_replaced) - wb_unit_fact_count_realized) / wb_unit_fact_count_sales * 100
|
percent · % |
wb_unit_fact_count_lost |
Потерянных товаров
Сколько единиц Wildberries потерял и компенсировал. Приходит из недельного отчёта Wildberries о реализации.
|
number · шт |
wb_unit_fact_count_defective |
Бракованных товаров
Сколько единиц признано бракованными с компенсацией от Wildberries. Приходит из недельного отчёта Wildberries о реализации.
|
number · шт |
wb_unit_fact_count_replaced |
Подмененых товаров
Сколько единиц подменили при доставке — вместо вашего товара покупателю уехал чужой, Wildberries это компенсировал. Приходит из недельного отчёта Wildberries о реализации.
|
number · шт |
wb_unit_fact_count_utils |
Итого списанных товаровcomputed
Товары, которые до покупателя не дошли и были списаны с компенсацией: потерянные, бракованные и подменённые вместе. Формула: «Потерянных товаров» + «Бракованных товаров» + «Подмененых товаров».
wb_unit_fact_count_lost + wb_unit_fact_count_defective + wb_unit_fact_count_replaced
|
number · шт |
wb_unit_fact_count_correct_sales |
Корректных продаж
Продажи, которые Wildberries скорректировал задним числом — обычно уточнение по прошлым неделям. Приходит из недельного отчёта Wildberries о реализации.
|
number · шт |
wb_unit_fact_count_correct_returns |
Корректных возвратов
Возвраты, скорректированные задним числом. Приходит из недельного отчёта Wildberries о реализации.
|
number · шт |
wb_unit_fact_count_storno_sales |
Сторно продаж
Отменённые продажи прошлых периодов: Wildberries сторнировал ранее проведённую продажу. Приходит из недельного отчёта Wildberries о реализации.
|
number · шт |
wb_unit_fact_count_storno_returns |
Сторно возвратов
Отменённые возвраты прошлых периодов. Приходит из недельного отчёта Wildberries о реализации.
|
number · шт |
wb_unit_fact_count_corrections_total |
Итого корректировок и стонированийcomputed
Все правки задним числом в штуках: корректные продажи и возвраты плюс сторнирования. Помогает понять, насколько неделя «шевелится» после закрытия. Формула: «Корректных продаж» + «Корректных возвратов» + «Сторно продаж» + «Сторно возвратов».
wb_unit_fact_count_correct_sales + wb_unit_fact_count_correct_returns + wb_unit_fact_count_storno_sales + wb_unit_fact_count_storno_returns
|
number · шт |
wb_unit_fact_count_realized |
Итого реализовано товаров
Итоговое количество реализованного товара за период — то, с чего Wildberries считает вам выручку. Учитывает продажи, возвраты, списания и корректировки. Приходит из недельного отчёта Wildberries о реализации.
|
number · шт |
wb_unit_fact_percent_buyout |
% выкупаcomputed
Какая доля доставленного товара осталась у покупателя. Считается от доставок, а не от заказов: заказ, не доехавший до покупателя, к выкупу отношения не имеет. Низкий процент означает, что логистика оплачивается, а выручки по ней нет. Формула: («Итого реализовано товаров» − «Итого списанных товаров») / «Доставок» × 100.
(wb_unit_fact_count_realized - (wb_unit_fact_count_lost + wb_unit_fact_count_defective + wb_unit_fact_count_replaced)) / wb_unit_fact_count_deliveries * 100
|
percent · % |
wb_nedeli_stock_count |
Остатков
Сколько единиц лежит на складах и доступно к заказу. Снимок остатков на складах на конец недели.
|
number · шт |
wb_nedeli_stock_in_way_to |
Остатков в пути к клиету
Сколько единиц едет к покупателям — заказано, но ещё не выдано. Снимок остатков на складах на конец недели.
|
number · шт |
wb_nedeli_stock_in_way_from |
Остатков в пути от клиента
Сколько единиц едет обратно на склад после отказа или возврата. Снимок остатков на складах на конец недели.
|
number · шт |
wb_nedeli_stock_total |
Итого нереализованных остатковcomputed
Весь товар, который ещё не продан: на складах и в пути в обе стороны. Формула: «Остатков» + «Остатков в пути к клиету» + «Остатков в пути от клиента».
wb_nedeli_stock_count + wb_nedeli_stock_in_way_to + wb_nedeli_stock_in_way_from
|
number · шт |
wb_nedeli_stock_sebes |
Себестоимость остатков, доступных для заказа
Во сколько обошлась закупка товара, лежащего на складах. Считается по ручной форме «Себестоимость».
|
currency · ₽ |
wb_nedeli_stock_sebes_in_way_to |
Cебестоимость остатков в пути до клиента
Себестоимость товара, который едет к покупателям. Считается по ручной форме «Себестоимость».
|
currency · ₽ |
wb_nedeli_stock_sebes_in_way_from |
Cебестоимость остатков в пути от клиента
Себестоимость товара, который едет обратно на склад. Считается по ручной форме «Себестоимость».
|
currency · ₽ |
wb_nedeli_stock_sebes_total |
Итого себестоимость нереализованных остатковcomputed
Сколько ваших денег заморожено в непроданном товаре. Формула: «Себестоимость остатков, доступных для заказа» + «Cебестоимость остатков в пути до клиента» + «Cебестоимость остатков в пути от клиента».
wb_nedeli_stock_sebes + wb_nedeli_stock_sebes_in_way_to + wb_nedeli_stock_sebes_in_way_from
|
currency · ₽ |
wb_nedeli_stock_price |
Цена реализации остатков (до СПП)
За сколько можно продать остаток на складах по вашим ценам до скидки Wildberries.
|
currency · ₽ |
wb_nedeli_stock_price_in_way_to |
Цена реализации остатков в пути до клиента (до СПП)
За сколько можно продать товар, который едет к покупателям.
|
currency · ₽ |
wb_nedeli_stock_price_in_way_from |
Цена реализации остатков в пути от клиента (до СПП)
За сколько можно продать товар, который едет обратно на склад.
|
currency · ₽ |
wb_nedeli_stock_price_total |
Итого цена реализации всех остатков (до СПП)computed
Сколько выручки принесёт весь непроданный товар, если продать его по текущим ценам. Формула: «Цена реализации остатков (до СПП)» + «Цена реализации остатков в пути до клиента (до СПП)» + «Цена реализации остатков в пути от клиента (до СПП)».
wb_nedeli_stock_price + wb_nedeli_stock_price_in_way_to + wb_nedeli_stock_price_in_way_from
|
currency · ₽ |
wb_nedeli_stock_markup_coefficient |
Коэффициент наценки на остатокcomputed
Во сколько раз ожидаемая выручка с остатков выше вложенных в них денег. Формула: «Итого цена реализации всех остатков (до СПП)» / «Итого себестоимость нереализованных остатков».
(wb_nedeli_stock_price + wb_nedeli_stock_price_in_way_to + wb_nedeli_stock_price_in_way_from) / (wb_nedeli_stock_sebes + wb_nedeli_stock_sebes_in_way_to + wb_nedeli_stock_sebes_in_way_from)
|
number |
wb_unit_fact_orders_sum |
Сумма заказов
Сумма заказов по вашим ценам до скидки Wildberries, включая самозаказы. Приходит из статистики заказов Wildberries.
|
currency · ₽ |
wb_unit_fact_sum_self_orders |
Сумма самозаказов
Сумма самозаказов по вашим ценам. Берётся из ручной формы «Самовыкупы».
|
currency · ₽ |
wb_unit_fact_orders_sum_clean |
Сумма заказов (без учета самозаказов)computed
Сумма заказов покупателей без ваших собственных. Формула: «Сумма заказов» − «Сумма самозаказов».
wb_unit_fact_orders_sum - wb_unit_fact_sum_self_orders
|
currency · ₽ |
wb_unit_fact_sum_before_spp_sales |
До спп: сумма продаж
Сумма выкупленного товара по вашей цене — до скидки постоянного покупателя, которую Wildberries даёт за свой счёт. Именно от этой величины площадка считает комиссию и услуги. Приходит из недельного отчёта Wildberries о реализации.
|
currency · ₽ |
wb_unit_fact_sum_before_spp_returns |
До спп: сумма возвратов
Сумма возвращённого товара по вашей цене до скидки Wildberries. Приходит из недельного отчёта Wildberries о реализации.
|
currency · ₽ |
wb_unit_fact_sum_before_spp_comp_lost |
До спп: сумма компенсаций за потерянный товар
Компенсация за потерянный товар по вашей цене до скидки Wildberries. Приходит из недельного отчёта Wildberries о реализации.
|
currency · ₽ |
wb_unit_fact_sum_before_spp_comp_defective |
До спп: сумма компенсаций за бракованный товар
Компенсация за бракованный товар по вашей цене до скидки Wildberries. Приходит из недельного отчёта Wildberries о реализации.
|
currency · ₽ |
wb_unit_fact_sum_before_spp_comp_replaced |
До спп: сумма компенсаций за подмененный товар
Компенсация за подменённый товар по вашей цене до скидки Wildberries. Приходит из недельного отчёта Wildberries о реализации.
|
currency · ₽ |
wb_unit_fact_sum_before_spp_comp_total |
До спп: итого сумма компенсаций за списанный товарcomputed
Все компенсации за не дошедший до покупателя товар по вашим ценам. Формула: «До спп: сумма компенсаций за потерянный товар» + «До спп: сумма компенсаций за бракованный товар» + «До спп: сумма компенсаций за подмененный товар».
wb_unit_fact_sum_before_spp_comp_lost + wb_unit_fact_sum_before_spp_comp_defective + wb_unit_fact_sum_before_spp_comp_replaced
|
currency · ₽ |
wb_unit_fact_sum_before_spp_correct_sales |
До спп: сумма корректных продаж
Продажи, скорректированные задним числом, по вашей цене. Приходит из недельного отчёта Wildberries о реализации.
|
currency · ₽ |
wb_unit_fact_sum_before_spp_correct_returns |
До спп: сумма корректных возвратов
Возвраты, скорректированные задним числом, по вашей цене. Приходит из недельного отчёта Wildberries о реализации.
|
currency · ₽ |
wb_unit_fact_sum_before_spp_storno_sales |
До спп: сумма сторнированных продаж
Сторнированные продажи прошлых периодов по вашей цене. Приходит из недельного отчёта Wildberries о реализации.
|
currency · ₽ |
wb_unit_fact_sum_before_spp_storno_returns |
До спп: сумма сторнированных возвратов
Сторнированные возвраты прошлых периодов по вашей цене. Приходит из недельного отчёта Wildberries о реализации.
|
currency · ₽ |
wb_unit_fact_sum_before_spp_corrections_total |
До спп: итого сумма корректировок и сторнированийcomputed
Все правки задним числом в деньгах по вашим ценам. Формула: «До спп: сумма корректных продаж» + «До спп: сумма корректных возвратов» + «До спп: сумма сторнированных продаж» + «До спп: сумма сторнированных возвратов».
wb_unit_fact_sum_before_spp_correct_sales + wb_unit_fact_sum_before_spp_correct_returns + wb_unit_fact_sum_before_spp_storno_sales + wb_unit_fact_sum_before_spp_storno_returns
|
currency · ₽ |
wb_unit_fact_sum_before_spp_realized |
До спп: сумма реализации
Главная величина отчёта: сколько товара реализовано по ВАШИМ ценам — до скидки постоянного покупателя. От неё Wildberries считает комиссию и услуги, поэтому доли расходов в отчёте берутся именно от неё. Приходит из недельного отчёта Wildberries о реализации.
|
currency · ₽ |
wb_unit_fact_share_of_realization |
Вклад артикула в общую сумму реализацииcomputed
Какую долю всей реализации за период дал этот товар. Доли всех товаров складываются в 100%, поэтому колонку удобно сортировать по убыванию, чтобы увидеть, на чём держится оборот.
wb_unit_fact_share_of_realization = wb_unit_fact_sum_before_spp_realized / сумма wb_unit_fact_sum_before_spp_realized по всем строкам * 100
|
percent · % |
wb_unit_fact_sum_after_spp_sales |
После спп: сумма продаж
Сумма выкупленного товара по цене, которую фактически заплатил покупатель, — уже со скидкой Wildberries. Приходит из недельного отчёта Wildberries о реализации.
|
currency · ₽ |
wb_unit_fact_sum_after_spp_returns |
После спп: сумма возвратов
Сумма возвратов по цене покупателя. Приходит из недельного отчёта Wildberries о реализации.
|
currency · ₽ |
wb_unit_fact_sum_after_spp_comp_lost |
После спп: сумма компенсаций за потерянный товар
Компенсация за потерянный товар по цене покупателя. Приходит из недельного отчёта Wildberries о реализации.
|
currency · ₽ |
wb_unit_fact_sum_after_spp_comp_defective |
После спп: сумма компенсаций за бракованный товар
Компенсация за бракованный товар по цене покупателя. Приходит из недельного отчёта Wildberries о реализации.
|
currency · ₽ |
wb_unit_fact_sum_after_spp_comp_replaced |
После спп: сумма компенсаций за подмененный товар
Компенсация за подменённый товар по цене покупателя. Приходит из недельного отчёта Wildberries о реализации.
|
currency · ₽ |
wb_unit_fact_sum_after_spp_comp_total |
После спп: итого сумма компенсаций за списанный товарcomputed
Все компенсации за списанный товар по ценам покупателя. Формула: «После спп: сумма компенсаций за потерянный товар» + «После спп: сумма компенсаций за бракованный товар» + «После спп: сумма компенсаций за подмененный товар».
wb_unit_fact_sum_after_spp_comp_lost + wb_unit_fact_sum_after_spp_comp_defective + wb_unit_fact_sum_after_spp_comp_replaced
|
currency · ₽ |
wb_unit_fact_sum_after_spp_correct_sales |
После спп: сумма корректных продаж
Скорректированные задним числом продажи по цене покупателя. Приходит из недельного отчёта Wildberries о реализации.
|
currency · ₽ |
wb_unit_fact_sum_after_spp_correct_returns |
После спп: сумма корректных возвратов
Скорректированные задним числом возвраты по цене покупателя. Приходит из недельного отчёта Wildberries о реализации.
|
currency · ₽ |
wb_unit_fact_sum_after_spp_storno_sales |
После спп: сумма сторнированных продаж
Сторнированные продажи прошлых периодов по цене покупателя. Приходит из недельного отчёта Wildberries о реализации.
|
currency · ₽ |
wb_unit_fact_sum_after_spp_storno_returns |
После спп: сумма сторнированных возвратов
Сторнированные возвраты прошлых периодов по цене покупателя. Приходит из недельного отчёта Wildberries о реализации.
|
currency · ₽ |
wb_unit_fact_sum_after_spp_corrections_total |
После спп: итого сумма корректировок и сторнированийcomputed
Все правки задним числом в деньгах по ценам покупателя. Формула: «После спп: сумма корректных продаж» + «После спп: сумма корректных возвратов» + «После спп: сумма сторнированных продаж» + «После спп: сумма сторнированных возвратов».
wb_unit_fact_sum_after_spp_correct_sales + wb_unit_fact_sum_after_spp_correct_returns + wb_unit_fact_sum_after_spp_storno_sales + wb_unit_fact_sum_after_spp_storno_returns
|
currency · ₽ |
wb_unit_fact_sum_after_spp_realized |
После спп: сумма реализации
Сколько реализовано по ценам, которые видел покупатель, — со скидкой Wildberries. Отличается от реализации до СПП ровно на сумму этой скидки. Приходит из недельного отчёта Wildberries о реализации.
|
currency · ₽ |
wb_unit_fact_sum_after_spp_realized_clean |
После СПП: сумма реализации (без учета самовыкупов и раздач)computed
Реализация по ценам покупателя, очищенная от ваших собственных выкупов и раздач. Формула: «После спп: сумма реализации» − «Затраты на самовыкупы» − «Затраты на раздачи (сумма кэшбека)».
wb_unit_fact_sum_after_spp_realized - wb_unit_fact_direct_cost_self_sales_sum - wb_unit_fact_direct_cost_distribution_sum
|
currency · ₽ |
wb_unit_fact_sum_spp |
Сумма спп
Скидка постоянного покупателя — сколько Wildberries скинул покупателю за свой счёт. На ваши деньги напрямую не влияет: комиссия и услуги считаются от цены ДО этой скидки. Но чем она больше, тем больше заказов и, значит, логистики.
|
currency · ₽ |
wb_unit_fact_percent_spp |
% сппcomputed
Насколько цена покупателя ниже вашей — размер скидки Wildberries в процентах. Формула: (1 − «После спп: сумма продаж» / «До спп: сумма продаж») × 100.
(1 - wb_unit_fact_sum_after_spp_sales / wb_unit_fact_sum_before_spp_sales) * 100
|
percent · % |
wb_unit_fact_wb_commission_before_spp_sum |
Комиссия от суммы реализации до спп
Комиссия Wildberries за продажу, посчитанная от вашей цены до скидки площадки. Ставка зависит от категории товара и схемы работы. Приходит из недельного отчёта Wildberries о реализации.
|
currency · ₽ |
wb_unit_fact_percent_commission_before_spp |
Комиссия, %computed
Какую долю вашей реализации Wildberries забирает комиссией. Формула: «Комиссия от суммы реализации до спп» / «До спп: сумма реализации» × 100.
-wb_unit_fact_wb_commission_before_spp_sum / wb_unit_fact_sum_before_spp_realized * 100
|
percent · % |
wb_unit_fact_wb_commission_sum |
Комиссияcomputed
Комиссия после скидки площадки: начисленная с вашей цены комиссия, уменьшенная на сумму скидки, которую площадка дала покупателю за свой счёт. В итог услуг не входит — она показана справочно, потому что уже учтена в комиссии до скидки. Формула: «Сумма спп» + «Комиссия от суммы реализации до спп».
wb_unit_fact_sum_spp + wb_unit_fact_wb_commission_before_spp_sum
|
currency · ₽ |
wb_unit_fact_wb_acquiring_sum |
Эквайринг
Удержание за приём платежа от покупателя — стоимость эквайринга по тарифу банка. Приходит из недельного отчёта Wildberries о реализации.
|
currency · ₽ |
wb_unit_fact_percent_acquiring |
Эквайринг, %computed
Какую долю реализации съедает приём платежей. Формула: «Эквайринг» / «До спп: сумма реализации» × 100.
-wb_unit_fact_wb_acquiring_sum / wb_unit_fact_sum_before_spp_realized * 100
|
percent · % |
wb_unit_fact_wb_logistics_sum |
Логистика
Стоимость доставки заказов до покупателя и возвратов обратно. Тариф зависит от объёма упаковки, поэтому оплачивается и то, что покупатель не выкупил. Приходит из недельного отчёта Wildberries о реализации.
|
currency · ₽ |
wb_unit_fact_percent_logistics |
Логистика, %computed
Какую долю реализации съедает логистика. Растёт при низком проценте выкупа: дорога оплачена, а продажи нет. Формула: «Логистика» / «До спп: сумма реализации» × 100.
-wb_unit_fact_wb_logistics_sum / wb_unit_fact_sum_before_spp_realized * 100
|
percent · % |
wb_unit_fact_wb_storage_sum |
Хранение
Плата за хранение товара на складах Wildberries сверх льготного периода: ставка за кубометр в сутки умножается на объём и число платных дней. Приходит из недельного отчёта Wildberries о реализации.
|
currency · ₽ |
wb_unit_fact_percent_storage |
Хранение, %computed
Какую долю реализации съедает хранение. Высокий процент — признак залежавшегося товара. Формула: «Хранение» / «До спп: сумма реализации» × 100.
-wb_unit_fact_wb_storage_sum / wb_unit_fact_sum_before_spp_realized * 100
|
percent · % |
wb_unit_fact_wb_adv_bonuses_sum |
Справочно: реклама (бонусы)
Справочно: сколько рекламы оплачено бонусами Wildberries. В расходы отчёта не входит — бонусы не ваши деньги. Приходит из недельного отчёта Wildberries о реализации.
|
currency · ₽ |
wb_unit_fact_wb_adv_cashback_sum |
Справочно: реклама (кэшбек)
Справочно: сколько рекламы оплачено кэшбеком Wildberries. В расходы отчёта не входит. Приходит из недельного отчёта Wildberries о реализации.
|
currency · ₽ |
wb_unit_fact_wb_adv_balance_sum |
Начисления за рекламу (баланс продавца)
Реклама, оплаченная с баланса продавца. Приходит из недельного отчёта Wildberries о реализации.
|
currency · ₽ |
wb_unit_fact_wb_adv_account_sum |
Начисления за рекламу (счет продавца)
Реклама, оплаченная со счёта продавца. Приходит из недельного отчёта Wildberries о реализации.
|
currency · ₽ |
wb_unit_fact_wb_adv_balance_and_account_sum |
Начисления за рекламу (баланс + счет)computed
Все рекламные расходы, оплаченные вашими деньгами. Бонусы и кэшбек сюда не входят — они показаны отдельно как справочные. Формула: «Начисления за рекламу (баланс продавца)» + «Начисления за рекламу (счет продавца)».
wb_unit_fact_wb_adv_balance_sum + wb_unit_fact_wb_adv_account_sum
|
currency · ₽ |
wb_unit_fact_percent_adv_drr_after_spp |
Реклама после СПП, %computed
Тот же ДРР, но от денег, которые реально заплатил покупатель: реализация после скидки постоянного покупателя ниже, поэтому доля рекламы получается выше, чем в соседней колонке до скидки. Формула: «Начисления за рекламу (баланс + счет)» / «После спп: сумма реализации» × 100.
-(wb_unit_fact_wb_adv_balance_sum + wb_unit_fact_wb_adv_account_sum) / wb_unit_fact_sum_after_spp_realized * 100
|
percent · % |
wb_unit_fact_percent_adv_drr_orders |
Реклама от заказов, %computed
ДРР к заказам: реклама сравнивается с тем, что заказали за период, а не с тем, что из заказанного успели выкупить. Отвечает на вопрос, сколько рекламы стоит рубль заказа — реклама и заказ приходятся на один период, а выкуп сдвинут по времени. Формула: «Начисления за рекламу (баланс + счет)» / «Сумма заказов» × 100.
-(wb_unit_fact_wb_adv_balance_sum + wb_unit_fact_wb_adv_account_sum) / wb_unit_fact_orders_sum * 100
|
percent · % |
wb_unit_fact_percent_adv_drr |
Реклама, %computed
Доля рекламных расходов в выручке (ДРР) — сколько копеек рекламы приходится на рубль реализации. Формула: «Начисления за рекламу (баланс + счет)» / «До спп: сумма реализации» × 100.
-(wb_unit_fact_wb_adv_balance_sum + wb_unit_fact_wb_adv_account_sum) / wb_unit_fact_sum_before_spp_realized * 100
|
percent · % |
wb_unit_fact_wb_reviews_bonuses_sum |
Баллы за отзывы
Удержание по программе «Баллы за отзывы»: Wildberries начисляет баллы покупателям за отзывы на ваш товар, а стоимость списывает с продавца. Приходит из недельного отчёта Wildberries о реализации.
|
currency · ₽ |
wb_unit_fact_wb_loyalty_bonuses_sum |
Удержания за начисленные баллы программы лояльности
Сколько Wildberries удержал за баллы, начисленные покупателям по программе лояльности при покупке вашего товара. Удерживается из выплаты и входит в сумму всех услуг. Приходит из недельного отчёта Wildberries о реализации.
|
currency · ₽ |
wb_unit_fact_wb_jam_subscription_sum |
Подписка Джем
Плата за подписку Джем — платный тариф Wildberries с расширенной аналитикой и инструментами продвижения. Приходит из недельного отчёта Wildberries о реализации.
|
currency · ₽ |
wb_unit_fact_wb_transit_cost_sum |
Транзитные поставки
Стоимость транзитной поставки: когда товар едет на склад Wildberries через их логистику, а не привозится вами напрямую. Приходит из недельного отчёта Wildberries о реализации.
|
currency · ₽ |
wb_unit_fact_wb_paid_acceptance_sum |
Платная приемка
Плата за приёмку поставки на склад. Возникает, когда склад загружен и приёмка перестаёт быть бесплатной; размер зависит от коэффициента склада на дату поставки. Приходит из недельного отчёта Wildberries о реализации.
|
currency · ₽ |
wb_unit_fact_wb_penalties_sum |
Штрафы
Штрафы Wildberries за нарушения правил работы: неверные габариты или вес, подмена вложения, нарушения при поставке и упаковке. Приходит из недельного отчёта Wildberries о реализации.
|
currency · ₽ |
wb_unit_fact_wb_additional_payments_sum |
Доплаты
Доплаты и перерасчёты Wildberries в вашу пользу или в пользу площадки: поправки к ранее проведённым начислениям. Приходит из недельного отчёта Wildberries о реализации.
|
currency · ₽ |
wb_unit_fact_wb_all_services_sum |
Сумма всех услугcomputed
Сколько всего Wildberries удержал за свои услуги: комиссия, логистика, хранение, приёмка, реклама, штрафы и прочие удержания. Расходы и удержания показаны со знаком минус, поступления — со знаком плюс: рублёвые колонки отчёта можно складывать как есть. Формула: «Комиссия от суммы реализации до спп» + «Эквайринг» + «Логистика» + «Хранение» + «Начисления за рекламу (баланс + счет)» + «Баллы за отзывы» + «Удержания за начисленные баллы программы лояльности» + «Подписка Джем» + «Транзитные поставки» + «Платная приемка» + «Штрафы» + «Доплаты».
wb_unit_fact_wb_commission_before_spp_sum + wb_unit_fact_wb_acquiring_sum + wb_unit_fact_wb_logistics_sum + wb_unit_fact_wb_storage_sum + (wb_unit_fact_wb_adv_balance_sum + wb_unit_fact_wb_adv_account_sum) + wb_unit_fact_wb_reviews_bonuses_sum + wb_unit_fact_wb_loyalty_bonuses_sum + wb_unit_fact_wb_jam_subscription_sum + wb_unit_fact_wb_transit_cost_sum + wb_unit_fact_wb_paid_acceptance_sum + wb_unit_fact_wb_penalties_sum + wb_unit_fact_wb_additional_payments_sum
|
currency · ₽ |
wb_unit_fact_percent_all_services |
Все услуги, %computed
Какую долю реализации забирает площадка целиком. Ключевой показатель нагрузки: если он растёт, а цены прежние, дело в логистике, хранении или рекламе. Формула: «Сумма всех услуг» / «До спп: сумма реализации» × 100.
-(wb_unit_fact_wb_commission_before_spp_sum + wb_unit_fact_wb_acquiring_sum + wb_unit_fact_wb_logistics_sum + wb_unit_fact_wb_storage_sum + (wb_unit_fact_wb_adv_balance_sum + wb_unit_fact_wb_adv_account_sum) + wb_unit_fact_wb_reviews_bonuses_sum + wb_unit_fact_wb_loyalty_bonuses_sum + wb_unit_fact_wb_jam_subscription_sum + wb_unit_fact_wb_transit_cost_sum + wb_unit_fact_wb_paid_acceptance_sum + wb_unit_fact_wb_penalties_sum + wb_unit_fact_wb_additional_payments_sum) / wb_unit_fact_sum_before_spp_realized * 100
|
percent · % |
wb_unit_fact_for_pay_shushary |
Сумма к перечислению за Шушары
Компенсация за товар, уничтоженный на складе в Шушарах. Приходит из недельного отчёта Wildberries о реализации.
|
currency · ₽ |
wb_unit_fact_for_pay |
Сумма к перечислениюcomputed
Сколько Wildberries должен перечислить вам за период: реализация за вычетом всех удержаний. Расходы и удержания показаны со знаком минус, поступления — со знаком плюс: рублёвые колонки отчёта можно складывать как есть. Формула: «До спп: сумма реализации» + «Сумма всех услуг».
wb_unit_fact_sum_before_spp_realized + (wb_unit_fact_wb_commission_before_spp_sum + wb_unit_fact_wb_acquiring_sum + wb_unit_fact_wb_logistics_sum + wb_unit_fact_wb_storage_sum + (wb_unit_fact_wb_adv_balance_sum + wb_unit_fact_wb_adv_account_sum) + wb_unit_fact_wb_reviews_bonuses_sum + wb_unit_fact_wb_loyalty_bonuses_sum + wb_unit_fact_wb_jam_subscription_sum + wb_unit_fact_wb_transit_cost_sum + wb_unit_fact_wb_paid_acceptance_sum + wb_unit_fact_wb_penalties_sum + wb_unit_fact_wb_additional_payments_sum)
|
currency · ₽ |
wb_unit_fact_for_pay_share |
К перечислению, %computed
Какая часть реализации доходит до вас деньгами. Обратная сторона доли всех услуг: чем больше забирает площадка, тем меньше эта колонка. Формула: «Сумма к перечислению» / «До спп: сумма реализации» × 100.
(wb_unit_fact_sum_before_spp_realized + (wb_unit_fact_wb_commission_before_spp_sum + wb_unit_fact_wb_acquiring_sum + wb_unit_fact_wb_logistics_sum + wb_unit_fact_wb_storage_sum + (wb_unit_fact_wb_adv_balance_sum + wb_unit_fact_wb_adv_account_sum) + wb_unit_fact_wb_reviews_bonuses_sum + wb_unit_fact_wb_loyalty_bonuses_sum + wb_unit_fact_wb_jam_subscription_sum + wb_unit_fact_wb_transit_cost_sum + wb_unit_fact_wb_paid_acceptance_sum + wb_unit_fact_wb_penalties_sum + wb_unit_fact_wb_additional_payments_sum)) / wb_unit_fact_sum_before_spp_realized * 100
|
percent · % |
wb_unit_fact_direct_cost_nalog_sum |
Налог
Налог с реализации за период. Считается по ручной форме «Налоги». Ставка и система налогообложения задаются там же.
|
currency · ₽ |
wb_unit_fact_direct_cost_out_nalog_sum |
НДС (исходящий)
НДС, начисленный с вашей реализации. Считается по ручной форме «Налоги».
|
currency · ₽ |
wb_unit_fact_direct_cost_in_nalog_sum |
НДС (входящий)
НДС, принятый к вычету по закупке товара. Считается по ручной форме «Налоги».
|
currency · ₽ |
wb_unit_fact_direct_cost_in_and_out_nalog_sum |
Итого НДСcomputed
НДС к уплате: начисленный с продаж и принятый к вычету вместе. Формула: «НДС (исходящий)» + «НДС (входящий)».
wb_unit_fact_direct_cost_out_nalog_sum + wb_unit_fact_direct_cost_in_nalog_sum
|
currency · ₽ |
wb_unit_fact_direct_cost_sebes_sum |
Себестоимость реализованного товара
Себестоимость проданного товара за период. Считается по ручной форме «Себестоимость». Если колонка пустая или заметно ниже ожидаемой — проверьте, что себестоимость заполнена по всем артикулам и размерам.
|
currency · ₽ |
wb_unit_fact_percent_sebes |
Себестоимость, %computed
Какую долю вашей цены составляет закупка товара. Чем выше процент, тем меньше пространства для скидок и рекламы. Формула: «Себестоимость реализованного товара» / «До спп: сумма реализации» × 100.
-wb_unit_fact_direct_cost_sebes_sum / wb_unit_fact_sum_before_spp_realized * 100
|
percent · % |
wb_unit_fact_direct_cost_shushary_sebes_sum |
Себестоимость уничтоженного товара (Шушары)
Себестоимость товара, уничтоженного на складе в Шушарах. Считается по ручной форме «Себестоимость».
|
currency · ₽ |
wb_unit_fact_direct_cost_self_sales_sebes_sum |
Себестоимость самовыкуповленного товара
Себестоимость товара, выкупленного вами самими. Считается по ручной форме «Себестоимость».
|
currency · ₽ |
wb_unit_fact_percent_self_sales_before_spp |
Самовыкупы до СПП, %computed
Какую долю вашей реализации составляют затраты на самовыкупы. Формула: «Затраты на самовыкупы» / «До спп: сумма реализации» × 100.
-wb_unit_fact_direct_cost_self_sales_sum / wb_unit_fact_sum_before_spp_realized * 100
|
percent · % |
wb_unit_fact_percent_self_sales_after_spp |
Самовыкупы после СПП, %computed
Какую долю реализации по ценам покупателя составляют затраты на самовыкупы. Формула: «Затраты на самовыкупы» / «После спп: сумма реализации» × 100.
-wb_unit_fact_direct_cost_self_sales_sum / wb_unit_fact_sum_after_spp_realized * 100
|
percent · % |
wb_unit_fact_direct_cost_self_sales_sum |
Затраты на самовыкупы
Сколько вы потратили на самовыкупы. Берётся из ручной формы «Самовыкупы».
|
currency · ₽ |
wb_unit_fact_percent_distributions_before_spp |
Раздачи до СПП, %computed
Какую долю вашей реализации составляют затраты на раздачи. Формула: «Затраты на раздачи (сумма кэшбека)» / «До спп: сумма реализации» × 100.
-wb_unit_fact_direct_cost_distribution_sum / wb_unit_fact_sum_before_spp_realized * 100
|
percent · % |
wb_unit_fact_percent_distributions_after_spp |
Раздачи после СПП, %computed
Какую долю реализации по ценам покупателя составляют затраты на раздачи. Формула: «Затраты на раздачи (сумма кэшбека)» / «После спп: сумма реализации» × 100.
-wb_unit_fact_direct_cost_distribution_sum / wb_unit_fact_sum_after_spp_realized * 100
|
percent · % |
wb_unit_fact_direct_cost_distribution_sum |
Затраты на раздачи (сумма кэшбека)
Сколько вы потратили на раздачи — кэшбек покупателям за выкуп. Берётся из ручной формы «Раздачи».
|
currency · ₽ |
wb_unit_fact_direct_cost_external_marketing_sum |
Внешний маркетинг
Расходы на продвижение вне Wildberries: блогеры, внешний трафик, реклама на других площадках. Берётся из ручной формы «Операционные расходы».
|
currency · ₽ |
wb_unit_fact_percent_external_marketing |
Внешний маркетинг, %computed
Какую долю реализации вы вкладываете во внешнее продвижение. Формула: «Внешний маркетинг» / «До спп: сумма реализации» × 100.
-wb_unit_fact_direct_cost_external_marketing_sum / wb_unit_fact_sum_before_spp_realized * 100
|
percent · % |
wb_unit_fact_profit_sum |
Маржинальная прибыльcomputed
Маржинальная прибыль: реализация за вычетом услуг Wildberries, себестоимости, налога и маркетинговых расходов. То, что остаётся до постоянных расходов бизнеса. Формула: «До спп: сумма реализации» + «Сумма всех услуг» + «Себестоимость реализованного товара» + «Налог» + «Итого НДС» + «Затраты на самовыкупы» − «Себестоимость самовыкуповленного товара» + «Затраты на раздачи (сумма кэшбека)» + «Внешний маркетинг».
wb_unit_fact_sum_before_spp_realized + (wb_unit_fact_wb_commission_before_spp_sum + wb_unit_fact_wb_acquiring_sum + wb_unit_fact_wb_logistics_sum + wb_unit_fact_wb_storage_sum + (wb_unit_fact_wb_adv_balance_sum + wb_unit_fact_wb_adv_account_sum) + wb_unit_fact_wb_reviews_bonuses_sum + wb_unit_fact_wb_loyalty_bonuses_sum + wb_unit_fact_wb_jam_subscription_sum + wb_unit_fact_wb_transit_cost_sum + wb_unit_fact_wb_paid_acceptance_sum + wb_unit_fact_wb_penalties_sum + wb_unit_fact_wb_additional_payments_sum) + wb_unit_fact_direct_cost_sebes_sum + wb_unit_fact_direct_cost_nalog_sum + (wb_unit_fact_direct_cost_out_nalog_sum + wb_unit_fact_direct_cost_in_nalog_sum) + wb_unit_fact_direct_cost_self_sales_sum - wb_unit_fact_direct_cost_self_sales_sebes_sum + wb_unit_fact_direct_cost_distribution_sum + wb_unit_fact_direct_cost_external_marketing_sum
|
currency · ₽ |
wb_unit_fact_share_of_profit |
Вклад артикула в общую сумму маржинальной прибылиcomputed
Какую долю всей прибыли за период дал этот товар. У убыточных товаров доля отрицательная — по этой колонке их удобно находить.
wb_unit_fact_share_of_profit = wb_unit_fact_profit_sum / сумма wb_unit_fact_profit_sum по всем строкам * 100
|
percent · % |
wb_unit_fact_percent_profit_before_spp |
Маржинальность до СППcomputed
Маржинальность: сколько копеек прибыли остаётся с рубля вашей реализации. Формула: «Маржинальная прибыль» / «До спп: сумма реализации» × 100.
(wb_unit_fact_sum_before_spp_realized + (wb_unit_fact_wb_commission_before_spp_sum + wb_unit_fact_wb_acquiring_sum + wb_unit_fact_wb_logistics_sum + wb_unit_fact_wb_storage_sum + (wb_unit_fact_wb_adv_balance_sum + wb_unit_fact_wb_adv_account_sum) + wb_unit_fact_wb_reviews_bonuses_sum + wb_unit_fact_wb_loyalty_bonuses_sum + wb_unit_fact_wb_jam_subscription_sum + wb_unit_fact_wb_transit_cost_sum + wb_unit_fact_wb_paid_acceptance_sum + wb_unit_fact_wb_penalties_sum + wb_unit_fact_wb_additional_payments_sum) + wb_unit_fact_direct_cost_sebes_sum + wb_unit_fact_direct_cost_nalog_sum + (wb_unit_fact_direct_cost_out_nalog_sum + wb_unit_fact_direct_cost_in_nalog_sum) + wb_unit_fact_direct_cost_self_sales_sum - wb_unit_fact_direct_cost_self_sales_sebes_sum + wb_unit_fact_direct_cost_distribution_sum + wb_unit_fact_direct_cost_external_marketing_sum) / wb_unit_fact_sum_before_spp_realized * 100
|
percent · % |
wb_unit_fact_percent_profit_after_spp |
Маржинальность после СППcomputed
Маржинальность, посчитанная от цены, которую заплатил покупатель. Формула: «Маржинальная прибыль» / «После спп: сумма реализации» × 100.
(wb_unit_fact_sum_before_spp_realized + (wb_unit_fact_wb_commission_before_spp_sum + wb_unit_fact_wb_acquiring_sum + wb_unit_fact_wb_logistics_sum + wb_unit_fact_wb_storage_sum + (wb_unit_fact_wb_adv_balance_sum + wb_unit_fact_wb_adv_account_sum) + wb_unit_fact_wb_reviews_bonuses_sum + wb_unit_fact_wb_loyalty_bonuses_sum + wb_unit_fact_wb_jam_subscription_sum + wb_unit_fact_wb_transit_cost_sum + wb_unit_fact_wb_paid_acceptance_sum + wb_unit_fact_wb_penalties_sum + wb_unit_fact_wb_additional_payments_sum) + wb_unit_fact_direct_cost_sebes_sum + wb_unit_fact_direct_cost_nalog_sum + (wb_unit_fact_direct_cost_out_nalog_sum + wb_unit_fact_direct_cost_in_nalog_sum) + wb_unit_fact_direct_cost_self_sales_sum - wb_unit_fact_direct_cost_self_sales_sebes_sum + wb_unit_fact_direct_cost_distribution_sum + wb_unit_fact_direct_cost_external_marketing_sum) / wb_unit_fact_sum_after_spp_realized * 100
|
percent · % |
wb_unit_fact_percent_profitability |
Рентабельность товараcomputed
Рентабельность: сколько прибыли приносит каждый рубль, вложенный в закупку товара. Формула: «Маржинальная прибыль» / «Себестоимость реализованного товара» × 100.
(wb_unit_fact_sum_before_spp_realized + (wb_unit_fact_wb_commission_before_spp_sum + wb_unit_fact_wb_acquiring_sum + wb_unit_fact_wb_logistics_sum + wb_unit_fact_wb_storage_sum + (wb_unit_fact_wb_adv_balance_sum + wb_unit_fact_wb_adv_account_sum) + wb_unit_fact_wb_reviews_bonuses_sum + wb_unit_fact_wb_loyalty_bonuses_sum + wb_unit_fact_wb_jam_subscription_sum + wb_unit_fact_wb_transit_cost_sum + wb_unit_fact_wb_paid_acceptance_sum + wb_unit_fact_wb_penalties_sum + wb_unit_fact_wb_additional_payments_sum) + wb_unit_fact_direct_cost_sebes_sum + wb_unit_fact_direct_cost_nalog_sum + (wb_unit_fact_direct_cost_out_nalog_sum + wb_unit_fact_direct_cost_in_nalog_sum) + wb_unit_fact_direct_cost_self_sales_sum - wb_unit_fact_direct_cost_self_sales_sebes_sum + wb_unit_fact_direct_cost_distribution_sum + wb_unit_fact_direct_cost_external_marketing_sum) / -wb_unit_fact_direct_cost_sebes_sum * 100
|
percent · % |
wb_unit_fact_markup_coefficient |
Коэффициент наценкиcomputed
Во сколько раз ваша цена выше себестоимости. Коэффициент 3 означает продажу втрое дороже закупки. Считается по цене до скидки площадки — скидку даёт Wildberries, к вашей наценке она отношения не имеет. Формула: «До спп: сумма реализации» / «Себестоимость реализованного товара».
wb_unit_fact_sum_before_spp_realized / -wb_unit_fact_direct_cost_sebes_sum
|
number |
wb_unit_fact_avg_check_before_spp |
До спп: средний чек продажиcomputed
Средняя цена одной продажи по вашим ценам. Формула: «До спп: сумма продаж» / «Продаж».
wb_unit_fact_sum_before_spp_sales / wb_unit_fact_count_sales
|
currency · ₽ |
wb_unit_fact_avg_check_after_spp |
После спп: средний чек продажиcomputed
Средняя цена одной продажи по ценам покупателя — со скидкой Wildberries. Формула: «После спп: сумма продаж» / «Продаж».
wb_unit_fact_sum_after_spp_sales / wb_unit_fact_count_sales
|
currency · ₽ |
wb_unit_fact_commission_per_unit |
Комиссия на единицуcomputed
Сколько комиссии приходится на одну реализованную единицу. Формула: «Комиссия от суммы реализации до спп» / «Итого реализовано товаров».
wb_unit_fact_wb_commission_before_spp_sum / wb_unit_fact_count_realized
|
currency · ₽ |
wb_unit_fact_acquiring_per_unit |
Эквайринг на единицуcomputed
Сколько эквайринга приходится на одну реализованную единицу. Формула: «Эквайринг» / «Итого реализовано товаров».
wb_unit_fact_wb_acquiring_sum / wb_unit_fact_count_realized
|
currency · ₽ |
wb_unit_fact_logistics_per_unit |
Логистика на единицуcomputed
Сколько логистики приходится на одну реализованную единицу. Удобно сравнивать с ценой товара: у дешёвых позиций доставка часто съедает всю маржу. Формула: «Логистика» / «Итого реализовано товаров».
wb_unit_fact_wb_logistics_sum / wb_unit_fact_count_realized
|
currency · ₽ |
wb_unit_fact_storage_per_unit |
Хранение на единицуcomputed
Сколько хранения приходится на одну реализованную единицу. Формула: «Хранение» / «Итого реализовано товаров».
wb_unit_fact_wb_storage_sum / wb_unit_fact_count_realized
|
currency · ₽ |
wb_unit_fact_adv_per_unit |
Реклама на единицуcomputed
Сколько рекламы приходится на одну реализованную единицу. Формула: («Начисления за рекламу (баланс продавца)» + «Начисления за рекламу (счет продавца)») / «Итого реализовано товаров».
(wb_unit_fact_wb_adv_balance_sum + wb_unit_fact_wb_adv_account_sum) / wb_unit_fact_count_realized
|
currency · ₽ |
wb_unit_fact_reviews_per_unit |
Баллы за отзывы на единицуcomputed
Сколько удержаний за баллы по отзывам приходится на единицу. Формула: «Баллы за отзывы» / «Итого реализовано товаров».
wb_unit_fact_wb_reviews_bonuses_sum / wb_unit_fact_count_realized
|
currency · ₽ |
wb_unit_fact_jam_per_unit |
Подписка Джем на единицуcomputed
Сколько стоимости подписки Джем приходится на единицу. Формула: «Подписка Джем» / «Итого реализовано товаров».
wb_unit_fact_wb_jam_subscription_sum / wb_unit_fact_count_realized
|
currency · ₽ |
wb_unit_fact_transit_per_unit |
Транзитные поставки на единицуcomputed
Сколько транзитной поставки приходится на единицу. Формула: «Транзитные поставки» / «Итого реализовано товаров».
wb_unit_fact_wb_transit_cost_sum / wb_unit_fact_count_realized
|
currency · ₽ |
wb_unit_fact_paid_acceptance_per_unit |
Платная приемка на единицуcomputed
Сколько платной приёмки приходится на единицу. Формула: «Платная приемка» / «Итого реализовано товаров».
wb_unit_fact_wb_paid_acceptance_sum / wb_unit_fact_count_realized
|
currency · ₽ |
wb_unit_fact_penalties_per_unit |
Штрафы на единицуcomputed
Сколько штрафов приходится на единицу. Формула: «Штрафы» / «Итого реализовано товаров».
wb_unit_fact_wb_penalties_sum / wb_unit_fact_count_realized
|
currency · ₽ |
wb_unit_fact_additional_payments_per_unit |
Доплаты на единицуcomputed
Сколько доплат приходится на единицу. Формула: «Доплаты» / «Итого реализовано товаров».
wb_unit_fact_wb_additional_payments_sum / wb_unit_fact_count_realized
|
currency · ₽ |
wb_unit_fact_all_services_per_unit |
Все услуги Wildberries на единицуcomputed
Сколько всех услуг Wildberries приходится на одну реализованную единицу — полная стоимость площадки в пересчёте на товар. Формула: «Сумма всех услуг» / «Итого реализовано товаров».
(wb_unit_fact_wb_commission_before_spp_sum + wb_unit_fact_wb_acquiring_sum + wb_unit_fact_wb_logistics_sum + wb_unit_fact_wb_storage_sum + (wb_unit_fact_wb_adv_balance_sum + wb_unit_fact_wb_adv_account_sum) + wb_unit_fact_wb_reviews_bonuses_sum + wb_unit_fact_wb_loyalty_bonuses_sum + wb_unit_fact_wb_jam_subscription_sum + wb_unit_fact_wb_transit_cost_sum + wb_unit_fact_wb_paid_acceptance_sum + wb_unit_fact_wb_penalties_sum + wb_unit_fact_wb_additional_payments_sum) / wb_unit_fact_count_realized
|
currency · ₽ |
wb_unit_fact_for_pay_per_unit |
Перечисление на единицуcomputed
Сколько денег вы получаете с одной реализованной единицы. Формула: «Сумма к перечислению» / «Итого реализовано товаров».
(wb_unit_fact_sum_before_spp_realized + (wb_unit_fact_wb_commission_before_spp_sum + wb_unit_fact_wb_acquiring_sum + wb_unit_fact_wb_logistics_sum + wb_unit_fact_wb_storage_sum + (wb_unit_fact_wb_adv_balance_sum + wb_unit_fact_wb_adv_account_sum) + wb_unit_fact_wb_reviews_bonuses_sum + wb_unit_fact_wb_loyalty_bonuses_sum + wb_unit_fact_wb_jam_subscription_sum + wb_unit_fact_wb_transit_cost_sum + wb_unit_fact_wb_paid_acceptance_sum + wb_unit_fact_wb_penalties_sum + wb_unit_fact_wb_additional_payments_sum)) / wb_unit_fact_count_realized
|
currency · ₽ |
wb_unit_fact_nalog_per_unit |
Налог на единицуcomputed
Сколько налога приходится на одну реализованную единицу. Формула: «Налог» / «Итого реализовано товаров».
wb_unit_fact_direct_cost_nalog_sum / wb_unit_fact_count_realized
|
currency · ₽ |
wb_unit_fact_nds_per_unit |
НДС на единицуcomputed
Сколько НДС приходится на одну реализованную единицу. Формула: «Итого НДС» / «Итого реализовано товаров».
(wb_unit_fact_direct_cost_out_nalog_sum + wb_unit_fact_direct_cost_in_nalog_sum) / wb_unit_fact_count_realized
|
currency · ₽ |
wb_unit_fact_sebes_per_unit |
Себестоимость на единицуcomputed
Сколько себестоимости приходится на одну реализованную единицу. Формула: «Себестоимость реализованного товара» / «Итого реализовано товаров».
wb_unit_fact_direct_cost_sebes_sum / wb_unit_fact_count_realized
|
currency · ₽ |
wb_unit_fact_profit_per_unit |
Прибыль на единицуcomputed
Сколько прибыли приносит одна реализованная единица. Формула: «Маржинальная прибыль» / «Итого реализовано товаров».
(wb_unit_fact_sum_before_spp_realized + (wb_unit_fact_wb_commission_before_spp_sum + wb_unit_fact_wb_acquiring_sum + wb_unit_fact_wb_logistics_sum + wb_unit_fact_wb_storage_sum + (wb_unit_fact_wb_adv_balance_sum + wb_unit_fact_wb_adv_account_sum) + wb_unit_fact_wb_reviews_bonuses_sum + wb_unit_fact_wb_loyalty_bonuses_sum + wb_unit_fact_wb_jam_subscription_sum + wb_unit_fact_wb_transit_cost_sum + wb_unit_fact_wb_paid_acceptance_sum + wb_unit_fact_wb_penalties_sum + wb_unit_fact_wb_additional_payments_sum) + wb_unit_fact_direct_cost_sebes_sum + wb_unit_fact_direct_cost_nalog_sum + (wb_unit_fact_direct_cost_out_nalog_sum + wb_unit_fact_direct_cost_in_nalog_sum) + wb_unit_fact_direct_cost_self_sales_sum - wb_unit_fact_direct_cost_self_sales_sebes_sum + wb_unit_fact_direct_cost_distribution_sum + wb_unit_fact_direct_cost_external_marketing_sum) / wb_unit_fact_count_realized
|
currency · ₽ |
curl https://web.metriclab.ru/v1/wb/unit-fact \
-H "Authorization: Bearer ml_live_xxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"cabinets": ["12345"],
"date_from": "2026-08-31",
"date_to": "2026-09-13",
"limit": 500
}'
import requests
KEY = "ml_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
HOST = "https://web.metriclab.ru"
resp = requests.post(
f"{HOST}/v1/wb/unit-fact",
headers={"Authorization": f"Bearer {KEY}"},
json={
"cabinets": ["12345"],
"date_from": "2026-08-31",
"date_to": "2026-09-13",
"limit": 500,
},
timeout=180,
)
body = resp.json()
for note in body["meta"]["cabinets_notes"]:
print(note["cabinet"], note["note"])
for row in body["data"]["rows"][:5]:
print(row["article_wb"], row["wb_unit_fact_profit_sum"])
{
"status": "success",
"data": {
"total": 412,
"rows": [
{
"cabinet": "Юрлицо-w123",
"article_wb": "176003726", "size": "0",
"article_supplier": "ART-001", "brand": "BrandX",
"abc_realization": "A", "abc_profit": "B",
"wb_unit_fact_sum_before_spp_realized": 184300,
"wb_unit_fact_for_pay": 121870.5,
"wb_unit_fact_profit_sum": 38412.7,
"wb_unit_fact_percent_profit_before_spp": 20.8,
…остальные колонки листа…
}
]
},
"meta": {
"marketplace": "wb", "dataset": "unit-fact",
"stocks": {"latest": "2026-09-14", "in_period": "2026-09-13"},
"cabinets_notes": [{
"cabinet": "Юрлицо-w123",
"daily_available_from": "2026-08-25",
"weeks": {"by_day": […], "whole_week": [], "skipped": []},
"note": "Ежедневный Unit-факт по кабинету доступен с 25.08.2026. По дням вошли недели: 31.08.2026–06.09.2026, 07.09.2026–13.09.2026."
}],
"count": 412, "total": 412, "limit": 500, "offset": 0
}
}
Лист «Unit-факт» из виджета «Таблица» на сайте — строка на SKU за период со всеми колонками листа: реализация, услуги площадки по статьям, себестоимость, налог и НДС, сумма к перечислению, прибыль, маржинальность, доли, показатели на единицу, ABC-классы и остатки. Считается тем же кодом, что и таблица на сайте, поэтому цифры совпадают с ней.
metrics, где производные считает клиент). Формула каждой такой колонки показана в каталоге ниже.notes строки — массив {date, text}.meta.stocks.latest); на последнюю дату внутри периода — те же колонки с суффиксом __in_period (есть, только когда даты различаются).filters и листайте через offset; полное число строк — в data.total.client_id кабинетов. Должны принадлежать владельцу ключа (GET /v1/cabinets). Пустой массив [] — все доступные.YYYY-MM-DD, включительно.YYYY-MM-DD, включительно.skus, brands, subjects, article_suppliers, grouping_level_1..3, group_name, responsible).0."success" при 200.cabinet, article_ozon (SKU), article_supplier, brand, subject, группы товаров и далее все показатели. Колонки-формулы, доли и ABC — уже посчитаны (null, если не считается: нет слагаемого или деление на ноль).limit/offset).latest — дата снимка остатков в колонках остатков; in_period — дата снимка в колонках с суффиксом __in_period (null, если совпадает с latest или данных нет).
Ключи колонок в строках ответа. Блоки и порядок — как на листе «Unit-факт» в MetricLab.
Колонки с тегом computed считаются из других
(формула показана рядом) и приходят в ответе уже посчитанными.
Актуальный список — GET /v1/ozon/unit-fact-catalog.
grouping_level_1 |
Уровень группировки 1
Группировка 1 из ручной формы «Группы товаров».
|
text |
grouping_level_2 |
Уровень группировки 2
Группировка 2 из ручной формы «Группы товаров».
|
text |
grouping_level_3 |
Уровень группировки 3
Группировка 3 из ручной формы «Группы товаров».
|
text |
group_name |
Группа товаров
Название группы товаров из ручной формы «Группы товаров».
|
text |
responsible |
Ответственный
Кто отвечает за товар — из ручной формы «Группы товаров».
|
text |
cabinet |
Кабинет
Кабинет, к которому относится строка.
|
text |
subject |
Категория
Категория товара в каталоге Ozon.
|
text |
brand |
Бренд
Бренд товара из карточки.
|
text |
article_supplier |
Артикул
Ваш артикул из карточки товара.
|
text |
article_ozon |
SKU
Идентификатор товара в системе Ozon (SKU).
|
text |
card_created |
Дата создания карточки
Когда карточка товара создана на Ozon.
|
text |
abc_realization |
ABC по сумме реализацииcomputed
Класс товара по накопленной доле в показателе «Сумма реализации по ценам продавца (до соинвеста)». Товары выстраиваются по убыванию значения: A — те, что дают верхнюю часть суммы, B — следующую, C — хвост. Отрицательное значение — класс D. Доли классов (по умолчанию 80 %, 15 % и 5 %) настраиваются в подписи блока.
ABC-класс по sum_before_spp_realized (A/B/C = 80/15/5 %, убыток = D)
|
text |
abc_profit |
ABC по маржинальной прибылиcomputed
Класс товара по накопленной доле в показателе «Маржинальная прибыль». Товары выстраиваются по убыванию значения: A — те, что дают верхнюю часть суммы, B — следующую, C — хвост. Отрицательное значение — класс D. Доли классов (по умолчанию 80 %, 15 % и 5 %) настраиваются в подписи блока.
ABC-класс по profit_sum (A/B/C = 80/15/5 %, убыток = D)
|
text |
abc_for_pay |
ABC по сумме к перечислениюcomputed
Класс товара по накопленной доле в показателе «Сумма к перечислению». Товары выстраиваются по убыванию значения: A — те, что дают верхнюю часть суммы, B — следующую, C — хвост. Отрицательное значение — класс D. Доли классов (по умолчанию 80 %, 15 % и 5 %) настраиваются в подписи блока.
ABC-класс по for_pay (A/B/C = 80/15/5 %, убыток = D)
|
text |
search_position |
Средняя позиция в поиске
Позиция карточки в результатах поиска. За период берётся лучшая (минимальная) достигнутая позиция.
|
number |
card_views |
Показов
Количество показов карточки товара из Аналитика - Графики (Продажи моих товаров)
|
number · шт |
card_clicks |
Кликов
Количество переходов в карточку товара из Аналитика - Графики (Продажи моих товаров)
|
number · шт |
ozon_ctr |
CTRcomputed
Конверсия из показов в клики (переходы / показы * 100). Формула: «Кликов» / «Показов» × 100.
card_clicks / card_views * 100
|
percent · % |
add_to_basket |
Добавлений в корзину
Количество добавлений товара в корзину из Аналитика - Графики (Продажи моих товаров)
|
number · шт |
ozon_conversion_to_basket |
Конверсия в корзинуcomputed
Конверсия из переходов в добавления в корзину (добавления в корзину / переходы * 100). Формула: «Добавлений в корзину» / «Кликов» × 100.
add_to_basket / card_clicks * 100
|
percent · % |
orders_amount |
Заказов
Количество заказов из Аналитика - Графики (Продажи моих товаров)
|
number · шт |
count_self_orders |
Само-заказов
Сколько единиц вы заказали сами — считается по дате заказа. Заполняется в ручной форме «Самовыкупы».
|
number · шт |
ozon_orders_amount_no_self |
Заказов (без учета самозаказов)
Заказы покупателей без ваших собственных.
|
number · шт |
ozon_conversion_to_order |
Конверсия в заказcomputed
Конверсия из корзины в заказ (заказы / добавления в корзину * 100). Формула: «Заказов» / «Добавлений в корзину» × 100.
orders_amount / add_to_basket * 100
|
percent · % |
count_deliveries_funnel |
Доставок
Сколько единиц товара доставлено покупателям за период. Если площадка не отдаёт доставки в аналитике (так бывает без подписки Premium), они считаются по статусам отправлений и относятся к дате заказа.
|
number · шт |
count_cancellations |
Отмен
Сколько единиц покупатели отменили до получения заказа. Если площадка не отдаёт отмены в аналитике (так бывает без подписки Premium), они считаются по статусам отправлений и относятся к дате заказа.
|
number · шт |
ozon_cancellation_rate |
% отменcomputed
Какая доля заказов отменена — покупателем, продавцом или площадкой. Высокий процент бьёт по выдаче карточки. Формула: «Отмен» / «Заказов» × 100.
count_cancellations / orders_amount * 100
|
percent · % |
count_sales |
Продаж
Сколько единиц товара выкупили покупатели за период.
|
number · шт |
count_self_sales |
Само-выкупов
Сколько единиц вы выкупили сами — считается по дате выкупа. Заполняется в ручной форме «Самовыкупы».
|
number · шт |
count_distributions |
Раздач
Сколько единиц роздано по механикам раздач. Заполняется в ручной форме «Раздачи».
|
number · шт |
ozon_count_sales_no_self_distrib |
Продаж (без учета самовыкупов и раздач)
Настоящие продажи покупателям: из всех выкупов вычтены самовыкупы и раздачи.
|
number · шт |
count_returns |
Возвратов
Сколько единиц покупатели вернули за период после выкупа. Возврат уменьшает реализацию и добавляет обратную логистику. Приходит из отчёта Ozon о начислениях.
|
number · шт |
ozon_return_rate |
% возвратовcomputed
Какая часть суммы продаж вернулась обратно возвратами. Формула: «Сумма возвратов» / «Сумма продаж» × 100.
-sum_before_spp_returns / sum_before_spp_sales * 100
|
percent · % |
count_realized |
Итого реализовано товаров
Сколько единиц товара реализовано за период.
|
number · шт |
ozon_realization_rate |
% выкупа с учетом возвратовcomputed
Какая часть отправленных товаров осталась у покупателей. Формула: «Итого реализовано товаров» / («Продаж» + «Отмен») × 100.
count_realized / (count_sales + count_cancellations) * 100
|
percent · % |
ozon_cpm |
Стоимость 1000 показовcomputed
Во сколько обходится тысяча показов рекламы. Формула: «Рекламные расходы» / «Показов» × 1000.
ozon_total_advertising_sum / card_views * 1000
|
currency · ₽ |
ozon_cpc |
Стоимость кликаcomputed
Во сколько обходится один переход в карточку из рекламы. Формула: «Рекламные расходы» / «Кликов».
ozon_total_advertising_sum / card_clicks
|
currency · ₽ |
ozon_cost_per_basket |
Стоимость корзиныcomputed
Во сколько обходится одно добавление товара в корзину. Формула: «Рекламные расходы» / «Добавлений в корзину».
ozon_total_advertising_sum / add_to_basket
|
currency · ₽ |
ozon_cost_per_order |
Стоимость заказаcomputed
Стоимость одного заказа (расходы на РК / общее количество заказов по кабинету). Формула: «Расходы РК (все)» / «Заказов».
ozon_total_advertising_sum / orders_amount
|
currency · ₽ |
ozon_count_sales_rf |
Продаж, РФ
Сколько единиц товара выкупили покупатели внутри РФ.
|
number · шт |
ozon_count_sales_cis |
Продаж, другие страны
Сколько единиц товара выкупили покупатели за пределами РФ.
|
number · шт |
ozon_stock_count |
Остатков на складах Ozon
Сколько единиц товара лежит на складах Ozon и доступно к продаже. Это остаток на дату, а не за период.
|
number |
ozon_stock_in_supply |
Товаров в поставках
Сколько единиц едет на склады Ozon и ещё не доступно к продаже. Это остаток на дату, а не за период.
|
number |
ozon_stock_sebes |
Себестоимость остатков
Сколько денег лежит на складах в себестоимости.
|
currency |
ozon_stock_price |
Цена реализации остатков (по ценам продавца до соинвеста)
За сколько можно продать остаток по вашим ценам до соинвеста Ozon.
|
currency |
ozon_stock_markup_coefficient |
Коэффициент наценки на остатокcomputed
Во сколько раз остаток дороже в продаже, чем в закупке. Формула: «Цена реализации остатков (по ценам продавца до соинвеста)» / «Себестоимость остатков».
ozon_stock_price / ozon_stock_sebes
|
number |
orders_sum |
Сумма заказов
Сумма заказов из Аналитика - Графики (Продажи моих товаров)
|
currency · ₽ |
ozon_cancellations_sum |
Сумма отменcomputed
Отменённые заказы в деньгах: количество отмен по средней цене продажи. Формула: «Отмен» × «Сумма продаж» / «Продаж».
count_cancellations * sum_before_spp_sales / count_sales
|
currency · ₽ |
sum_before_spp_sales |
Сумма продаж
Сумма выкупленных товаров по цене до соинвеста Ozon — по всем покупателям сразу, и внутри РФ, и за её пределами.
|
currency · ₽ |
ozon_sum_before_spp_sales_rf |
Сумма продаж, РФ
Часть суммы продаж, которую выкупили покупатели внутри РФ.
|
currency · ₽ |
ozon_sum_before_spp_sales_cis |
Сумма продаж, другие страны
Часть суммы продаж, которую выкупили покупатели за пределами РФ. Такие продажи Ozon оформляет выкупом товара у вас.
|
currency · ₽ |
sum_before_spp_returns |
Сумма возвратов
Сумма возвращённых товаров по цене до соинвеста Ozon.
|
currency · ₽ |
sum_before_spp_realized |
Сумма реализации по ценам продавца (до соинвеста)
Стоимость реализованного товара до вычета СПП (соинвестирования). Включает продажи и в РФ, и в другие страны.
|
currency · ₽ |
ozon_article_realization_share |
Вклад артикула в общую сумму реализацииcomputed
Какую долю всей реализации за период дал этот товар. Доли всех товаров складываются в 100%.
ozon_article_realization_share = sum_before_spp_realized / сумма sum_before_spp_realized по всем строкам * 100
|
percent · % |
ozon_sum_balls_sales |
Баллы за скидки
Баллы за скидки по проданным товарам: часть скидки покупателя, которую оплачивает продавец.
|
currency · ₽ |
ozon_sum_balls_returns |
Баллы за скидки (возврат)
Баллы за скидки по возвращённым товарам: возврат ранее оплаченной продавцом части скидки.
|
currency · ₽ |
ozon_sum_loyalty_sales |
Выплаты по механикам лояльности партнеров
Выплаты по акциям и механикам лояльности партнёров, в которых участвовал проданный товар.
|
currency · ₽ |
ozon_sum_loyalty_returns |
Выплаты по механикам лояльности партнеров (возврат)
Возврат выплат по акциям и механикам лояльности партнёров за возвращённые товары.
|
currency · ₽ |
sum_spp |
Итого сумма соинвеста
Соинвестирование Ozon в скидку: сколько площадка скинула покупателю за свой счёт. Продавцу это компенсируется баллами, которыми можно оплачивать комиссии и услуги. Комиссия при этом считается от цены ДО соинвеста. Только по РФ: за её пределами Ozon скидку не софинансирует — он выкупает товар дешевле, и эта разница считается комиссией.
|
currency · ₽ |
ozon_spp_share_of_sales |
Соинвест, %computed
Какую часть суммы реализации до соинвеста компенсирует Ozon. Формула: «Итого сумма соинвеста» / «Сумма реализации до соинвеста, РФ» × 100.
sum_spp / ozon_sum_before_spp_realized_rf * 100
|
percent · % |
sum_after_spp_realized |
Сумма реализации с учетом соинвеста
Стоимость реализованного товара с учётом СПП (соинвестирования). Включает продажи и в РФ, и в другие страны.
|
currency · ₽ |
ozon_sum_before_spp_realized_rf |
Сумма реализации до соинвеста, РФ
Часть суммы реализации, которая приходится на продажи внутри РФ.
|
currency · ₽ |
ozon_sum_before_spp_realized_cis |
Сумма реализации до соинвеста, другие страны
Часть суммы реализации, которая приходится на продажи покупателям за пределами РФ, по вашим ценам — до того, как Ozon возьмёт на себя часть стоимости.
|
currency · ₽ |
ozon_sum_after_spp_realized_rf |
Сумма реализации с учетом соинвеста, РФ
Часть суммы реализации с учётом соинвестирования, которая приходится на продажи внутри РФ.
|
currency · ₽ |
ozon_sum_after_spp_realized_cis |
Сумма реализации с уч. выкупного коэф., другие страны
Сколько Ozon перечисляет за товар, проданный за пределы РФ, — ваша цена за вычетом выкупного коэффициента. Соинвестирования и компенсации баллами по таким продажам нет: площадка просто выкупает товар дешевле.
|
currency · ₽ |
ozon_commission_sum |
Комиссия Ozon
Комиссия площадки за продажу: процент от цены товара по его категории. Складывается из двух частей — комиссии по РФ и того, что Ozon оставляет себе на продажах за её пределы (выкупной коэффициент).
|
currency · ₽ |
ozon_commission_sum_rf |
Комиссия Ozon, РФ
Комиссия площадки за продажи внутри РФ: процент от цены товара по его категории.
|
currency · ₽ |
ozon_commission_sum_cis |
Комиссия Ozon, другие страны
Комиссия площадки за продажи за пределы РФ. Отдельной строкой Ozon её не показывает: он выкупает товар по цене ниже вашей, и разница — выкупной коэффициент — и есть то, что площадка оставляет себе.
|
currency · ₽ |
ozon_avg_commission_percent |
Комиссия, %computed
Какую часть суммы реализации до соинвеста забирает комиссия Ozon. Формула: «Комиссия Ozon» / «Сумма реализации по ценам продавца (до соинвеста)» × 100.
-ozon_commission_sum / sum_before_spp_realized * 100
|
percent · % |
ozon_avg_commission_percent_rf |
Комиссия РФ, %computed
Какую часть реализации внутри РФ забирает комиссия площадки. Формула: «Комиссия Ozon, РФ» / «Сумма реализации до соинвеста, РФ» × 100.
-ozon_commission_sum_rf / ozon_sum_before_spp_realized_rf * 100
|
percent · % |
ozon_avg_commission_percent_cis |
Комиссия другие страны, %computed
Какую часть реализации за пределами РФ забирает выкупной коэффициент площадки. Формула: «Комиссия Ozon, другие страны» / «Сумма реализации до соинвеста, другие страны» × 100.
-ozon_commission_sum_cis / ozon_sum_before_spp_realized_cis * 100
|
percent · % |
ozon_logistics_total |
Логистика Ozon
Вся логистика Ozon: доставка до покупателя, обратная дорога и перемещения между складами. Складывается из: «Сборка заказа», «Обработка отправления», «Логистика», «Магистраль», «Последняя миля», «Доставка партнером Ozon», «Услуги доставки партнерами Ozon по схеме realFBS», «Обработка возврата», «Обработка отмененного или невостребованного товара», «Обработка невыкупленного товара», «Обратная магистраль», «Обратная логистика», «Услуги партнеров Ozon».
|
currency · ₽ |
ozon_logistics_share |
Логистика, %computed
Какую долю реализации съедает логистика. Растёт при низком проценте выкупа: дорога оплачена, а продажи нет. Формула: «Логистика Ozon» / «Сумма реализации по ценам продавца (до соинвеста)» × 100.
-ozon_logistics_total / sum_before_spp_realized * 100
|
percent · % |
ozon_20_placement_of_goods_on_the_warehouse |
Размещение товаров на складе (платное хранение)
Списание за платное хранение товара на складе Ozon: зависит от занятого объёма и срока хранения.
|
currency · ₽ |
ozon_paid_storage_share |
Хранение, %computed
Какую часть суммы реализации до соинвеста забирает платное хранение. Формула: «Размещение товаров на складе (платное хранение)» / «Сумма реализации по ценам продавца (до соинвеста)» × 100.
-ozon_20_placement_of_goods_on_the_warehouse / sum_before_spp_realized * 100
|
percent · % |
ozon_additional_services_total |
Дополнительные услуги Ozon
Дополнительные услуги площадки, не вошедшие в другие блоки. Складывается из: «Premium-подписка», «Рассрочка, досрочные выплаты», «Транзитные поставки (кросс-докинг)», «Дополнительное вознаграждение за доставку», «Перемещение товаров между складами Ozon», «Бронирование места на складе», «Размещение товаров на складе (хранение)», «Обработка брака, излишков», «Подготовка товаров к возврату», «Утилизация товара», «Абонентское обслуживание по продвижению товаров», «Услуга продвижения бренда», «Продвижение Premium», «Продвижение бонусы продавца», «Продвижение звездные товары», «Генерация видеообложки», «Приобретение отзывов», «Закрепление отзыва», «Услуги модерации товаров», «Операционные ошибки продавца», «Прочие услуги».
|
currency · ₽ |
ozon_additional_services_share |
Доп. услуги, %computed
Какую долю реализации съедают дополнительные услуги площадки. Формула: «Дополнительные услуги Ozon» / «Сумма реализации по ценам продавца (до соинвеста)» × 100.
-ozon_additional_services_total / sum_before_spp_realized * 100
|
percent · % |
adv_sum_ozk_search |
Оплата за клик (поиск)
Расходы на «Оплату за клик» в поиске: списывается за каждый переход покупателя по вашему объявлению в поисковой выдаче. Приходит из отчёта Ozon о начислениях.
|
currency · ₽ |
ozon_drr_ozk_search |
ДРР Оплата за клик (поиск)computed
Какую часть суммы реализации до соинвеста съедает продвижение в поиске. Формула: «Оплата за клик (поиск)» / «Сумма реализации по ценам продавца (до соинвеста)» × 100.
adv_sum_ozk_search / sum_before_spp_realized * 100
|
percent · % |
adv_sum_ozk_search_rec |
Оплата за клик (поиск + рекомендации)
Расходы на ОЗК (Оплата за клик в поиске и рекомендациях)
|
currency · ₽ |
ozon_drr_ozk_search_rec |
ДРР Оплата за клик (поиск + рекомендации)computed
Какую часть суммы реализации до соинвеста съедает продвижение в поиске и рекомендациях. Формула: «Оплата за клик (поиск + рекомендации)» / «Сумма реализации по ценам продавца (до соинвеста)» × 100.
adv_sum_ozk_search_rec / sum_before_spp_realized * 100
|
percent · % |
adv_sum_special |
Спецразмещение
Расходы на спецразмещение (прежнее название — «Вывод в топ»): платный показ карточки на приоритетных местах выдачи. Приходит из отчёта Ozon о начислениях.
|
currency · ₽ |
ozon_drr_special |
ДРР Спецразмещениеcomputed
Какую часть суммы реализации до соинвеста съедает спецразмещение. Формула: «Спецразмещение» / «Сумма реализации по ценам продавца (до соинвеста)» × 100.
adv_sum_special / sum_before_spp_realized * 100
|
percent · % |
adv_sum_ozz |
Оплата за заказ
Расходы на «Оплату за заказ»: площадка берёт процент только с состоявшихся заказов, приведённых рекламой. Приходит из отчёта Ozon о начислениях.
|
currency · ₽ |
ozon_drr_ozz |
ДРР Оплата за заказcomputed
Какую часть суммы реализации до соинвеста съедает продвижение с оплатой за заказ. Формула: «Оплата за заказ» / «Сумма реализации по ценам продавца (до соинвеста)» × 100.
adv_sum_ozz / sum_before_spp_realized * 100
|
percent · % |
adv_sum_banner |
Медийная
Расходы на медийную рекламу (баннеры и видеобаннеры)
|
currency · ₽ |
ozon_drr_banner |
ДРР медийнаяcomputed
Какую часть суммы реализации до соинвеста съедает медийная реклама. Формула: «Медийная» / «Сумма реализации по ценам продавца (до соинвеста)» × 100.
adv_sum_banner / sum_before_spp_realized * 100
|
percent · % |
adv_sum_brand_shelf |
Брендовая полка
Расходы на формат «Брендовая полка»: подборка ваших товаров с баннером бренда в результатах поиска.
|
currency · ₽ |
ozon_drr_brand_shelf |
ДРР брендовая полкаcomputed
Какую часть суммы реализации до соинвеста съедает брендовая полка. Формула: «Брендовая полка» / «Сумма реализации по ценам продавца (до соинвеста)» × 100.
adv_sum_brand_shelf / sum_before_spp_realized * 100
|
percent · % |
ozon_advertising_after_bonus_sum |
Реклама Ozon после вычета бонусов
Сколько реально списано денег за рекламу — расходы за вычетом части, оплаченной бонусами.
|
currency · ₽ |
ozon_advertising_share_after_spp |
Реклама после соинвеста, %computed
Тот же ДРР, но от денег, которые реально заплатил покупатель: реализация с учётом соинвеста Ozon ниже вашей цены, поэтому доля рекламы получается выше, чем в соседней колонке до соинвеста. Формула: «Рекламные расходы» / «Сумма реализации с учетом соинвеста» × 100.
ozon_total_advertising_sum / sum_after_spp_realized * 100
|
percent · % |
ozon_advertising_share_of_orders |
Реклама от заказов, %computed
Доля рекламных расходов в сумме заказов. В отличие от ДРР от реализации, считается от заказанного, а не от выкупленного. Формула: «Рекламные расходы» / «Сумма заказов» × 100.
ozon_total_advertising_sum / orders_sum * 100
|
percent · % |
ozon_advertising_share |
Реклама, %computed
Доля рекламных расходов в реализации (ДРР) — сколько копеек рекламы приходится на рубль выручки. Формула: «Рекламные расходы» / «Сумма реализации по ценам продавца (до соинвеста)» × 100.
ozon_total_advertising_sum / sum_before_spp_realized * 100
|
percent · % |
ozon_41_service_of_acquiring |
Эквайринг
Комиссия за приём оплаты от покупателя — стоимость эквайринга по тарифу банка-эквайера. Приходит из отчёта Ozon о начислениях.
|
currency · ₽ |
ozon_42_service_of_product_loss_by_ozon |
Брак, потеря товара по вине Ozon
Возмещение за товар, повреждённый или потерянный по вине Ozon.
|
currency · ₽ |
ozon_43_service_of_sales_goal_bonus |
Бонус за достижение цели продаж
Премия Ozon за выполнение согласованного плана продаж.
|
currency · ₽ |
ozon_44_service_of_claims_accruals |
Начисления по претензиям
Выплаты по претензиям, которые Ozon признал обоснованными.
|
currency · ₽ |
ozon_45_service_of_inventory_adjustment |
Инвентаризация взаиморасчетов
Корректировка взаиморасчётов по итогам инвентаризации.
|
currency · ₽ |
ozon_46_service_of_compensation_for_damaged_lost_goods |
Компенсация за поврежденный, утерянный на складе товар
Возмещение за товар, повреждённый или утерянный на складе Ozon.
|
currency · ₽ |
ozon_47_service_of_delivery_compensation |
Компенсация перечисления за доставку
Возврат ранее удержанной платы за доставку: Ozon признал списание ошибочным и вернул деньги. Приходит из отчёта Ozon о начислениях.
|
currency · ₽ |
ozon_48_service_of_shortage_deduction |
Удержание за недовложение товара
Удержание за недовложение: в отправлении оказалось меньше товара, чем заявлено.
|
currency · ₽ |
ozon_49_service_of_return_of_goods_to_stock |
Декомпенсации и возвращение товаров на сток
Отмена ранее выплаченной компенсации: товар нашёлся и вернулся на склад.
|
currency · ₽ |
ozon_50_adjustment_of_premium_act |
Корректировка суммы акта о премии
Уточнение суммы премии по акту за прошлый период — поправка задним числом к ранее закрытому отчёту. Приходит из отчёта Ozon о начислениях.
|
currency · ₽ |
ozon_51_service_of_other_compensation |
Прочие компенсации
Прочие компенсации Ozon, для которых нет отдельной строки в отчёте.
|
currency · ₽ |
ozon_52_service_of_compensation_for_destroyed_goods |
Компенсация за уничтоженный товар
Возмещение за товар, уничтоженный на складе Ozon. Приходит из отчёта Ozon о начислениях.
|
currency · ₽ |
ozon_compensations_total |
Компенсации и прочие начисления
Начисления в вашу пользу: компенсации за утерянный и повреждённый товар, возвраты ранее удержанных сумм, прочие поступления. Складывается из: «Эквайринг», «Брак, потеря товара по вине Ozon», «Бонус за достижение цели продаж», «Начисления по претензиям», «Инвентаризация взаиморасчетов», «Компенсация за поврежденный, утерянный на складе товар», «Компенсация перечисления за доставку», «Удержание за недовложение товара», «Декомпенсации и возвращение товаров на сток», «Корректировка суммы акта о премии», «Прочие компенсации», «Компенсация за уничтоженный товар».
|
currency · ₽ |
ozon_compensations_share |
Компенсации, %computed
Какую долю реализации возвращают вам компенсации и прочие начисления. Формула: «Компенсации и прочие начисления» / «Сумма реализации по ценам продавца (до соинвеста)» × 100.
-ozon_compensations_total / sum_before_spp_realized * 100
|
percent · % |
ozon_all_services_sum |
Сумма всех услуг Ozon
Все удержания Ozon за период: комиссия (вместе с выкупным коэффициентом по продажам за пределы РФ), логистика, дополнительные услуги, реклама и компенсации.
|
currency · ₽ |
ozon_all_services_share |
Все услуги, %computed
Какую часть суммы реализации до соинвеста забирают все услуги Ozon. Формула: «Сумма всех услуг Ozon» / «Сумма реализации по ценам продавца (до соинвеста)» × 100.
-ozon_all_services_sum / sum_before_spp_realized * 100
|
percent · % |
ozon_54_insurance_of_goods |
Страхование товаров
Плата за страхование товара: защита от массовых повреждений на складе Ozon и страхование отправлений в пути до покупателя. Списывается с продавца по тарифу площадки. Приходит из отчёта Ozon о начислениях.
|
currency · ₽ |
ozon_acquiring_share |
Эквайринг, %computed
Какую долю реализации по вашим ценам (до соинвеста Ozon) съедает эквайринг — комиссия за приём оплаты от покупателя. Формула: «Эквайринг» / «Сумма реализации по ценам продавца (до соинвеста)» × 100.
-ozon_41_service_of_acquiring / sum_before_spp_realized * 100
|
percent · % |
ozon_insurance_share |
Страхование, %computed
Какую долю реализации по вашим ценам (до соинвеста Ozon) съедает страхование товара. Формула: «Страхование товаров» / «Сумма реализации по ценам продавца (до соинвеста)» × 100.
-ozon_54_insurance_of_goods / sum_before_spp_realized * 100
|
percent · % |
ozon_1_assembly_order |
Сборка заказа
Плата за сборку заказа на складе: комплектация и упаковка товара перед отправкой покупателю.
|
currency · ₽ |
ozon_2_processing_shipment |
Обработка отправления
Плата за приём и обработку отправления в точке отгрузки.
|
currency · ₽ |
ozon_3_logistics |
Логистика
Плата за доставку заказа покупателю по тарифам Ozon.
|
currency · ₽ |
ozon_4_transportation |
Магистраль
Перевозка товара между регионами: от склада отгрузки до региона покупателя.
|
currency · ₽ |
ozon_5_last_mile |
Последняя миля
Доставка от сортировочного центра до пункта выдачи или курьером до двери.
|
currency · ₽ |
ozon_6_delivery_by_ozon |
Доставка партнером Ozon
Доставка силами Ozon, когда отгрузку со своего склада выполняет продавец.
|
currency · ₽ |
ozon_7_delivery_by_partners |
Услуги доставки партнерами Ozon по схеме realFBS
Доставка партнёрской службой при работе по схеме realFBS, когда товар хранится у продавца.
|
currency · ₽ |
ozon_processing_delivery_total |
Обработка и доставка
Сколько стоило довезти товар до покупателя: обработка отправления, магистраль до сортировочного центра и последняя миля. Складывается из: «Сборка заказа», «Обработка отправления», «Логистика», «Магистраль», «Последняя миля», «Доставка партнером Ozon», «Услуги доставки партнерами Ozon по схеме realFBS».
|
currency · ₽ |
ozon_8_processing_return |
Обработка возврата
Приём и проверка товара, который вернул покупатель.
|
currency · ₽ |
ozon_9_processing_cancellation |
Обработка отмененного или невостребованного товара
Возврат на склад товара из отменённого или невостребованного заказа.
|
currency · ₽ |
ozon_10_processing_unpurchased |
Обработка невыкупленного товара
Обработка товара, который покупатель не выкупил в пункте выдачи.
|
currency · ₽ |
ozon_11_reverse_transportation |
Обратная магистраль
Перевозка возвращённого товара между регионами до склада хранения.
|
currency · ₽ |
ozon_12_reverse_logistics |
Обратная логистика
Доставка возврата от покупателя обратно на склад Ozon. Возникает, когда покупатель отказался от заказа или вернул товар после выкупа: дорогу в обратную сторону оплачивает продавец. Приходит из отчёта Ozon о начислениях.
|
currency · ₽ |
ozon_13_services_of_partners |
Услуги партнеров Ozon
Услуги партнёров Ozon, связанные с доставкой и обработкой заказов.
|
currency · ₽ |
ozon_returns_cancellations_total |
Возвраты и отмены
Во что обошлись несостоявшиеся продажи: обратная логистика, обработка возвратов и отмен. Складывается из: «Обработка возврата», «Обработка отмененного или невостребованного товара», «Обработка невыкупленного товара», «Обратная магистраль», «Обратная логистика», «Услуги партнеров Ozon».
|
currency · ₽ |
ozon_14_premium_subscription |
Premium-подписка
Абонентская плата за подписку Premium — платный тариф Ozon с расширенной аналитикой и пониженными комиссиями на часть услуг. Приходит из отчёта Ozon о начислениях.
|
currency · ₽ |
ozon_15_installment_payments |
Рассрочка, досрочные выплаты
Комиссия за рассрочку для покупателя и за досрочную выплату продавцу.
|
currency · ₽ |
ozon_subscriptions_total |
Подписки / Рассрочки / Выплаты
Подписки и услуги выплат: абонентские платежи и досрочные выплаты. Складывается из: «Premium-подписка», «Рассрочка, досрочные выплаты».
|
currency · ₽ |
ozon_16_transit_shipments |
Транзитные поставки (кросс-докинг)
Приём поставки на транзитном складе и её распределение по складам Ozon.
|
currency · ₽ |
ozon_17_additional_delivery_reward |
Дополнительное вознаграждение за доставку
Доплата Ozon за доставку по отдельным условиям и акциям.
|
currency · ₽ |
ozon_18_movement_of_goods_between_warehouses |
Перемещение товаров между складами Ozon
Перевозка ваших остатков между складами Ozon. Площадка перемещает товар ближе к спросу, стоимость перевозки удерживается с продавца. Приходит из отчёта Ozon о начислениях.
|
currency · ₽ |
ozon_crossdocking_total |
Кросс-докинг / Логистика
Доставка ваших поставок до складов Ozon силами площадки. Складывается из: «Транзитные поставки (кросс-докинг)», «Дополнительное вознаграждение за доставку», «Перемещение товаров между складами Ozon».
|
currency · ₽ |
ozon_19_booking_of_warehouse_space |
Бронирование места на складе
Плата за зарезервированное место на складе под будущую поставку.
|
currency · ₽ |
ozon_53_temporary_placement_in_sc_pvz |
Размещение товаров на складе (хранение)
Временное размещение товара в сортировочном центре или пункте выдачи
|
currency · ₽ |
ozon_21_processing_of_defects_and_surpluses |
Обработка брака, излишков
Работа склада с браком и излишками, найденными при приёмке или инвентаризации.
|
currency · ₽ |
ozon_22_preparation_of_goods_for_return |
Подготовка товаров к возврату
Подготовка товара к вывозу продавцу: сбор, упаковка, оформление документов.
|
currency · ₽ |
ozon_23_disposal_of_goods |
Утилизация товара
Уничтожение товара по заявке продавца или по правилам площадки.
|
currency · ₽ |
ozon_storage_processing_total |
Обработка / Хранение / Утилизация
Плата за то, что товар лежит на складе Ozon и обрабатывается там: размещение, платное хранение, утилизация. Складывается из: «Бронирование места на складе», «Размещение товаров на складе (хранение)», «Обработка брака, излишков», «Подготовка товаров к возврату», «Утилизация товара».
|
currency · ₽ |
ozon_24_service_of_goods_promotion |
Абонентское обслуживание по продвижению товаров
Абонентская плата за инструменты продвижения товаров.
|
currency · ₽ |
ozon_25_service_of_brand_promotion |
Услуга продвижения бренда
Оплата продвижения бренда: баннеры и брендовые полки на площадке. Приходит из отчёта Ozon о начислениях.
|
currency · ₽ |
ozon_26_service_of_premium_promotion |
Продвижение Premium
Продвижение товаров среди подписчиков Ozon Premium.
|
currency · ₽ |
ozon_27_service_of_seller_bonus_promotion |
Продвижение бонусы продавца
Продвижение, оплаченное бонусами продавца, — теми самыми баллами, которые Ozon начисляет за соинвестирование в скидки. Приходит из отчёта Ozon о начислениях.
|
currency · ₽ |
ozon_28_service_of_star_products_promotion |
Продвижение звездные товары
Участие в программе продвижения «Звёздные товары».
|
currency · ₽ |
ozon_29_service_of_video_cover_generation |
Генерация видеообложки
Изготовление видеообложки для карточки товара силами Ozon. Приходит из отчёта Ozon о начислениях.
|
currency · ₽ |
ozon_30_service_of_review_acquisition |
Приобретение отзывов
Оплата программы «Отзывы за баллы»: Ozon платит покупателям баллами за отзыв на ваш товар, стоимость списывает с продавца. Приходит из отчёта Ozon о начислениях.
|
currency · ₽ |
ozon_31_service_of_review_attachment |
Закрепление отзыва
Платное закрепление отзыва в карточке товара. Приходит из отчёта Ozon о начислениях.
|
currency · ₽ |
ozon_promotion_total |
Продвижение
Платное продвижение на площадке, кроме рекламных кампаний: продвижение бренда, работа с отзывами, оформление карточки. Складывается из: «Абонентское обслуживание по продвижению товаров», «Услуга продвижения бренда», «Продвижение Premium», «Продвижение бонусы продавца», «Продвижение звездные товары», «Генерация видеообложки», «Приобретение отзывов», «Закрепление отзыва».
|
currency · ₽ |
ozon_32_service_of_product_moderation |
Услуги модерации товаров
Проверка и модерация карточек товара по запросу продавца.
|
currency · ₽ |
ozon_33_service_of_seller_operational_errors |
Операционные ошибки продавца
Штрафы за операционные ошибки продавца: пересорт, недовложение, срыв отгрузки.
|
currency · ₽ |
ozon_34_service_of_other_services |
Прочие услуги
Прочие услуги Ozon, для которых нет отдельной строки в отчёте.
|
currency · ₽ |
ozon_other_services_total |
Прочее
Начисления, которые не попали ни в один из блоков услуг. Складывается из: «Услуги модерации товаров», «Операционные ошибки продавца», «Прочие услуги».
|
currency · ₽ |
for_pay |
Сумма к перечислению
Сумма, которую Ozon перечисляет продавцу за период. Складывается из двух частей: перечисление по РФ (реализация за вычетом комиссии, услуг и рекламы, с учётом компенсаций) и цена выкупа товара, проданного за пределы РФ.
|
currency · ₽ |
ozon_for_pay_rf |
Сумма к перечислению, РФ
Часть суммы к перечислению за продажи внутри РФ. Именно она сравнивается с итогом, который присылает Ozon: продаж за пределы РФ в этом итоге нет вовсе.
|
currency · ₽ |
ozon_for_pay_cis |
Сумма к перечислению за продажи в другие страны
Часть суммы к перечислению за продажи за пределы РФ: ваша цена за вычетом выкупного коэффициента. Услуг и комиссии сверх неё по таким продажам не удерживают.
|
currency · ₽ |
ozon_for_pay_share |
К перечислению, %computed
Какая часть суммы реализации до соинвеста доходит до продавца. Формула: «Сумма к перечислению» / «Сумма реализации по ценам продавца (до соинвеста)» × 100.
for_pay / sum_before_spp_realized * 100
|
percent · % |
ozon_for_pay_share_rf |
К перечислению РФ, %computed
Какая часть реализации внутри РФ доходит до продавца. Формула: «Сумма к перечислению, РФ» / «Сумма реализации до соинвеста, РФ» × 100.
ozon_for_pay_rf / ozon_sum_before_spp_realized_rf * 100
|
percent · % |
ozon_for_pay_share_cis |
К перечислению другие страны, %computed
Какая часть реализации за пределами РФ доходит до продавца. Формула: «Сумма к перечислению за продажи в другие страны» / «Сумма реализации до соинвеста, другие страны» × 100.
ozon_for_pay_cis / ozon_sum_before_spp_realized_cis * 100
|
percent · % |
direct_cost_nalog_sum |
Налог
Налог с продаж. Система налогообложения и ставка задаются в ручной форме «Налоги».
|
currency · ₽ |
ozon_nalog_share |
Налог, %computed
Какую часть выручки забирает налог (форма «Налоги»). Формула: «Налог» / «Сумма реализации с учетом соинвеста» × 100.
-direct_cost_nalog_sum / sum_after_spp_realized * 100
|
percent · % |
direct_cost_out_nalog_sum |
НДС (исходящий)
НДС, начисленный с реализации. Ставка задаётся в ручной форме «Налоги».
|
currency · ₽ |
direct_cost_in_nalog_sum |
НДС (входящий)
НДС к вычету: со стоимости товара и услуг площадки. Ставка задаётся в ручной форме «Налоги».
|
currency · ₽ |
direct_cost_in_and_out_nalog_sum |
Итого НДС
Итог по НДС за период: начисленный с реализации вместе с принимаемым к вычету. Ставки задаются в ручной форме «Налоги».
|
currency · ₽ |
direct_cost_sebes_sum |
Себестоимость реализованного товара
Себестоимость проданных единиц. Заполняется в ручной форме «Себестоимость».
|
currency · ₽ |
ozon_sebes_share |
Себестоимость, %computed
Какую часть выручки занимает себестоимость (форма «Себестоимость»). Формула: «Себестоимость реализованного товара» / «Сумма реализации по ценам продавца (до соинвеста)» × 100.
-direct_cost_sebes_sum / sum_before_spp_realized * 100
|
percent · % |
ozon_sebes_sum_rf |
Себестоимость реализованного товара, РФ
Себестоимость товара, реализованного внутри РФ.
|
currency · ₽ |
ozon_sebes_sum_cis |
Себестоимость реализованного товара, другие страны
Себестоимость товара, реализованного за пределами РФ.
|
currency · ₽ |
direct_cost_self_sales_sebes_sum |
Себестоимость само-выкупов
Себестоимость товара, выкупленного вами самими: количество из ручной формы «Самовыкупы» по себестоимости из формы «Себестоимость».
|
currency · ₽ |
direct_cost_self_sales_sum |
Затраты на само-выкупы
Расходы на самовыкупы. Заполняются в ручной форме «Самовыкупы».
|
currency · ₽ |
direct_cost_distribution_sum |
Затраты на раздачи (сумма кэшбека)
Кэшбек, выплаченный покупателям по раздачам. Заполняется в ручной форме «Раздачи».
|
currency · ₽ |
direct_cost_external_marketing_sum |
Внешний маркетинг
Расходы на продвижение вне Ozon: блогеры, соцсети, внешняя реклама. Вносятся в ручной форме «Операционные расходы» с привязкой к артикулу.
|
currency · ₽ |
ozon_external_marketing_share |
Внешний маркетинг, %computed
Какую часть выручки занимает продвижение вне Ozon (форма «Операционные расходы»). Формула: «Внешний маркетинг» / «Сумма реализации по ценам продавца (до соинвеста)» × 100.
-direct_cost_external_marketing_sum / sum_before_spp_realized * 100
|
percent · % |
profit_sum |
Маржинальная прибыль
Прибыль от продаж (начисления минус расходы) на основе данных в разделе Финансы - Экономика магазина
|
currency · ₽ |
ozon_article_profit_share |
Вклад артикула в общую сумму маржинальной прибылиcomputed
Какую долю всей прибыли за период дал этот товар. У убыточных товаров доля отрицательная.
ozon_article_profit_share = profit_sum / сумма profit_sum по всем строкам * 100
|
percent · % |
ozon_profit_share_before_spp |
Маржинальность до соинвестаcomputed
Какую долю выручки вы оставляете себе. Формула: «Маржинальная прибыль» / «Сумма реализации по ценам продавца (до соинвеста)» × 100.
profit_sum / sum_before_spp_realized * 100
|
percent · % |
ozon_profit_share_after_spp |
Маржинальность после соинвестаcomputed
Доля прибыли в выручке с учётом соинвеста. Формула: «Маржинальная прибыль» / «Сумма реализации с учетом соинвеста» × 100.
profit_sum / sum_after_spp_realized * 100
|
percent · % |
ozon_profit_share_of_sebes |
Рентабельность товараcomputed
Сколько прибыли приносит каждый рубль себестоимости (форма «Себестоимость»). Формула: «Маржинальная прибыль» / «Себестоимость реализованного товара» × 100.
profit_sum / -direct_cost_sebes_sum * 100
|
percent · % |
ozon_markup_ratio |
Коэффициент наценкиcomputed
Во сколько раз выручка больше себестоимости (форма «Себестоимость»). Формула: «Сумма реализации по ценам продавца (до соинвеста)» / «Себестоимость реализованного товара».
sum_before_spp_realized / -direct_cost_sebes_sum
|
number |
ozon_realized_units |
Итого реализовано штук
Итоговое количество реализованного товара — то, с чего Ozon считает вам выручку.
|
number · шт |
ozon_avg_check_before_spp |
Средний чекcomputed
Средняя цена одной продажи по ВАШИМ ценам — до соинвестирования Ozon в скидку. Формула: «Сумма продаж» / «Продаж».
sum_before_spp_sales / count_sales
|
currency · ₽ |
ozon_avg_check_after_spp |
Средний чек продажи с учетом соинвестаcomputed
Средняя цена проданной единицы с учётом соинвеста Ozon. Формула: «Сумма реализации с учетом соинвеста» / «Итого реализовано товаров».
sum_after_spp_realized / count_realized
|
currency · ₽ |
ozon_commission_per_unit |
Комиссия на единицуcomputed
Комиссия площадки на одну проданную единицу. Формула: «Комиссия Ozon» / «Итого реализовано товаров».
ozon_commission_sum / count_realized
|
currency · ₽ |
ozon_logistics_per_unit |
Логистика на единицуcomputed
Сколько логистики приходится на одну реализованную единицу. Удобно сравнивать с ценой товара: у дешёвых позиций доставка часто съедает всю маржу. Формула: «Логистика Ozon» / «Итого реализовано товаров».
ozon_logistics_total / count_realized
|
currency · ₽ |
ozon_paid_storage_per_unit |
Платное хранение на единицуcomputed
Платное хранение на одну проданную единицу. Формула: «Размещение товаров на складе (платное хранение)» / «Итого реализовано товаров».
ozon_20_placement_of_goods_on_the_warehouse / count_realized
|
currency · ₽ |
ozon_additional_services_per_unit |
Дополнительные услуги на единицуcomputed
Сколько дополнительных услуг площадки приходится на единицу. Формула: «Дополнительные услуги Ozon» / «Итого реализовано товаров».
ozon_additional_services_total / count_realized
|
currency · ₽ |
ozon_advertising_per_unit |
Рекламные расходы на единицуcomputed
Сколько рекламных расходов приходится на одну реализованную единицу. Формула: «Рекламные расходы» / «Итого реализовано товаров».
ozon_total_advertising_sum / count_realized
|
currency · ₽ |
ozon_compensations_per_unit |
Компенсации и прочие начисления на единицуcomputed
Сколько компенсаций и прочих начислений приходится на единицу. Формула: «Компенсации и прочие начисления» / «Итого реализовано товаров».
ozon_compensations_total / count_realized
|
currency · ₽ |
ozon_all_services_per_unit |
Стоимость всех услуг Ozon на единицуcomputed
Во сколько обходятся услуги Ozon на одну проданную единицу. Формула: «Сумма всех услуг Ozon» / «Итого реализовано товаров».
ozon_all_services_sum / count_realized
|
currency · ₽ |
ozon_for_pay_per_unit |
Перечисление за единицуcomputed
Сколько перечисляют за одну проданную единицу. Формула: «Сумма к перечислению» / «Итого реализовано товаров».
for_pay / count_realized
|
currency · ₽ |
ozon_nalog_per_unit |
Налог на единицуcomputed
Налог на одну проданную единицу (ставка из формы «Налоги»). Формула: «Налог» / «Итого реализовано товаров».
direct_cost_nalog_sum / count_realized
|
currency · ₽ |
ozon_nds_per_unit |
НДС на единицуcomputed
НДС на одну проданную единицу (ставка из формы «Налоги»). Формула: «Итого НДС» / «Итого реализовано товаров».
direct_cost_in_and_out_nalog_sum / count_realized
|
currency · ₽ |
ozon_sebes_per_unit |
Затраты на себестоимость на единицуcomputed
Себестоимость одной проданной единицы (форма «Себестоимость»). Формула: «Себестоимость реализованного товара» / «Итого реализовано товаров».
direct_cost_sebes_sum / count_realized
|
currency · ₽ |
ozon_external_marketing_per_unit |
Внешний маркетинг на единицуcomputed
Внешний маркетинг на одну проданную единицу (форма «Операционные расходы»). Формула: «Внешний маркетинг» / «Итого реализовано товаров».
direct_cost_external_marketing_sum / count_realized
|
currency · ₽ |
ozon_profit_per_unit |
Прибыль на единицуcomputed
Сколько прибыли приносит одна проданная единица. Формула: «Маржинальная прибыль» / «Итого реализовано товаров».
profit_sum / count_realized
|
currency · ₽ |
curl https://web.metriclab.ru/v1/ozon/unit-fact \
-H "Authorization: Bearer ml_live_xxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"cabinets": ["67890"],
"date_from": "2026-08-31",
"date_to": "2026-09-13",
"limit": 500
}'
import requests
KEY = "ml_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
HOST = "https://web.metriclab.ru"
resp = requests.post(
f"{HOST}/v1/ozon/unit-fact",
headers={"Authorization": f"Bearer {KEY}"},
json={
"cabinets": ["67890"],
"date_from": "2026-08-31",
"date_to": "2026-09-13",
"limit": 500,
},
timeout=180,
)
body = resp.json()
for row in body["data"]["rows"][:5]:
print(row["article_ozon"], row["profit_sum"])
{
"status": "success",
"data": {
"total": 412,
"rows": [
{
"cabinet": "Юрлицо-456",
"article_ozon": "1612345678",
"article_supplier": "ART-001", "brand": "BrandX",
"abc_realization": "A", "abc_profit": "B",
"sum_before_spp_realized": 184300,
"for_pay": 121870.5,
"profit_sum": 38412.7,
"ozon_profit_share_before_spp": 20.8,
…остальные колонки листа…
}
]
},
"meta": {
"marketplace": "ozon", "dataset": "unit-fact",
"stocks": {"latest": "2026-09-14", "in_period": "2026-09-13"},
"count": 412, "total": 412, "limit": 500, "offset": 0
}
}
Лист «Unit-факт» из виджета «Таблица» на сайте — строка на артикул продавца за период со всеми колонками листа: реализация, услуги площадки по статьям, себестоимость, налог и НДС, сумма к перечислению, прибыль, маржинальность, доли, показатели на единицу, ABC-классы и остатки. Считается тем же кодом, что и таблица на сайте, поэтому цифры совпадают с ней.
metrics, где производные считает клиент). Формула каждой такой колонки показана в каталоге ниже.article_supplier — начисления Маркета, не привязанные к товару: они входят в итог кабинета.notes строки — массив {date, text}.meta.stocks.latest); на последнюю дату внутри периода — те же колонки с суффиксом __in_period (есть, только когда даты различаются).filters и листайте через offset; полное число строк — в data.total.business_id кабинетов. Должны принадлежать владельцу ключа (GET /v1/cabinets). Пустой массив [] — все доступные.YYYY-MM-DD, включительно.YYYY-MM-DD, включительно.articles, brands, subjects, article_suppliers, grouping_level_1..3, group_name, responsible).0."success" при 200.cabinet, article_supplier (артикул продавца), article_yandex (SKU на Маркете), product_name, brand, subject, группы товаров и далее все показатели. Колонки-формулы, доли и ABC — уже посчитаны (null, если не считается: нет слагаемого или деление на ноль).limit/offset).latest — дата снимка остатков в колонках остатков; in_period — дата снимка в колонках с суффиксом __in_period (null, если совпадает с latest или данных нет).
Ключи колонок в строках ответа. Блоки и порядок — как на листе «Unit-факт» в MetricLab.
Колонки с тегом computed считаются из других
(формула показана рядом) и приходят в ответе уже посчитанными.
Актуальный список — GET /v1/yandex/unit-fact-catalog.
cabinet |
Кабинет
Кабинет, к которому относится строка.
|
text |
subject |
Категория
Категория товара в каталоге Маркета.
|
text |
brand |
Бренд
Производитель из карточки товара.
|
text |
article_supplier |
Артикул
Ваш артикул (SKU) в Маркете.
|
text |
article_yandex |
SKU на Маркете
Номер карточки товара на Маркете.
|
text |
product_name |
Название
Название товара из карточки.
|
text |
grouping_level_1 |
Уровень группировки 1 | text |
grouping_level_2 |
Уровень группировки 2 | text |
grouping_level_3 |
Уровень группировки 3 | text |
group_name |
Группа товаров | text |
responsible |
Ответственный | text |
abc_realization |
ABC по сумме реализацииcomputed
Класс товара по накопленной доле в показателе «Сумма реализации по ценам продавца (до скидок Маркета)». Товары выстраиваются по убыванию значения: A - те, что дают верхнюю часть суммы, B - следующую, C - хвост. Отрицательное значение - класс D. Доли классов (по умолчанию 80 %, 15 % и 5 %) настраиваются в подписи блока.
ABC-класс по yandex_sales_sum (A/B/C = 80/15/5 %, убыток = D)
|
text |
abc_profit |
ABC по маржинальной прибылиcomputed
Класс товара по накопленной доле в показателе «Маржинальная прибыль». Товары выстраиваются по убыванию значения: A - те, что дают верхнюю часть суммы, B - следующую, C - хвост. Отрицательное значение - класс D. Доли классов (по умолчанию 80 %, 15 % и 5 %) настраиваются в подписи блока.
ABC-класс по yandex_uf_profit (A/B/C = 80/15/5 %, убыток = D)
|
text |
abc_for_pay |
ABC по сумме к перечислениюcomputed
Класс товара по накопленной доле в показателе «Сумма к перечислению». Товары выстраиваются по убыванию значения: A - те, что дают верхнюю часть суммы, B - следующую, C - хвост. Отрицательное значение - класс D. Доли классов (по умолчанию 80 %, 15 % и 5 %) настраиваются в подписи блока.
ABC-класс по yandex_uf_for_pay (A/B/C = 80/15/5 %, убыток = D)
|
text |
yandex_card_views |
Показов
Сколько раз карточку товара показали покупателям.
|
number · шт |
yandex_card_clicks |
Кликов
Сколько раз покупатели открыли карточку товара.
|
number · шт |
yandex_ctr |
CTRcomputed
Доля показов карточки, которые закончились переходом в неё.
yandex_card_clicks / yandex_card_views * 100
|
percent · % |
yandex_add_to_basket |
Добавлений в корзину
Сколько раз товар положили в корзину.
|
number · шт |
yandex_conversion_to_basket |
Конверсия в корзинуcomputed
Доля переходов в карточку, которые закончились добавлением в корзину.
yandex_add_to_basket / yandex_card_clicks * 100
|
percent · % |
yandex_orders_amount |
Заказов
Сколько единиц товара заказали покупатели.
|
number · шт |
yandex_conversion_to_order |
Конверсия в заказcomputed
Доля добавлений в корзину, которые закончились заказом.
yandex_orders_amount / yandex_add_to_basket * 100
|
percent · % |
yandex_cancels_unredeemed |
Отмен и невыкупов
Заказы, которые покупатель отменил или не выкупил.
|
number · шт |
yandex_uf_cancel_rate |
% отмен и невыкуповcomputed
Какая доля заказанных штук отменена или не выкуплена.
yandex_cancels_unredeemed / yandex_orders_amount * 100
|
percent · % |
yandex_uf_sales_qty |
Продаж
Сколько штук доставлено покупателям - днём доставки.
|
number · шт |
yandex_uf_self_buyouts_qty |
Самовыкупов
Штуки, которые выкупил сам продавец, - из формы самовыкупов.
|
number · шт |
yandex_uf_distributions_qty |
Раздач
Штуки, выданные по раздачам, - из формы раздач.
|
number · шт |
yandex_organic_sales_amount |
Продаж (без учёта самовыкупов и раздач)
Продажи за вычетом раздач и самовыкупов.
|
number · шт |
yandex_uf_returns_qty |
Возвратов
Сколько штук вернули покупатели - днём возврата.
|
number · шт |
yandex_uf_return_rate |
% возвратовcomputed
Возвраты в процентах от проданных штук.
yandex_uf_returns_qty / yandex_uf_sales_qty * 100
|
percent · % |
yandex_sales_amount |
Итого реализовано товаров
Сколько единиц товара выкупили и не вернули.
|
number · шт |
yandex_buyout_rate |
% выкупаcomputed
Доля выкупленных заказов: реализация к сумме реализации, отмен и невыкупов.
yandex_sales_amount / (yandex_sales_amount + yandex_cancels_unredeemed) * 100
|
percent · % |
yandex_uf_cpm |
Стоимость 1000 показовcomputed
Расход на рекламу в Маркете в пересчёте на тысячу показов карточки.
-(yandex_uf_svc_boost + yandex_uf_svc_boost_shows + yandex_uf_svc_shelf + yandex_uf_svc_banners) / yandex_card_views * 1000
|
currency · ₽ |
yandex_uf_cpc |
Стоимость кликаcomputed
Расход на рекламу в Маркете на один переход в карточку.
-(yandex_uf_svc_boost + yandex_uf_svc_boost_shows + yandex_uf_svc_shelf + yandex_uf_svc_banners) / yandex_card_clicks
|
currency · ₽ |
yandex_uf_cost_per_basket |
Стоимость корзиныcomputed
Расход на рекламу в Маркете на одно добавление в корзину.
-(yandex_uf_svc_boost + yandex_uf_svc_boost_shows + yandex_uf_svc_shelf + yandex_uf_svc_banners) / yandex_add_to_basket
|
currency · ₽ |
yandex_uf_cost_per_order |
Стоимость заказаcomputed
Расход на рекламу в Маркете на одну заказанную штуку.
-(yandex_uf_svc_boost + yandex_uf_svc_boost_shows + yandex_uf_svc_shelf + yandex_uf_svc_banners) / yandex_orders_amount
|
currency · ₽ |
yandex_uf_stock_count |
Остаток к продаже
Сколько штук на складах Маркета можно заказать.
|
number · шт |
yandex_uf_stock_reserved |
Зарезервировано под заказы
Штуки на складах Маркета, отложенные под оформленные заказы.
|
number · шт |
yandex_uf_stock_quarantine |
На карантине
Товар на проверке на складе Маркета: пока его нельзя заказать.
|
number · шт |
yandex_uf_stock_defect |
Брак
Бракованный товар на складе Маркета.
|
number · шт |
yandex_uf_stock_expired |
С истекшим сроком годности
Товар на складе Маркета, у которого истёк срок годности.
|
number · шт |
yandex_uf_stock_utilization |
К утилизации
Товар, который Маркет готовит к утилизации.
|
number · шт |
yandex_uf_stock_unavailable |
Недоступно к продажеcomputed
Товар лежит на складе Маркета, но заказать его нельзя: карантин, брак, истёк срок годности, утилизация.
yandex_uf_stock_quarantine + yandex_uf_stock_defect + yandex_uf_stock_expired + yandex_uf_stock_utilization
|
number · шт |
yandex_stock_sebes |
Себестоимость остатков
Остаток к продаже по себестоимости.
|
currency · ₽ |
yandex_stock_price |
Цена реализации остатков
Остаток к продаже по текущей цене.
|
currency · ₽ |
yandex_uf_stock_markup |
Коэффициент наценки на остатокcomputed
Во сколько раз цена остатка к продаже выше его себестоимости.
yandex_stock_price / yandex_stock_sebes
|
number |
yandex_orders_sum |
Сумма заказов
На какую сумму заказали товар.
|
currency · ₽ |
yandex_uf_cancels_sum |
Сумма отмен и невыкуповcomputed
Оценка: отменённые и невыкупленные штуки по среднему чеку продажи.
yandex_cancels_unredeemed * yandex_uf_sales_sum / yandex_uf_sales_qty
|
currency · ₽ |
yandex_uf_sales_sum |
Сумма продаж
Цена продажи доставленных товаров: оплата покупателей плюс скидки за счёт Маркета.
|
currency · ₽ |
yandex_uf_returns_sum |
Сумма возвратов
Деньги и баллы, возвращённые покупателям, - днём возврата.
|
currency · ₽ |
yandex_sales_sum |
Сумма реализации по ценам продавца (до скидок Маркета)
Стоимость выкупленного и не вернувшегося товара.
|
currency · ₽ |
yandex_uf_realization_share |
Вклад артикула в общую сумму реализацииcomputed
yandex_uf_realization_share = yandex_sales_sum / сумма yandex_sales_sum по всем строкам * 100
|
percent · % |
yandex_uf_points_market |
Скидка Маркета баллами
Скидка покупателю, которую оплатил Маркет. Возвращается продавцу баллами - ими Маркет гасит услуги.
|
currency · ₽ |
yandex_uf_points_plus |
Оплачено баллами Плюса
Часть цены, которую покупатель оплатил баллами Яндекс Плюса. Возвращается продавцу баллами.
|
currency · ₽ |
yandex_uf_subsidy_money |
Скидка Маркета деньгами
До октября 2024 скидку Маркета компенсировали деньгами, а не баллами.
|
currency · ₽ |
yandex_uf_points_returns |
Возвраты баллов
Баллы Маркета и Плюса, которые Маркет забрал при возврате товара.
|
currency · ₽ |
yandex_uf_subsidy_returns |
Возвраты скидок деньгами
Скидки Маркета деньгами, которые Маркет забрал при возврате товара (до октября 2024).
|
currency · ₽ |
yandex_uf_discounts |
Итого скидки за счёт Маркетаcomputed
Часть цены продажи, которую за покупателя заплатил Маркет, за вычетом возвратов. Для Маркета это то же, что соинвест у Ozon и СПП у Wildberries.
yandex_uf_points_market + yandex_uf_points_plus + yandex_uf_subsidy_money + yandex_uf_points_returns + yandex_uf_subsidy_returns
|
currency · ₽ |
yandex_uf_discounts_share |
Скидки Маркета, %computed
Какую долю реализации оплатил Маркет своими скидками.
(yandex_uf_points_market + yandex_uf_points_plus + yandex_uf_subsidy_money + yandex_uf_points_returns + yandex_uf_subsidy_returns) / yandex_sales_sum * 100
|
percent · % |
yandex_uf_buyer_payments |
Оплатили покупатели
Деньги покупателей за доставленные товары, без скидок Маркета.
|
currency · ₽ |
yandex_uf_payment_returns |
Возвращено покупателям
Деньги, которые вернули покупателям при возвратах.
|
currency · ₽ |
yandex_uf_realized_after |
Сумма реализации с учётом скидок Маркетаcomputed
Сколько заплатили сами покупатели за вычетом возвратов: реализация без скидок за счёт Маркета.
yandex_uf_buyer_payments + yandex_uf_payment_returns
|
currency · ₽ |
yandex_uf_compensations |
Компенсации Маркета
Компенсации за утерянные и повреждённые товары и их возвраты.
|
currency · ₽ |
yandex_uf_compensations_share |
Компенсации, %computed
Компенсации Маркета в процентах от суммы реализации.
yandex_uf_compensations / yandex_sales_sum * 100
|
percent · % |
yandex_uf_svc_placement |
Размещение
Услуга Маркета «Размещение» по полной стоимости: деньгами и баллами.
|
currency · ₽ |
yandex_uf_share_placement |
Размещение, %computed
Статья «Размещение» в процентах от суммы реализации.
-yandex_uf_svc_placement / yandex_sales_sum * 100
|
percent · % |
yandex_uf_svc_payment_accept |
Приём платежа
Услуга Маркета «Приём платежа» по полной стоимости: деньгами и баллами.
|
currency · ₽ |
yandex_uf_svc_payment_transfer |
Перевод платежа
Услуга Маркета «Перевод платежа» по полной стоимости: деньгами и баллами.
|
currency · ₽ |
yandex_uf_cat_payments |
Приём и перевод платежаcomputed
Сумма статьи «Приём и перевод платежа»: всё, что в неё входит, раскрывается стрелкой на заголовке.
yandex_uf_svc_payment_accept + yandex_uf_svc_payment_transfer
|
currency · ₽ |
yandex_uf_share_payments |
Приём и перевод платежа, %computed
Статья «Приём и перевод платежа» в процентах от суммы реализации.
-(yandex_uf_svc_payment_accept + yandex_uf_svc_payment_transfer) / yandex_sales_sum * 100
|
percent · % |
yandex_uf_svc_returns_delivery |
Доставка невыкупов и возвратов
Услуга Маркета «Доставка невыкупов и возвратов» по полной стоимости: деньгами и баллами.
|
currency · ₽ |
yandex_uf_svc_middle_mile |
Средняя миля
Услуга Маркета «Средняя миля» по полной стоимости: деньгами и баллами.
|
currency · ₽ |
yandex_uf_svc_delivery |
Доставка покупателю
Услуга Маркета «Доставка покупателю» по полной стоимости: деньгами и баллами.
|
currency · ₽ |
yandex_uf_svc_warehouse |
Складская обработка
Услуга Маркета «Складская обработка» по полной стоимости: деньгами и баллами.
|
currency · ₽ |
yandex_uf_svc_order_processing |
Обработка заказов
Услуга Маркета «Обработка заказов» по полной стоимости: деньгами и баллами.
|
currency · ₽ |
yandex_uf_svc_transit |
Поставка через транзитный склад
Услуга Маркета «Поставка через транзитный склад» по полной стоимости: деньгами и баллами.
|
currency · ₽ |
yandex_uf_cat_logistics |
Логистикаcomputed
Сумма статьи «Логистика»: всё, что в неё входит, раскрывается стрелкой на заголовке.
yandex_uf_svc_returns_delivery + yandex_uf_svc_middle_mile + yandex_uf_svc_delivery + yandex_uf_svc_warehouse + yandex_uf_svc_order_processing + yandex_uf_svc_transit
|
currency · ₽ |
yandex_uf_share_logistics |
Логистика, %computed
Статья «Логистика» в процентах от суммы реализации.
-(yandex_uf_svc_returns_delivery + yandex_uf_svc_middle_mile + yandex_uf_svc_delivery + yandex_uf_svc_warehouse + yandex_uf_svc_order_processing + yandex_uf_svc_transit) / yandex_sales_sum * 100
|
percent · % |
yandex_uf_svc_storage |
Хранение
Услуга Маркета «Хранение» по полной стоимости: деньгами и баллами.
|
currency · ₽ |
yandex_uf_share_storage |
Хранение, %computed
Статья «Хранение» в процентах от суммы реализации.
-yandex_uf_svc_storage / yandex_sales_sum * 100
|
percent · % |
yandex_uf_svc_loyalty |
Программа лояльности и отзывы
Услуга Маркета «Программа лояльности и отзывы» по полной стоимости: деньгами и баллами.
|
currency · ₽ |
yandex_uf_svc_installment |
Рассрочка
Услуга Маркета «Рассрочка» по полной стоимости: деньгами и баллами.
|
currency · ₽ |
yandex_uf_svc_returns_storage |
Хранение невыкупов и возвратов
Услуга Маркета «Хранение невыкупов и возвратов» по полной стоимости: деньгами и баллами.
|
currency · ₽ |
yandex_uf_svc_utilization |
Вывоз и утилизация
Услуга Маркета «Вывоз и утилизация» по полной стоимости: деньгами и баллами.
|
currency · ₽ |
yandex_uf_svc_expropriation |
Вознаграждение за невыкупы
Услуга Маркета «Вознаграждение за невыкупы» по полной стоимости: деньгами и баллами.
|
currency · ₽ |
yandex_uf_svc_subscriptions |
Подписки и сервисы
Услуга Маркета «Подписки и сервисы» по полной стоимости: деньгами и баллами.
|
currency · ₽ |
yandex_uf_svc_other |
Прочие услуги
Услуга Маркета «Прочие услуги» по полной стоимости: деньгами и баллами.
|
currency · ₽ |
yandex_uf_svc_undetailed |
Услуги без детализации
Услуга Маркета «Услуги без детализации» по полной стоимости: деньгами и баллами.
|
currency · ₽ |
yandex_uf_points_back |
Возврат баллов за прочие услуги
Баллы за услугу, которые Маркет вернул при возврате товара, если услугу не удалось определить.
|
currency · ₽ |
yandex_uf_cat_additional |
Дополнительные услугиcomputed
Сумма статьи «Дополнительные услуги»: всё, что в неё входит, раскрывается стрелкой на заголовке.
yandex_uf_svc_loyalty + yandex_uf_svc_installment + yandex_uf_svc_returns_storage + yandex_uf_svc_utilization + yandex_uf_svc_expropriation + yandex_uf_svc_subscriptions + yandex_uf_svc_other + yandex_uf_svc_undetailed + yandex_uf_points_back
|
currency · ₽ |
yandex_uf_share_additional |
Дополнительные услуги, %computed
Статья «Дополнительные услуги» в процентах от суммы реализации.
-(yandex_uf_svc_loyalty + yandex_uf_svc_installment + yandex_uf_svc_returns_storage + yandex_uf_svc_utilization + yandex_uf_svc_expropriation + yandex_uf_svc_subscriptions + yandex_uf_svc_other + yandex_uf_svc_undetailed + yandex_uf_points_back) / yandex_sales_sum * 100
|
percent · % |
yandex_uf_svc_boost |
Буст продаж
Услуга Маркета «Буст продаж» по полной стоимости: деньгами и баллами.
|
currency · ₽ |
yandex_uf_drr_boost |
ДРР Буст продажcomputed
Расход на «Буст продаж» в процентах от суммы реализации.
-yandex_uf_svc_boost / yandex_sales_sum * 100
|
percent · % |
yandex_uf_svc_boost_shows |
Буст продаж с оплатой за показы
Услуга Маркета «Буст продаж с оплатой за показы» по полной стоимости: деньгами и баллами.
|
currency · ₽ |
yandex_uf_drr_boost_shows |
ДРР Буст продаж с оплатой за показыcomputed
Расход на «Буст продаж с оплатой за показы» в процентах от суммы реализации.
-yandex_uf_svc_boost_shows / yandex_sales_sum * 100
|
percent · % |
yandex_uf_svc_shelf |
Полка
Услуга Маркета «Полка» по полной стоимости: деньгами и баллами.
|
currency · ₽ |
yandex_uf_drr_shelf |
ДРР Полкаcomputed
Расход на «Полка» в процентах от суммы реализации.
-yandex_uf_svc_shelf / yandex_sales_sum * 100
|
percent · % |
yandex_uf_svc_banners |
Баннеры
Услуга Маркета «Баннеры» по полной стоимости: деньгами и баллами.
|
currency · ₽ |
yandex_uf_drr_banners |
ДРР Баннерыcomputed
Расход на «Баннеры» в процентах от суммы реализации.
-yandex_uf_svc_banners / yandex_sales_sum * 100
|
percent · % |
yandex_uf_cat_advertising |
Рекламаcomputed
Сумма статьи «Реклама»: всё, что в неё входит, раскрывается стрелкой на заголовке.
yandex_uf_svc_boost + yandex_uf_svc_boost_shows + yandex_uf_svc_shelf + yandex_uf_svc_banners
|
currency · ₽ |
yandex_uf_ads_share_after |
Реклама после скидок Маркета, %computed
Расход на рекламу в процентах от того, что заплатили покупатели.
-(yandex_uf_svc_boost + yandex_uf_svc_boost_shows + yandex_uf_svc_shelf + yandex_uf_svc_banners) / (yandex_uf_buyer_payments + yandex_uf_payment_returns) * 100
|
percent · % |
yandex_uf_ads_share_orders |
Реклама от заказов, %computed
Расход на рекламу в процентах от суммы заказов.
-(yandex_uf_svc_boost + yandex_uf_svc_boost_shows + yandex_uf_svc_shelf + yandex_uf_svc_banners) / yandex_orders_sum * 100
|
percent · % |
yandex_uf_share_advertising |
Реклама, %computed
Статья «Реклама» в процентах от суммы реализации.
-(yandex_uf_svc_boost + yandex_uf_svc_boost_shows + yandex_uf_svc_shelf + yandex_uf_svc_banners) / yandex_sales_sum * 100
|
percent · % |
yandex_uf_services_money |
Оплачено деньгами
Часть услуг, которую Маркет удержал из выплат.
|
currency · ₽ |
yandex_uf_services_points |
Оплачено баллами
Часть услуг, которую Маркет погасил баллами, за вычетом баллов, вернувшихся при возвратах.
|
currency · ₽ |
yandex_uf_services_prepaid |
Оплачено предоплатой
Продвижение, оплаченное со счёта маркетинга заранее.
|
currency · ₽ |
yandex_uf_services_total |
Сумма всех услуг Маркета
Все услуги Маркета по полной стоимости: оплаченные деньгами, баллами и предоплатой.
|
currency · ₽ |
yandex_uf_services_share |
Все услуги, %computed
Сколько процентов от реализации съедают услуги Маркета.
-yandex_uf_services_total / yandex_sales_sum * 100
|
percent · % |
yandex_uf_paid |
Уже пришло на счёт
Часть суммы к перечислению, которая уже на расчётном счёте: деньги Маркета за товары периода и премия за баллы. Каждая выплата видна на листе «Сверка выплат» и в банке.
|
currency · ₽ |
yandex_uf_pending |
Ещё придёт
Часть суммы к перечислению, которой ещё нет на счёте: деньги, которые Маркет переведёт по графику выплат, и баллы, которые он выплатит премией в конце месяца (с минусом - ещё удержит). За давний месяц, где всему уже положено было прийти, не ноль - это расхождение, его показывает лист «Сверка выплат».
|
currency · ₽ |
yandex_uf_for_pay |
Сумма к перечислению
Реализация плюс компенсации минус все услуги Маркета - столько продавец получает за товары периода. Баллы Маркета здесь как рубли: ими гасятся услуги, а остаток Маркет в конце месяца выплачивает премией. Раскрывается на «Уже пришло на счёт» и «Ещё придёт».
|
currency · ₽ |
yandex_uf_for_pay_share |
К перечислению, %computed
Сколько процентов реализации остаётся продавцу после услуг Маркета.
yandex_uf_for_pay / yandex_sales_sum * 100
|
percent · % |
yandex_uf_tax |
Налог
Налог по вашей системе налогообложения и ставке из настроек налогов. Считается с того, что заплатили покупатели: скидку за счёт Маркета он компенсирует баллами, а баллы идут в оплату его услуг.
|
currency · ₽ |
yandex_uf_tax_share |
Налог, %computed
Налог в процентах от того, что заплатили покупатели.
-yandex_uf_tax / (yandex_uf_buyer_payments + yandex_uf_payment_returns) * 100
|
percent · % |
yandex_uf_vat_out |
НДС (исходящий)
НДС внутри того, что заплатили покупатели.
|
currency · ₽ |
yandex_uf_vat_in |
НДС (входящий)
НДС внутри услуг Маркета, оплаченных деньгами, который принимается к вычету.
|
currency · ₽ |
yandex_uf_vat_total |
Итого НДСcomputed
НДС к уплате: исходящий минус входящий.
yandex_uf_vat_out + yandex_uf_vat_in
|
currency · ₽ |
yandex_uf_sebes |
Себестоимость реализованного товара
Себестоимость проданных за вычетом возвращённых товаров - из справочника себестоимости.
|
currency · ₽ |
yandex_uf_sebes_share |
Себестоимость, %computed
Себестоимость в процентах от суммы реализации.
-yandex_uf_sebes / yandex_sales_sum * 100
|
percent · % |
yandex_uf_self_buyouts_sebes |
Себестоимость самовыкупов
Себестоимость товаров, которые выкупил сам продавец: товар возвращается к нему.
|
currency · ₽ |
yandex_uf_self_buyouts_share |
Самовыкупы, %computed
Затраты на самовыкупы в процентах от суммы реализации.
-yandex_uf_self_buyouts / yandex_sales_sum * 100
|
percent · % |
yandex_uf_self_buyouts_share_after |
Самовыкупы после скидок Маркета, %computed
Затраты на самовыкупы в процентах от того, что заплатили покупатели.
-yandex_uf_self_buyouts / (yandex_uf_buyer_payments + yandex_uf_payment_returns) * 100
|
percent · % |
yandex_uf_self_buyouts |
Затраты на самовыкупы
Сколько продавец заплатил за выкуп своих товаров - из формы самовыкупов.
|
currency · ₽ |
yandex_uf_distributions_share |
Раздачи, %computed
Затраты на раздачи в процентах от суммы реализации.
-yandex_uf_distributions / yandex_sales_sum * 100
|
percent · % |
yandex_uf_distributions_share_after |
Раздачи после скидок Маркета, %computed
Затраты на раздачи в процентах от того, что заплатили покупатели.
-yandex_uf_distributions / (yandex_uf_buyer_payments + yandex_uf_payment_returns) * 100
|
percent · % |
yandex_uf_distributions |
Затраты на раздачи (сумма кэшбэка)
Кэшбэк покупателям по раздачам - из формы раздач.
|
currency · ₽ |
yandex_uf_marketing |
Внешний маркетинг
Реклама и продвижение вне Маркета - из формы внешнего маркетинга.
|
currency · ₽ |
yandex_uf_marketing_share |
Внешний маркетинг, %computed
Внешний маркетинг в процентах от суммы реализации.
-yandex_uf_marketing / yandex_sales_sum * 100
|
percent · % |
yandex_uf_profit |
Маржинальная прибыль
Сумма к перечислению минус себестоимость, налог, НДС и маркетинг вне Маркета.
|
currency · ₽ |
yandex_uf_article_profit_share |
Вклад артикула в общую сумму маржинальной прибылиcomputed
yandex_uf_article_profit_share = yandex_uf_profit / сумма yandex_uf_profit по всем строкам * 100
|
percent · % |
yandex_uf_margin |
Маржинальность до скидок Маркетаcomputed
Прибыль в процентах от суммы реализации по ценам продавца.
yandex_uf_profit / yandex_sales_sum * 100
|
percent · % |
yandex_uf_margin_after |
Маржинальность после скидок Маркетаcomputed
Прибыль в процентах от того, что заплатили покупатели.
yandex_uf_profit / (yandex_uf_buyer_payments + yandex_uf_payment_returns) * 100
|
percent · % |
yandex_uf_roi |
Рентабельность товараcomputed
Прибыль в процентах от себестоимости.
yandex_uf_profit / -yandex_uf_sebes * 100
|
percent · % |
yandex_uf_markup |
Коэффициент наценкиcomputed
Во сколько раз сумма реализации больше себестоимости.
yandex_sales_sum / -yandex_uf_sebes
|
number |
yandex_uf_avg_check |
Средний чек продажиcomputed
Сумма продаж на одну проданную штуку - по ценам продавца.
yandex_uf_sales_sum / yandex_uf_sales_qty
|
currency · ₽ |
yandex_uf_avg_check_after |
Средний чек с учётом скидок Маркетаcomputed
Сколько в среднем заплатил покупатель за одну штуку.
yandex_uf_buyer_payments / yandex_uf_sales_qty
|
currency · ₽ |
yandex_uf_per_unit_placement |
Размещение на единицуcomputed
Статья «Размещение» на одну реализованную штуку.
yandex_uf_svc_placement / yandex_sales_amount
|
currency · ₽ |
yandex_uf_per_unit_payments |
Приём и перевод платежа на единицуcomputed
Статья «Приём и перевод платежа» на одну реализованную штуку.
(yandex_uf_svc_payment_accept + yandex_uf_svc_payment_transfer) / yandex_sales_amount
|
currency · ₽ |
yandex_uf_per_unit_logistics |
Логистика на единицуcomputed
Статья «Логистика» на одну реализованную штуку.
(yandex_uf_svc_returns_delivery + yandex_uf_svc_middle_mile + yandex_uf_svc_delivery + yandex_uf_svc_warehouse + yandex_uf_svc_order_processing + yandex_uf_svc_transit) / yandex_sales_amount
|
currency · ₽ |
yandex_uf_per_unit_storage |
Хранение на единицуcomputed
Статья «Хранение» на одну реализованную штуку.
yandex_uf_svc_storage / yandex_sales_amount
|
currency · ₽ |
yandex_uf_per_unit_additional |
Дополнительные услуги на единицуcomputed
Статья «Дополнительные услуги» на одну реализованную штуку.
(yandex_uf_svc_loyalty + yandex_uf_svc_installment + yandex_uf_svc_returns_storage + yandex_uf_svc_utilization + yandex_uf_svc_expropriation + yandex_uf_svc_subscriptions + yandex_uf_svc_other + yandex_uf_svc_undetailed + yandex_uf_points_back) / yandex_sales_amount
|
currency · ₽ |
yandex_uf_per_unit_advertising |
Реклама на единицуcomputed
Статья «Реклама» на одну реализованную штуку.
(yandex_uf_svc_boost + yandex_uf_svc_boost_shows + yandex_uf_svc_shelf + yandex_uf_svc_banners) / yandex_sales_amount
|
currency · ₽ |
yandex_uf_per_unit_services |
Все услуги Маркета на единицуcomputed
Все услуги Маркета на одну реализованную штуку.
yandex_uf_services_total / yandex_sales_amount
|
currency · ₽ |
yandex_uf_per_unit_compensations |
Компенсации на единицуcomputed
Компенсации Маркета на одну реализованную штуку.
yandex_uf_compensations / yandex_sales_amount
|
currency · ₽ |
yandex_uf_per_unit_for_pay |
Перечисление на единицуcomputed
Сумма к перечислению на одну реализованную штуку.
yandex_uf_for_pay / yandex_sales_amount
|
currency · ₽ |
yandex_uf_per_unit_tax |
Налог на единицуcomputed
Налог на одну реализованную штуку.
yandex_uf_tax / yandex_sales_amount
|
currency · ₽ |
yandex_uf_per_unit_vat |
НДС на единицуcomputed
НДС на одну реализованную штуку.
(yandex_uf_vat_out + yandex_uf_vat_in) / yandex_sales_amount
|
currency · ₽ |
yandex_uf_per_unit_sebes |
Себестоимость на единицуcomputed
Себестоимость одной реализованной штуки.
yandex_uf_sebes / yandex_sales_amount
|
currency · ₽ |
yandex_uf_per_unit_marketing |
Внешний маркетинг на единицуcomputed
Внешний маркетинг на одну реализованную штуку.
yandex_uf_marketing / yandex_sales_amount
|
currency · ₽ |
yandex_uf_per_unit_profit |
Прибыль на единицуcomputed
Маржинальная прибыль на одну реализованную штуку.
yandex_uf_profit / yandex_sales_amount
|
currency · ₽ |
curl https://web.metriclab.ru/v1/yandex/unit-fact \
-H "Authorization: Bearer ml_live_xxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"cabinets": ["11223344"],
"date_from": "2026-08-31",
"date_to": "2026-09-13",
"limit": 500
}'
import requests
KEY = "ml_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
HOST = "https://web.metriclab.ru"
resp = requests.post(
f"{HOST}/v1/yandex/unit-fact",
headers={"Authorization": f"Bearer {KEY}"},
json={
"cabinets": ["11223344"],
"date_from": "2026-08-31",
"date_to": "2026-09-13",
"limit": 500,
},
timeout=180,
)
body = resp.json()
for row in body["data"]["rows"][:5]:
print(row["article_supplier"], row["yandex_uf_profit"])
{
"status": "success",
"data": {
"total": 412,
"rows": [
{
"cabinet": "Юрлицо-y789",
"article_yandex": "103581024567",
"article_supplier": "ART-001", "brand": "BrandX",
"abc_realization": "A", "abc_profit": "B",
"yandex_sales_sum": 184300,
"yandex_uf_for_pay": 121870.5,
"yandex_uf_profit": 38412.7,
"yandex_uf_margin": 20.8,
…остальные колонки листа…
}
]
},
"meta": {
"marketplace": "yandex", "dataset": "unit-fact",
"stocks": {"latest": "2026-09-14", "in_period": "2026-09-13"},
"count": 412, "total": 412, "limit": 500, "offset": 0
}
}
Те же формы, что в разделе «Ручные формы» на сайте: группы товаров, планы, заметки, самовыкупы, раздачи, операционные расходы, налоги и себестоимость. Запись идёт тем же кодом, что и сохранение формы на сайте: изменения сразу видны в форме, а отчёты кабинета пересобираются сами в течение нескольких минут.
| Метод | Что делает |
|---|---|
| GET /v1/{marketplace}/forms | Полное описание всех форм площадки: поля, типы, допустимые значения, как задаётся товар, как работает запись, правила и пример запроса. Прочитайте до первой записи — особенно если запросы собирает ИИ. |
| POST /v1/{marketplace}/forms/{form} | Чтение формы одного кабинета. |
| POST /v1/{marketplace}/forms/{form}/update | Запись в форму одного кабинета. |
| form | Что это |
|---|---|
cost-price |
Себестоимость. Себестоимость единицы товара по периодам. У этой формы отдельные методы: чтение POST /v1/{marketplace}/costs, запись POST /v1/{marketplace}/costs-update. |
product-groups |
Группы товаров. Ответственный, название группы и уровни группировки товара. По ним фильтруются и группируются все отчёты и виджеты кабинета (фильтры group_name, responsible, grouping_level_1..3 в остальных методах API). |
plans |
Планы. План по каждому товару на каждый день месяца, отдельно по каждой метрике. Из него считаются план-факт и % выполнения в РНП и плановые метрики метода /metrics (с тегом plan). |
notes |
Заметки. Журнал продавца: текстовая заметка к товару на дату («поднял цену», «запустил акцию»). Показывается рядом с цифрами в РНП, «Тепловой карте», Unit-факте и в метрике-заметке метода /metrics. |
self-purchases |
Самовыкупы. Выкупы собственных товаров (самовыкупы). В отчётах они вычитаются из продаж и выручки и учитываются отдельно, их себестоимость — тоже. |
distributions |
Раздачи. Раздачи товара за отзывы (кэшбэк покупателям). В отчётах — отдельная статья расходов на продвижение. |
expenses |
Операционные расходы. Операционные расходы и поступления вне маркетплейса: аренда, зарплаты, закупка, фулфилмент, кредиты и т.д. Попадают в ОПиУ (по date_period) и в ДДС (по date_payment). |
taxes |
Налоги. Система налогообложения, ставка налога и НДС — помесячно. Из них считаются налог и НДС в ОПиУ, Unit-факте и прибыли. |
| Wildberries | article — артикул WB (nmID), целое число |
| Ozon | sku — SKU Ozon и/или article — артикул продавца (offer_id). Достаточно одного: сервер сам переведёт в то, чем хранит эта форма |
| Яндекс Маркет | article — артикул продавца (SKU магазина, offer_id), строка |
# 1. Контракт всех форм площадки
curl https://web.metriclab.ru/v1/wb/forms \
-H "Authorization: Bearer ml_live_xxxxxxxxxx"
# 2. Прочитать форму одного кабинета
curl https://web.metriclab.ru/v1/wb/forms/plans \
-H "Authorization: Bearer ml_live_xxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"cabinets": ["12345"], "month": "2026-10", "metric": "plan_orders_rub"}'
# 3. Записать
curl https://web.metriclab.ru/v1/wb/forms/plans/update \
-H "Authorization: Bearer ml_live_xxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"cabinets": ["12345"], "month": "2026-10", "metric": "plan_orders_rub",
"items": [{"article": 210534867, "month_total": 310000}]}'
cost-priceСебестоимость единицы товара по периодам. У этой формы отдельные методы: чтение POST /v1/{marketplace}/costs, запись POST /v1/{marketplace}/costs-update.
У себестоимости отдельные методы: /v1/wb/costs и /v1/wb/costs-update; /v1/ozon/costs и /v1/ozon/costs-update; /v1/yandex/costs и /v1/yandex/costs-update.
| Площадка | Грейн |
|---|---|
| Wildberries | товар (артикул × баркод) × неделя отчёта WB, ключ периода "2026_32" |
| Ozon | SKU × полмесяца, ключ периода "2026_август_1" (1–15) / "2026_август_2" (16–конец) |
| Яндекс Маркет | артикул продавца × полмесяца, ключ периода "2026_август_1" (1–15) / "2026_август_2" (16–конец) |
product-groupsОтветственный, название группы и уровни группировки товара. По ним фильтруются и группируются все отчёты и виджеты кабинета (фильтры group_name, responsible, grouping_level_1..3 в остальных методах API).
Грейн: товар
| cabinets | обязателен, ровно ОДИН кабинет: ["<cabinet_id или имя кабинета из GET /v1/cabinets>"] |
data.rows — все товары кабинета: поля товара и текущие значения полей формы (null — не заполнено).
upsert по товару: меняются только переданные поля, остальные поля товара остаются как были. null или "" очищает поле. Повтор того же запроса безопасен.
| cabinets | обязателен, ровно ОДИН кабинет: ["<cabinet_id или имя кабинета из GET /v1/cabinets>"] |
| items | [{товар, поле: значение, ...}] — до 5000 шт.; товар — поля из product |
data.updated_products — сколько товаров записано, data.skipped — товары, которых нет в кабинете (они не записаны, остальные записаны).
Товар: article — артикул WB (nmID), целое число
responsible |
Ответственный | string |
group_name |
Название группы | string |
grouping_level_1 |
Группировка 1 | string |
{
"cabinets": [
"12345"
],
"items": [
{
"article": 210534867,
"responsible": "Иванов",
"group_name": "Летняя коллекция"
}
]
}
Товар: sku — SKU Ozon (форма хранит SKU); можно article — артикул продавца: по article значение ляжет на все SKU артикула
responsible |
Ответственный | string |
group_name |
Название группы | string |
grouping_level_1 |
Группировка 1 | string |
grouping_level_2 |
Группировка 2 | string |
grouping_level_3 |
Группировка 3 | string |
{
"cabinets": [
"67890"
],
"items": [
{
"sku": "1580142736",
"responsible": "Иванов",
"group_name": "Летняя коллекция"
}
]
}
Товар: article — артикул продавца (SKU магазина, offer_id), строка
responsible |
Ответственный | string |
group_name |
Название группы | string |
grouping_level_1 |
Группировка 1 | string |
grouping_level_2 |
Группировка 2 | string |
grouping_level_3 |
Группировка 3 | string |
{
"cabinets": [
"11223344"
],
"items": [
{
"article": "AKO-2201",
"responsible": "Иванов",
"group_name": "Летняя коллекция"
}
]
}
plansПлан по каждому товару на каждый день месяца, отдельно по каждой метрике. Из него считаются план-факт и % выполнения в РНП и плановые метрики метода /metrics (с тегом plan).
Грейн: товар × день × метрика
| cabinets | обязателен, ровно ОДИН кабинет: ["<cabinet_id или имя кабинета из GET /v1/cabinets>"] |
| month | обязателен, "YYYY-MM" |
| metric | обязателен, ключ из metrics |
| only_filled | опц., true — только товары, у которых есть план в этом месяце |
data.rows — товары: month_total (сумма плана за месяц, у метрик с level — среднее дней с планом; null — плана нет) и days {"YYYY-MM-DD": план} — только дни, где план задан (не ноль).
upsert по (товар, день, метрика): присланные дни перезаписываются, остальные дни товара не трогаются. Повтор того же запроса безопасен.
| cabinets | обязателен, ровно ОДИН кабинет: ["<cabinet_id или имя кабинета из GET /v1/cabinets>"] |
| month | обязателен, "YYYY-MM" — один месяц на запрос |
| metric | обязателен, ключ из metrics — одна метрика на запрос |
| items | до 5000 шт., один элемент на товар: {товар, month_total} ИЛИ {товар, days: {"YYYY-MM-DD": число}}; товар — поля из product |
data.saved_days, data.products, data.skipped (товары, которых нет в кабинете или в форме «Планы»).
Товар: article — артикул WB (nmID), целое число
plan_views_qty | План показов, шт | metric |
plan_clicks_qty | План кликов, шт | metric |
plan_add_to_cart_qty | План добавлений в корзину, шт | metric |
plan_orders_qty | План заказов, шт | metric |
plan_orders_rub | План заказов, руб | metric |
plan_sales_qty | План продаж, шт | metric |
plan_sales_rub | План продаж, руб | metric |
plan_profit_rub | План прибыли, руб | metric |
plan_adv_rub | План расходов на РК, руб | metric |
plan_for_pay_rub | План суммы к перечислению, руб | metric |
plan_drr_orders_pct | Целевой ДРР от заказов, % | metric |
plan_drr_sales_pct | Целевой ДРР от продаж, % | metric |
plan_margin_pct | Целевая маржинальность до СПП, % | metric |
{
"cabinets": [
"12345"
],
"month": "2026-10",
"metric": "plan_orders_rub",
"items": [
{
"article": 210534867,
"month_total": 310000
},
{
"article": 210534868,
"days": {
"2026-10-01": 5000,
"2026-10-02": 7500
}
}
]
}
Товар: article — артикул продавца (форма хранит его); можно sku — сервер найдёт его артикул
plan_views_qty | План показов, шт | metric |
plan_clicks_qty | План кликов, шт | metric |
plan_add_to_cart_qty | План добавлений в корзину, шт | metric |
plan_orders_qty | План заказов, шт | metric |
plan_orders_rub | План заказов, руб | metric |
plan_sales_qty | План продаж, шт | metric |
plan_sales_rub | План продаж, руб | metric |
plan_profit_rub | План прибыли, руб | metric |
plan_adv_rub | План расходов на РК, руб | metric |
plan_for_pay_rub | План суммы к перечислению, руб | metric |
plan_drr_orders_pct | Целевой ДРР от заказов, % | metric |
plan_drr_sales_pct | Целевой ДРР от продаж, % | metric |
plan_margin_pct | Целевая маржинальность до СПП, % | metric |
{
"cabinets": [
"67890"
],
"month": "2026-10",
"metric": "plan_orders_rub",
"items": [
{
"article": "AKO.2201.01",
"month_total": 310000
},
{
"sku": "1579471752",
"days": {
"2026-10-01": 5000,
"2026-10-02": 7500
}
}
]
}
Товар: article — артикул продавца (SKU магазина, offer_id), строка
plan_views_qty | План показов, шт | metric |
plan_clicks_qty | План кликов, шт | metric |
plan_add_to_cart_qty | План добавлений в корзину, шт | metric |
plan_orders_qty | План заказов, шт | metric |
plan_orders_rub | План заказов, руб | metric |
plan_sales_qty | План продаж, шт | metric |
plan_sales_rub | План продаж, руб | metric |
plan_profit_rub | План прибыли, руб | metric |
plan_adv_rub | План расходов на РК, руб | metric |
plan_for_pay_rub | План суммы к перечислению, руб | metric |
plan_drr_orders_pct | Целевой ДРР от заказов, % | metric |
plan_drr_sales_pct | Целевой ДРР от реализации, % | metric |
plan_margin_pct | Целевая маржинальность до скидок Маркета, % | metric |
{
"cabinets": [
"11223344"
],
"month": "2026-10",
"metric": "plan_orders_rub",
"items": [
{
"article": "AKO-2201",
"month_total": 310000
},
{
"article": "AKO-2202",
"days": {
"2026-10-01": 5000,
"2026-10-02": 7500
}
}
]
}
notesЖурнал продавца: текстовая заметка к товару на дату («поднял цену», «запустил акцию»). Показывается рядом с цифрами в РНП, «Тепловой карте», Unit-факте и в метрике-заметке метода /metrics.
Грейн: товар × день
| cabinets | обязателен, ровно ОДИН кабинет: ["<cabinet_id или имя кабинета из GET /v1/cabinets>"] |
| date_from | обязателен, "YYYY-MM-DD" |
| date_to | обязателен, "YYYY-MM-DD", не дальше 366 дней от date_from |
data.rows — только существующие заметки: {article, date, text}.
замена ячейки (товар, день): новый текст заменяет прежний, null или "" удаляет заметку. Другие дни и товары не трогаются. Повтор безопасен.
| cabinets | обязателен, ровно ОДИН кабинет: ["<cabinet_id или имя кабинета из GET /v1/cabinets>"] |
| items | [{товар, date: "YYYY-MM-DD", text}] — до 5000 шт., даты — не больше чем из 3 разных месяцев; товар — поля из product |
data.saved — записано заметок, data.cleared — ячеек очищено (пустой text), data.skipped — товары, которых нет в кабинете.
Товар: article — артикул WB (nmID), целое число
date |
Дата · обязательно | date |
text |
Заметка | string |
{
"cabinets": [
"12345"
],
"items": [
{
"article": 210534867,
"date": "2026-10-05",
"text": "Снизили цену на 10%"
}
]
}
Товар: article — артикул продавца (форма хранит его); можно sku — сервер найдёт его артикул
date |
Дата · обязательно | date |
text |
Заметка | string |
{
"cabinets": [
"67890"
],
"items": [
{
"article": "AKO.2201.01",
"date": "2026-10-05",
"text": "Снизили цену на 10%"
}
]
}
Товар: article — артикул продавца (SKU магазина, offer_id), строка
date |
Дата · обязательно | date |
text |
Заметка | string |
{
"cabinets": [
"11223344"
],
"items": [
{
"article": "AKO-2201",
"date": "2026-10-05",
"text": "Снизили цену на 10%"
}
]
}
self-purchasesВыкупы собственных товаров (самовыкупы). В отчётах они вычитаются из продаж и выручки и учитываются отдельно, их себестоимость — тоже.
Грейн: строка = одна запись; ключа у строки нет
| cabinets | обязателен, ровно ОДИН кабинет: ["<cabinet_id или имя кабинета из GET /v1/cabinets>"] |
data.rows — ВСЕ строки формы кабинета (без фильтров и пагинации).
mode="append" — дописать rows к существующим (НЕ идемпотентно: повтор запроса задвоит строки). mode="replace" — заменить ВЕСЬ список формы на rows (как «Сохранить» на сайте): чтобы изменить или удалить строку, прочитайте форму целиком, поправьте список и пришлите его полностью. Строки, возвращённые ровно как в чтении, сохраняются как есть, даже если в них пусто обязательное поле или товара уже нет в каталоге; правила fields проверяются у новых и изменённых строк. Пустой rows при replace удаляет все строки и требует "allow_empty": true.
| cabinets | обязателен, ровно ОДИН кабинет: ["<cabinet_id или имя кабинета из GET /v1/cabinets>"] |
| mode | "append" | "replace" |
| rows | список строк: до 5000 для append, до 20000 для replace |
| allow_empty | опц., true — разрешить replace пустым списком (удалить всё) |
data.written — сколько строк записано; при replace data.unchanged — сколько из них совпали со строками из чтения и сохранены как были.
Товар: обязателен: article — артикул WB (nmID), целое число; barcode — баркод размера: обязателен, если у артикула несколько баркодов, иначе подставится сам
date_order |
Дата заказа | date |
date_pickup |
Дата забора с ПВЗ · обязательно | date |
quantity |
Количество, шт · обязательно | integer |
sum |
Сумма, руб · обязательно | number |
uid |
ID заказа WB | string |
comment |
Комментарий | string |
{
"cabinets": [
"12345"
],
"mode": "append",
"rows": [
{
"article": 210534867,
"barcode": "2037561234567",
"date_order": "2026-10-01",
"date_pickup": "2026-10-04",
"quantity": 1,
"sum": 1490
}
]
}
Товар: обязателен: sku — SKU Ozon (форма хранит SKU); можно article — артикул продавца: article подходит, только если у артикула один SKU
date_order |
Дата заказа | date |
date_pickup |
Дата забора с ПВЗ · обязательно | date |
quantity |
Количество, шт · обязательно | integer |
sum |
Сумма, руб · обязательно | number |
comment |
Комментарий | string |
{
"cabinets": [
"67890"
],
"mode": "append",
"rows": [
{
"sku": "1580142736",
"date_order": "2026-10-01",
"date_pickup": "2026-10-04",
"quantity": 1,
"sum": 1490
}
]
}
Товар: обязателен: article — артикул продавца (SKU магазина, offer_id), строка
date_order |
Дата заказа | date |
date_pickup |
Дата забора с ПВЗ · обязательно | date |
quantity |
Количество, шт · обязательно | integer |
sum |
Сумма, руб · обязательно | number |
comment |
Комментарий | string |
{
"cabinets": [
"11223344"
],
"mode": "append",
"rows": [
{
"article": "AKO-2201",
"date_order": "2026-10-01",
"date_pickup": "2026-10-04",
"quantity": 1,
"sum": 1490
}
]
}
distributionsРаздачи товара за отзывы (кэшбэк покупателям). В отчётах — отдельная статья расходов на продвижение.
Грейн: строка = одна запись; ключа у строки нет
| cabinets | обязателен, ровно ОДИН кабинет: ["<cabinet_id или имя кабинета из GET /v1/cabinets>"] |
data.rows — ВСЕ строки формы кабинета (без фильтров и пагинации).
mode="append" — дописать rows к существующим (НЕ идемпотентно: повтор запроса задвоит строки). mode="replace" — заменить ВЕСЬ список формы на rows (как «Сохранить» на сайте): чтобы изменить или удалить строку, прочитайте форму целиком, поправьте список и пришлите его полностью. Строки, возвращённые ровно как в чтении, сохраняются как есть, даже если в них пусто обязательное поле или товара уже нет в каталоге; правила fields проверяются у новых и изменённых строк. Пустой rows при replace удаляет все строки и требует "allow_empty": true.
| cabinets | обязателен, ровно ОДИН кабинет: ["<cabinet_id или имя кабинета из GET /v1/cabinets>"] |
| mode | "append" | "replace" |
| rows | список строк: до 5000 для append, до 20000 для replace |
| allow_empty | опц., true — разрешить replace пустым списком (удалить всё) |
data.written — сколько строк записано; при replace data.unchanged — сколько из них совпали со строками из чтения и сохранены как были.
Товар: обязателен: article — артикул WB (nmID), целое число; barcode — баркод размера: обязателен, если у артикула несколько баркодов, иначе подставится сам
date_order |
Дата заказа | date |
date_pickup |
Дата забора с ПВЗ · обязательно | date |
quantity |
Раздачи, шт · обязательно | integer |
sum |
Кэшбэк, руб · обязательно | number |
uid |
ID заказа WB | string |
comment |
Комментарий | string |
{
"cabinets": [
"12345"
],
"mode": "append",
"rows": [
{
"article": 210534867,
"barcode": "2037561234567",
"date_order": "2026-10-01",
"date_pickup": "2026-10-04",
"quantity": 1,
"sum": 1490
}
]
}
Товар: обязателен: sku — SKU Ozon (форма хранит SKU); можно article — артикул продавца: article подходит, только если у артикула один SKU
date_order |
Дата заказа | date |
date_pickup |
Дата забора с ПВЗ · обязательно | date |
quantity |
Раздачи, шт · обязательно | integer |
sum |
Кэшбэк, руб · обязательно | number |
comment |
Комментарий | string |
{
"cabinets": [
"67890"
],
"mode": "append",
"rows": [
{
"sku": "1580142736",
"date_order": "2026-10-01",
"date_pickup": "2026-10-04",
"quantity": 1,
"sum": 1490
}
]
}
Товар: обязателен: article — артикул продавца (SKU магазина, offer_id), строка
date_order |
Дата заказа | date |
date_pickup |
Дата забора с ПВЗ · обязательно | date |
quantity |
Раздачи, шт · обязательно | integer |
sum |
Кэшбэк, руб · обязательно | number |
comment |
Комментарий | string |
{
"cabinets": [
"11223344"
],
"mode": "append",
"rows": [
{
"article": "AKO-2201",
"date_order": "2026-10-01",
"date_pickup": "2026-10-04",
"quantity": 1,
"sum": 1490
}
]
}
expensesОперационные расходы и поступления вне маркетплейса: аренда, зарплаты, закупка, фулфилмент, кредиты и т.д. Попадают в ОПиУ (по date_period) и в ДДС (по date_payment).
Грейн: строка = одна запись; ключа у строки нет
| cabinets | обязателен, ровно ОДИН кабинет: ["<cabinet_id или имя кабинета из GET /v1/cabinets>"] |
data.rows — ВСЕ строки формы кабинета (без фильтров и пагинации).
mode="append" — дописать rows к существующим (НЕ идемпотентно: повтор запроса задвоит строки). mode="replace" — заменить ВЕСЬ список формы на rows (как «Сохранить» на сайте): чтобы изменить или удалить строку, прочитайте форму целиком, поправьте список и пришлите его полностью. Строки, возвращённые ровно как в чтении, сохраняются как есть, даже если в них пусто обязательное поле или товара уже нет в каталоге; правила fields проверяются у новых и изменённых строк. Пустой rows при replace удаляет все строки и требует "allow_empty": true.
| cabinets | обязателен, ровно ОДИН кабинет: ["<cabinet_id или имя кабинета из GET /v1/cabinets>"] |
| mode | "append" | "replace" |
| rows | список строк: до 5000 для append, до 20000 для replace |
| allow_empty | опц., true — разрешить replace пустым списком (удалить всё) |
data.written — сколько строк записано; при replace data.unchanged — сколько из них совпали со строками из чтения и сохранены как были.
Товар: необязателен: article — артикул WB (nmID), целое число
date_payment |
Дата платежа (ДДС) · обязательно | date |
date_period |
Дата периода (ОПиУ) · обязательно | date |
operation_type |
Тип операции · обязательноДопустимые значения: Расход, Приход |
select |
category |
Статья · обязательноДопустимые значения: Аренда, Внешний маркетинг, Выплата дивидендов, Закупка товара, Логистика внутри РФ, Логистика из других стран, Налог с продаж на маркетплейсах, Основные средства, Погашение процентов по долгу (займы, кредиты), Погашение тела долга (займы, кредиты), Поиск и подбор персонала (HR), Получение кредита, займа, Поступления от Wildberries, Представительские расходы, Привлечение инвестиций, Прочие, Прочие налоги и пошлины, Прочие поступления, Расходные материалы, Расходы на ведение бухгалтерии, Расчетно-кассовое обслуживание (РКО), Регистрация ИП, Регистрация торговых марок, Сертификация товаров, Создание контента, Услуги байера, Услуги сервисов, Услуги связи, Услуги сторонних подрядчиков, Фонд оплаты труда, Фулфилмент, Честный знак |
select |
sum |
Сумма, руб · обязательно | number |
comment |
Комментарий | string |
{
"cabinets": [
"12345"
],
"mode": "append",
"rows": [
{
"date_payment": "2026-10-05",
"date_period": "2026-10-01",
"operation_type": "Расход",
"category": "Аренда",
"sum": 85000,
"comment": "Аренда склада за октябрь"
}
]
}
Товар: необязателен: sku — SKU Ozon (форма хранит SKU); можно article — артикул продавца: article подходит, только если у артикула один SKU
date_payment |
Дата платежа (ДДС) · обязательно | date |
date_period |
Дата периода (ОПиУ) · обязательно | date |
operation_type |
Тип операции · обязательноДопустимые значения: Расход, Приход |
select |
category |
Статья · обязательноДопустимые значения: Аренда, Внешний маркетинг, Выплата дивидендов, Закупка товара, Логистика внутри РФ, Логистика из других стран, Налог с продаж на маркетплейсах, Основные средства, Погашение процентов по долгу (займы, кредиты), Погашение тела долга (займы, кредиты), Поиск и подбор персонала (HR), Получение кредита, займа, Поступления от Ozon, Представительские расходы, Привлечение инвестиций, Прочие, Прочие налоги и пошлины, Прочие поступления, Расходные материалы, Расходы на ведение бухгалтерии, Расчетно-кассовое обслуживание (РКО), Регистрация ИП, Регистрация торговых марок, Сертификация товаров, Создание контента, Услуги байера, Услуги сервисов, Услуги связи, Услуги сторонних подрядчиков, Фонд оплаты труда, Фулфилмент, Честный знак |
select |
sum |
Сумма, руб · обязательно | number |
comment |
Комментарий | string |
{
"cabinets": [
"67890"
],
"mode": "append",
"rows": [
{
"date_payment": "2026-10-05",
"date_period": "2026-10-01",
"operation_type": "Расход",
"category": "Аренда",
"sum": 85000,
"comment": "Аренда склада за октябрь"
}
]
}
Товар: необязателен: article — артикул продавца (SKU магазина, offer_id), строка
date_payment |
Дата платежа (ДДС) · обязательно | date |
date_period |
Дата периода (ОПиУ) · обязательно | date |
operation_type |
Тип операции · обязательноДопустимые значения: Расход, Приход |
select |
category |
Статья · обязательноДопустимые значения: Аренда, Внешний маркетинг, Выплата дивидендов, Закупка товара, Логистика внутри РФ, Логистика из других стран, Налог с продаж на маркетплейсах, Основные средства, Погашение процентов по долгу (займы, кредиты), Погашение тела долга (займы, кредиты), Поиск и подбор персонала (HR), Получение кредита, займа, Поступления от Яндекс Маркета, Представительские расходы, Привлечение инвестиций, Прочие, Прочие налоги и пошлины, Прочие поступления, Расходные материалы, Расходы на ведение бухгалтерии, Расчетно-кассовое обслуживание (РКО), Регистрация ИП, Регистрация торговых марок, Сертификация товаров, Создание контента, Услуги байера, Услуги сервисов, Услуги связи, Услуги сторонних подрядчиков, Фонд оплаты труда, Фулфилмент, Честный знак |
select |
sum |
Сумма, руб · обязательно | number |
comment |
Комментарий | string |
{
"cabinets": [
"11223344"
],
"mode": "append",
"rows": [
{
"date_payment": "2026-10-05",
"date_period": "2026-10-01",
"operation_type": "Расход",
"category": "Аренда",
"sum": 85000,
"comment": "Аренда склада за октябрь"
}
]
}
taxesСистема налогообложения, ставка налога и НДС — помесячно. Из них считаются налог и НДС в ОПиУ, Unit-факте и прибыли.
Грейн · Wildberries: месяц × уровень: «Налог по умолчанию» → предмет → товар
Грейн · Ozon: месяц × уровень: «Налог по умолчанию» → коммерческая категория → товар
Грейн · Яндекс Маркет: месяц × уровень: «Налог по умолчанию» → категория → товар
| cabinets | обязателен, ровно ОДИН кабинет: ["<cabinet_id или имя кабинета из GET /v1/cabinets>"] |
| month | опц., "YYYY-MM" (по умолчанию — текущий месяц) |
| month_from / month_to | опц., диапазон "YYYY-MM" до 60 месяцев |
| products | опц., "overrides" (по умолчанию: только товары, у которых налог отличается от их категории), "all" — все товары, "none" — без товаров |
data.rows — {level, category, [товар], months: {"YYYY-MM": {tax_type, tax_rate, vat}}}: ДЕЙСТВУЮЩИЕ значения с учётом наследования.
upsert по (уровень, категория/товар, месяц): меняются только переданные поля из tax_type/tax_rate/vat, остальные остаются. Повтор безопасен.
| cabinets | обязателен, ровно ОДИН кабинет: ["<cabinet_id или имя кабинета из GET /v1/cabinets>"] |
| items | до 5000 шт.: {level, category (для level="category"), товар (для level="product"), month ИЛИ month_from+month_to, tax_type?, tax_rate?, vat?} |
data.written — сколько записей изменено, data.skipped — товары, которых нет в кабинете.
Wildberries
| default | «Налог по умолчанию» — действует на все товары, у которых нет своей ставки |
| category | предмет — имя ровно как в чтении формы (поле category) |
| product | товар — перекрывает категорию |
Ozon
| default | «Налог по умолчанию» — действует на все товары, у которых нет своей ставки |
| category | коммерческая категория — имя ровно как в чтении формы (поле category) |
| product | товар — перекрывает категорию |
Яндекс Маркет
| default | «Налог по умолчанию» — действует на все товары, у которых нет своей ставки |
| category | категория — имя ровно как в чтении формы (поле category) |
| product | товар — перекрывает категорию |
Товар: для level="product": article — nmID, целое; barcode — опц., баркод размера (без него значение ляжет на все баркоды артикула)
tax_type |
Тип налогообложенияДопустимые значения: АУСН, УСН Доход, УСН Доход-Расход, ОСНО |
select |
tax_rate |
Налоговая ставка, %0..100 | number |
vat |
НДС, %0..100 | number |
{
"cabinets": [
"12345"
],
"items": [
{
"level": "default",
"month_from": "2026-01",
"month_to": "2026-10",
"tax_type": "УСН Доход",
"tax_rate": 6,
"vat": 0
}
]
}
Товар: для level="product": sku — SKU Ozon, или article — артикул продавца (значение ляжет на все его SKU)
tax_type |
Тип налогообложенияДопустимые значения: АУСН, УСН Доход, УСН Доход-Расход, ОСНО |
select |
tax_rate |
Налоговая ставка, %0..100 | number |
vat |
НДС, %0..100 | number |
{
"cabinets": [
"67890"
],
"items": [
{
"level": "default",
"month_from": "2026-01",
"month_to": "2026-10",
"tax_type": "УСН Доход",
"tax_rate": 6,
"vat": 0
}
]
}
Товар: для level="product": article — артикул продавца
tax_type |
Тип налогообложенияДопустимые значения: АУСН, УСН Доход, УСН Доход-Расход, ОСНО |
select |
tax_rate |
Налоговая ставка, %0..100 | number |
vat |
НДС, %0..100 | number |
{
"cabinets": [
"11223344"
],
"items": [
{
"level": "default",
"month_from": "2026-01",
"month_to": "2026-10",
"tax_type": "УСН Доход",
"tax_rate": 6,
"vat": 0
}
]
}
Список изменений публичного API — от новых к старым. Каждая запись имеет
тип (added, changed, deprecated, removed, fixed),
дату и краткое описание. Следите за этим разделом перед обновлением своей интеграции.
В форме plans (POST /v1/{wb,ozon,yandex}/forms/plans и …/plans/update) четыре новые метрики: plan_for_pay_rub — план суммы к перечислению, руб; plan_drr_orders_pct и plan_drr_sales_pct — целевой ДРР от заказов и от продаж, %; plan_margin_pct — целевая маржинальность, %. У целевых метрик в списке metrics стоит level: true: это планка в процентах, month_total ставится в каждый день месяца как есть (можно с дробью) и не делится по дням, а при чтении month_total — среднее дней с планом. В POST /v1/{wb,ozon,yandex}/metrics — план суммы к перечислению ({mp}_rnp_for_pay_plan) и процент его выполнения ({mp}_for_pay_plan_pct, computed).
Маркетплейс yandex: POST /v1/yandex/metrics, /advertising, /unit-fact, /costs и /costs-update — тот же расчёт, что в отчётах на сайте. Кабинет ЯМ — бизнес-аккаунт; его id и имя отдаёт GET /v1/cabinets (marketplace: "yandex"). Товар — артикул продавца. Себестоимость у ЯМ, как у Ozon, по полумесяцам: ключ периода "2026_август_1" (1–15) или "2026_август_2" (16–конец месяца). Расчёта поставок и остатков по складам для ЯМ пока нет — как и на сайте.
POST /v1/{wb,ozon,yandex}/forms/{form} читает, POST …/forms/{form}/update записывает ручные формы кабинета: product-groups (группы товаров), plans (планы по дням), notes (заметки), self-purchases (самовыкупы), distributions (раздачи), expenses (операционные расходы), taxes (налоги). Пишется тем же кодом, что форма на сайте: изменения сразу видны в форме, отчёты пересобираются сами. GET /v1/{marketplace}/forms — полное описание каждой формы: поля, допустимые значения, правила и примеры (его стоит прочитать до первой записи, особенно ИИ-ассистенту). Запись проверяется целиком: при ошибке ничего не записывается, а в ответе перечислены все ошибки.
GET /v1/{marketplace}/metrics-catalog, /advertising-catalog и /unit-fact-catalog теперь отвечают и внешнему клиенту с API-ключом (раньше их видела только эта страница документации): ИИ-ассистент может сам взять ключи метрик, не разбирая HTML.
POST /v1/{marketplace}/costs и /costs-update теперь работают так же, как остальные ручные формы: если для аккаунта отключена вкладка «Ручные формы», они отвечают 403. Себестоимость — тоже ручная форма, и API не открывает её в обход сайта. Если формы в аккаунте включены, ничего не меняется.
В POST /v1/{wb,ozon}/metrics можно запросить планы, которые вы занесли в форму «Планы» на сайте: показы, клики, корзина, заказы (шт и руб), продажи (шт и руб), расходы на рекламу и прибыль (у Wildberries прибыль появилась вместе с планом по ней). В каталоге метрик у них тег plan и поле plan_for — ключ метрики факта, к которой относится план. План среза равен сумме дневных планов внутри него: в totals — за весь период, в by_date — за дату, в by_article — по товару, в by_article_date — ровно на грани товар×дата. Товар, на который план стоит, а продаж не было, в разрезах тоже появится. Процент выполнения считается как факт ÷ план × 100 — ровно та формула, что теперь указана у строк «% ВЫПОЛНЕНИЯ» в каталоге (раньше в ней стояло служебное имя, которого снаружи нет). С group_by ["campaign"] планы не отдаются: они ставятся на товар, а не на кампанию.
Во всех успешных ответах появились поля docs (ссылка на раздел документации вызванного метода) и hint (короткая подсказка, какой метод для какой задачи и где брать имена метрик). Это для ИИ-агентов, которым дали ключ без документации: по подсказке они найдут описание методов сами. Формат остальных полей не изменился. В документации добавлен раздел «Какой метод выбрать».
POST /v1/{wb,ozon}/unit-fact — лист «Unit-факт» из виджета «Таблица» на сайте, строка на товар (Wildberries — артикул и размер, Ozon — SKU) за период: реализация, все услуги площадки по статьям, себестоимость, налог и НДС, сумма к перечислению, прибыль, маржинальность, доли, показатели на единицу, ABC-классы и остатки. Считается тем же кодом, что и таблица на сайте: колонки-формулы и ABC приходят уже посчитанными. Список колонок с описаниями и формулами — GET /v1/{wb,ozon}/unit-fact-catalog, он же в документации. Остатки — снимок на самую свежую дату (meta.stocks.latest); значения на последнюю дату внутри периода лежат в тех же колонках с суффиксом __in_period. У Wildberries в meta.cabinets по каждому кабинету ровно одна заметка: с какой даты доступен ежедневный Unit-факт и какие недели периода вошли по дням, какие одной строкой за неделю целиком, а какие не вошли (закрыты только недельным отчётом и задеты периодом не целиком) — как на сайте. Пагинация limit/offset (по умолчанию и максимум 5000 строк), фильтры по товарам — как в остальных методах. Лимит 3 запроса/мин.
В ответах с ошибкой формы {"status":"error"} (400, 500) текст в поле error теперь заканчивается рекомендацией свериться с документацией и ссылкой на раздел нужного эндпоинта, например https://web.metriclab.ru/api-doc/#ep-wb-stocks. Та же ссылка отдельно приходит в новом поле docs. При ошибках сервера (500) в error больше нет технических деталей — только общий текст, что делать; подробности остаются в наших логах. Формат остальных ответов не изменился.
В каждой записи каталога (/v1/{wb,ozon}/{metrics,advertising}-catalog) у метрик, которые приходят данными, появились два поля: aggregation — как сворачивать значения по товарам внутри одного дня, и time_aggregation — как сворачивать по дням внутри периода. У подавляющего большинства метрик там sum, и ничего не меняется. Но часть метрик — это состояние на день, а не поток за день: остатки (stocks_amount, stocks_amount_fbs, stocks_amount_total, stocks_in_transit) сворачиваются по дням как last, цены и СПП (price_before_spp, price_after_spp, price_after_spp_and_card, spp_percent) — среднее по товарам и last по дням, позиция в поиске (search_position) — минимум. Ответ эндпоинтов не изменился: data.current.totals по-прежнему приходит суммой по всем строкам, поэтому для таких метрик итог за период нужно считать самому — запросите group_by ['date'] (и 'article', если нужны цифры по товарам) и сверните ряд так, как говорят эти поля. Именно так считает виджет на сайте, и только так цифра совпадёт с тем, что видит клиент в личном кабинете.
Продвижение на Wildberries оплачивается двумя разными вещами: деньгами продавца (баланс и счёт) и бонусами, промо-бонусами и кэшбэком самой площадки. Раньше расход отдавался одним числом, в котором часть бонусных списаний учитывалась, а промо-бонусы не учитывались вовсе. Теперь логика единая: расход — это всё, чем оплачено продвижение. Значения вырастут на сумму промо-бонусов, у кабинетов без них не изменятся. Это касается метрики adv_sum в POST /v1/wb/metrics и поля expenses в POST /v1/wb/advertising; производные, которые вы считаете сами (CPM, CPC, ДРР), изменятся вместе с расходом. Чтобы видеть, из чего он сложился, в POST /v1/wb/metrics добавлены две метрики: adv_sum_money — оплаченное вашими деньгами, adv_sum_bonus — оплаченное бонусами и кэшбэком площадки; их сумма всегда равна adv_sum. Считать «сколько я реально заплатил за рекламу» нужно по adv_sum_money — именно эта часть уменьшает выплату. В POST /v1/wb/advertising разбивки нет: там расход по кампаниям приходит одним числом по всем источникам.
POST /v1/{wb,ozon}/costs — себестоимость товаров, та же, что в форме «Себестоимость» на сайте. Без параметров отдаётся последняя известная себестоимость по каждому товару вместе с периодом, к которому она относится (period, period_label с датами, period_start/period_end); товары без себестоимости приходят с cost = null. Справочный список доступных периодов — в meta.periods: у Ozon периоды полумесячные (2026_август_1 = 01.08–15.08), у WB — недельные (2026_32 = 03.08–09.08). Параметр period отдаёт значения ровно за указанный период. POST /v1/{wb,ozon}/costs-update — запись себестоимости за один указанный период сразу по массиву товаров: WB — артикул (+ баркод, необязательно: без него значение проставляется на все размеры артикула), Ozon — SKU или артикул продавца; cost = null очищает значение. После сохранения себестоимость протягивается в периоды, где значения ещё нет, уже заполненные не перезаписываются — как при сохранении формы. Лимиты: 5 запросов/мин на каждый из методов, до 5000 позиций в запросе.
POST /v1/{wb,ozon}/stocks — остатки построчно в разрезе товар × склад × дата: характеристики товара, склад, остаток шт, себестоимость единицы и остатка, цена единицы и остатка. Параметр type: fbo (по умолчанию), fbs или both. Период задаётся date_from/date_to; если их не передать — отдаются остатки за всё время. Себестоимость и цена единицы — актуальные (последние известные), стоимость остатка = кол-во × актуальную единицу. Пагинация limit/offset (для больших/all-time выборок), фильтры по товарам — как в виджетах.
Заметки (текст по артикулу за дату, как в виджетах РНП / РНП-реклама) теперь доступны через публичное API как отдельная метрика — добавьте её ключ (см. флаг notes в catalog) в массив metrics. В ответе заметка лежит рядом с числовыми метриками: в by_article_date[артикул][дата] — текст ровно за этот день; при огрублении группировки (только по дате / только по артикулу / итоги) все попавшие в срез заметки объединяются через перенос строки. Разрез по кампаниям (group_by=['campaign']) с заметками не поддерживается.
POST /v1/{wb,ozon}/supplies — потребность в поставках по той же методике, что и виджет «Расчёт поставок» на сайте: для каждого SKU (Ozon) или артикула+размера (WB) в разрезе по кластерам (Ozon) / федеральным округам (WB) считаются потребность, остаток, среднесуточные продажи и заказы, прогноз выкупов и оборачиваемость. Параметры расчёта: глубина планирования, плечо доставки, метод расчёта (продажи / заказы / заказы×%выкупа), прирост спроса, кратность поставки. Товары отсортированы по убыванию потребности; поддерживается пагинация (limit / offset), полный размер — в data.total.
POST /v1/{wb,ozon}/advertising — расходы, показы, клики, заказы по рекламным кампаниям в разрезе по датам/артикулам. Производные метрики (CPM, CTR, CPC, CPA, ДРР) считаются на стороне клиента из сырых компонент по стандартным формулам.
Запуск публичного API: GET /v1/cabinets, POST /v1/wb/metrics, POST /v1/ozon/metrics. Bearer-авторизация по API-ключу. Whitelist метрик повторяет виджет RNP. Per-endpoint rate-limit (3 req/min для metrics, 10 для cabinets) + overall 60 req/min на ключ.