MPSTATS Ozon Seller Products
This skill drills into all Ozon (Russia) products sold by a given seller, returning per-SKU sales, revenue, price, rating, stock, turnover, lost profit, and more. Designed for store-structure audits, bestseller dissection within a shop, and head-to-head competitor-store comparison.
Core Concepts
Seller ID, not name: sellerId must be a numeric string — the sellerId field Ozon / MPSTATS uses to identify a shop. Do not pass a brand name, category path, or human-readable seller name. If you only have the seller name, resolve the ID via ecommerce-ozon-product-search (seller-filtered) and read sellerId from the result.
Filters & ops: Same AND-combined numeric filter model as brand-products and category-products. See Filter Reference.
Currency: Default RUB; override with currency / currencyRate for USD / EUR / CNY views.
FBO / FBS: includeFbs: true folds FBS into the numbers; false keeps FBO-only.
Parameters
| Parameter |
Type |
Required |
Description |
| sellerId |
string |
yes |
Ozon seller ID as numeric string, e.g. "3628678" |
| startDate |
string |
no |
Stats window start, YYYY-MM-DD; latest = yesterday |
| endDate |
string |
no |
Stats window end, YYYY-MM-DD; latest = yesterday |
| page |
integer |
no |
Page number, starts at 1 |
| pageSize |
integer |
no |
Rows per page, 1-100, default 100 |
| sortField |
string |
no |
snake_case column (sales, revenue, ...) |
| sortDirection |
string |
no |
asc / desc |
| currency |
string |
no |
Currency code, default RUB |
| currencyRate |
integer |
no |
Custom rate for non-default currency |
| includeFbs |
boolean |
no |
Include FBS data |
| filters |
array |
no |
Numeric filter list |
Filter Reference
Each filters entry: {"field": "<snake_case>", "op": "<OP>", "value": <num>, "value2": <num?>}.
Common fields: sales, final_price, rating, comments, balance, revenue, days_in_stock, turnover_days, lost_profit, category_position.
Operators: GTE, LTE, GT, LT, EQ, NOT_EQ, BETWEEN (requires value2).
Calling the Tool
- API Endpoint:
/mpstats/ozon/sellerProducts (full parameters/responses/error codes in references/api.md)
- Python Script:
python scripts/ozon_seller_products.py '<JSON params>' [--inline]
- Cost constraint: This tool consumes credits. Within the same session and same parameter combination, it defaults to a single call with a 24-hour local cache. Do not automatically retry with different keywords, pagination, or parameters on failure/empty results. Inform the user of additional credit consumption before continuing retrieval.
Output strategy (script default behavior):
- Always write the full response to
<cwd>/nexscope/<YYYY-MM-DD>/<session>/data/ecommerce-ozon-seller-products-<timestamp>.json (<cwd> is the working directory when the script executes, which in Claude Code is the current project directory; <session> is taken from the SESSION_ID environment variable, automatically grouped by user task; do not write to /tmp; error if the current directory is not writable)
- Response body <= 8 KB: write to disk then print full JSON to stdout
- Response body > 8 KB: write to disk then print only a summary to stdout (top-level fields, common counts like
total/costToken, length of the largest list field + first 3 samples)
- Add
--inline to force full output to stdout (still writes to disk)
Reading data: Check the summary first to determine if it is sufficient. When specific fields are needed, use jq or ConvertFrom-Json to extract from the saved JSON file as needed, avoiding loading the entire JSON into context.
Authentication & Credits
If you encounter authentication or credit issues:
Error conditions
- API Key not configured: The
NEXSCOPE_API_KEY environment variable is not set.
- HTTP 401 or 402 status code
- Insufficient credits/balance: Response message indicates credit balance exhausted, quota exceeded, subscription expired, or recharge required.
Resolution steps
- Set the
NEXSCOPE_API_KEY environment variable with a valid API key.
- If credits are insufficient, visit https://www.nexscope.ai/pricing?co-from=skillNS to top up your balance.
- For onboarding and setup guidance, refer to https://www.nexscope.ai/help/skills-external-access?co-from=skillNS
Usage Examples
1. Seller's top-100 by sales
{
"sellerId": "3628678",
"sortField": "sales",
"sortDirection": "desc",
"pageSize": 100
}
2. Store's revenue top-20
{
"sellerId": "3628678",
"sortField": "revenue",
"sortDirection": "desc",
"pageSize": 20
}
3. High-turnover star products
{
"sellerId": "3628678",
"filters": [
{"field": "sales", "op": "GTE", "value": 30},
{"field": "turnover_days", "op": "LTE", "value": 20}
],
"sortField": "revenue",
"sortDirection": "desc"
}
4. Stockout pain points for the store
{
"sellerId": "3628678",
"filters": [{"field": "lost_profit", "op": "GTE", "value": 100000}],
"sortField": "lost_profit",
"sortDirection": "desc"
}
5. USD-converted store audit
{
"sellerId": "3628678",
"currency": "USD",
"sortField": "revenue",
"sortDirection": "desc"
}
Display Rules
- Compact store table — key columns:
productId, title, brand, price, monthlySalesUnits, monthlySalesRevenue, rating, balance, turnoverDays, lostProfit, position.
- Revenue share = within this seller query — 0-100%; clarify the base.
- Russian titles — preserve; translate on user request.
- Currency labeling — if converted, note
"converted to USD".
- Pagination — for stores with thousands of SKUs, suggest tighter filters before paging deep.
- No buying advice — the skill shows the store's book, not whether their SKUs are worth copying.
Important Limitations
- Numeric seller ID only — passing a seller name will not resolve; go through
ecommerce-ozon-product-search first.
- Page cap — max 100 rows per page.
- T-1 data —
endDate cannot be today or a future date.
- No business advice — data-only.
- Ozon-only — Wildberries / other Russian marketplaces are separate.
User Expression & Scenario Quick Reference
Applicable — Seller-scoped Ozon product metrics:
| User Says |
Scenario |
| "Show me everything seller 3628678 sells, by sales" |
Store SKU map |
| "What are this Ozon store's top revenue products" |
Store bestseller drill |
| "How many SKUs does the store have with turnover <20 days" |
Operational health filter |
| "Where is this store losing money to stockouts" |
Lost-profit scan |
| "Compare two Ozon stores' SKU counts and sales" |
Store-vs-store benchmarking (call twice) |
Not applicable — Needs beyond seller drill-down:
- Only seller name known → use
ecommerce-ozon-product-search to resolve the ID
- Brand-scoped drill →
ecommerce-ozon-brand-products
- Category-scoped drill →
ecommerce-ozon-category-products
- Single-SKU time-series →
ecommerce-ozon-product-trend
- Wildberries / other Russian marketplaces → not covered
Boundary judgment: Use this skill when the dimension is a specific seller and you want the per-SKU table under that shop. For "who are the top sellers in category X" you'd use category drill-down and group by seller client-side.