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 inreferences/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 theSESSION_IDenvironment 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
--inlineto 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_KEYenvironment 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_KEYenvironment 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-searchfirst. - Page cap — max 100 rows per page.
- T-1 data —
endDatecannot 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-searchto 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.