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 inreferences/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 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. 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→ callecommerce-ozon-product-detail(batch metrics) orecommerce-ozon-product-trend(single-SKU time-series). - Brand drill-down: For brand-scoped product listings with full metrics, call
ecommerce-ozon-brand-productsdirectly with the brand display name. - Seller drill-down: For seller-scoped product listings with full metrics, call
ecommerce-ozon-seller-productsdirectly 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; includeproductPageUrl/imageUrlas 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
totalexceeds 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*-productsdrill-downs. Do not fabricate or estimate from identity fields. - Error handling — when
code/errcodeis non-200, explain the reason frommsg/errmsgand suggest adjusting inputs (supply at least one ofkeyword/productIds, use Russian, narrow date range).
Important Limitations
- At least one of
keyword/productIdsrequired — empty payloads are rejected by the tool's business rule even thoughrequiredis empty in inputSchema. - Russian / Latin only — non-Russian keywords generally return empty results.
- Date range —
endDatecannot 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
OzonProductSearchItemDTO 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*-productsdrill-down skills. - Brand-scoped product listing → use
ecommerce-ozon-brand-productsdirectly. - Seller-scoped product listing → use
ecommerce-ozon-seller-productsdirectly. - 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-productswith 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.