MPSTATS Ozon Product Search
This skill searches Ozon (Russia) products in the MPSTATS analytics database by Russian keyword or SKU list. It is the entry point for Ozon product discovery and competitor lookup — downstream drill-downs (brand/category/seller/detail/trend) typically start from the IDs returned here.
Core Concepts
MPSTATS Ozon coverage: Ozon is Russia's largest general-category marketplace. MPSTATS indexes Ozon product listings and sales history. This endpoint returns the basic identity card only — 10 fields: productId / title / productPageUrl / imageUrl / brand / brandId / sellerName / sellerId plus sourceType / sourceTool. Per-SKU price / sales / rating / stock / turnover / ranking are not returned here — the backend OzonProductSearchItem DTO is intentionally narrow. For those metrics, chain into ecommerce-ozon-product-detail (batch full card, 36 fields) or the brand/category/seller-products drill-downs (39 fields).
Language requirement: Keywords must be in Russian (Cyrillic) — or the Latin-script form actually used on the Ozon storefront. If the user supplies an English or Chinese keyword, translate it to Russian first and note the translation.
At-least-one input rule: The input schema marks both filters as optional, but the tool's business rule requires at least one of keyword / productIds to be supplied. The two can be combined to narrow results. For brand- or seller-scoped discovery, use ecommerce-ozon-brand-products / ecommerce-ozon-seller-products instead.
Parameters
| Parameter |
Type |
Required |
Description |
| keyword |
string |
conditional |
Russian search keyword, e.g., кроссовки (sneakers) |
| productIds |
array<integer|string> |
conditional |
Ozon SKU list |
| startDate |
string |
no |
Stats window start, YYYY-MM-DD; defaults to one year ago |
| endDate |
string |
no |
Stats window end, YYYY-MM-DD; defaults to yesterday, cannot be today or future |
At least one of keyword / productIds must be supplied. The endpoint returns at most ~36 records in a single call (an upstream-acknowledged cap), and there are no pagination / sort / filter inputs — narrow via keyword/SKU and date window instead.
Calling the Tool
- API Endpoint:
/mpstats/ozon/productSearch (full parameters/responses/error codes in references/api.md)
- Python Script:
python scripts/ozon_product_search.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-product-search-<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. Keyword search — sneakers in Russian
{"keyword": "кроссовки"}
2. SKU batch reverse lookup
{"productIds": [1786874757, 151623766, 142257239]}
3. Dated window for period-specific search
{"keyword": "футболка", "startDate": "2025-02-01", "endDate": "2025-02-28"}
How to Chain with Other Ozon Skills
- Keyword → drill-down: Search → pick
productId → call ecommerce-ozon-product-detail (batch metrics) or ecommerce-ozon-product-trend (single-SKU time-series).
- Brand drill-down: For brand-scoped product listings with full metrics, call
ecommerce-ozon-brand-products directly with the brand display name.
- Seller drill-down: For seller-scoped product listings with full metrics, call
ecommerce-ozon-seller-products directly with the seller ID.
Display Rules
- Lead with identity columns — this endpoint returns only 10 identity fields. Headline the table with
productId, title, brand, sellerName; include productPageUrl / imageUrl as secondary columns. Do not add price / sales / rating / stock columns — they are not in the response.
- Russian titles — preserve the original Russian title; optionally offer an English or Chinese translation on user request.
- Result count — the endpoint returns at most ~36 records and has no pagination. If
total exceeds what was returned, suggest narrowing the keyword/SKU set or date window rather than asking for more pages.
- Route to drill-downs for any business metric — business metrics are never in this response. If the user asks for sales / price / rating / stock / turnover / ranking, always route to
ecommerce-ozon-product-detail (single or batch) or the *-products drill-downs. Do not fabricate or estimate from identity fields.
- Error handling — when
code / errcode is non-200, explain the reason from msg / errmsg and suggest adjusting inputs (supply at least one of keyword / productIds, use Russian, narrow date range).
Important Limitations
- At least one of
keyword / productIds required — empty payloads are rejected by the tool's business rule even though required is empty in inputSchema.
- Russian / Latin only — non-Russian keywords generally return empty results.
- Date range —
endDate cannot be today or a future date; data is T-1.
- Hard result cap — upstream returns at most ~36 records per call and exposes no pagination/sort/filter. Cannot be bypassed; narrow the query instead.
- No business metrics — price / sales / rating / stock / turnover / ranking are not in this endpoint's response at all. The backend
OzonProductSearchItem DTO declares exactly 10 identity fields. This is a hard contract, not a sparse payload — do not assume missing metric fields could be filled in by re-calling with different dates.
User Expression & Scenario Quick Reference
Applicable — Ozon product discovery / identity resolution:
| User Says |
Scenario |
| "Search Ozon for sneakers / headphones / ..." |
Keyword discovery |
| "I have a list of Ozon SKUs, pull their names" |
Batch SKU reverse lookup |
| "Translate this keyword to Russian and search Ozon" |
Cross-language discovery |
Not applicable — Needs beyond discovery:
- Reliable per-SKU sales / revenue / stock / rating metrics → use
ecommerce-ozon-product-detail (batch card) or the *-products drill-down skills.
- Brand-scoped product listing → use
ecommerce-ozon-brand-products directly.
- Seller-scoped product listing → use
ecommerce-ozon-seller-products directly.
- Time-series trend for a single SKU → use
ecommerce-ozon-product-trend.
- Wildberries or other non-Ozon Russian marketplaces → not covered here.
- Category-tree navigation / Russian category path lookup → use
ecommerce-ozon-category-products with a known path.
Boundary judgment: If the user wants to find or identify Ozon products, start here. If they already have an ID or a dimension (brand / category / seller) and want metrics under it, go to the corresponding drill-down skill directly.