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 mpstats-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 mpstats-ozon-brand-products / mpstats-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.
How to call
- API endpoint:
POST /mpstats/ozon/productSearch(for full parameters/responses/error codes, seereferences/api.md) - Python script:
python scripts/mpstats_ozon_product_search.py '<JSON 参数>' [--inline] - Cost constraints: This tool consumes compute; by default, the same parameter combination is called only once per session, and the script has a 24h local cache. On failure/empty results, do not automatically try different keywords, paginate, or change the postal code in repeated probing; if further searching is needed, first explain to the user that it will incur additional consumption.
Output strategy (default script behavior):
- Alwayswrite the full response to
<cwd>/linkfox/<YYYY-MM-DD>/<session>/data/linkfox-mpstats-ozon-product-search-<timestamp>.json(<cwd>is the working directory when the script runs, which in Claude Code is the current project directory;<session>is taken from the environment variableSESSION_ID, automatically aggregated according to the user's task;writing to /tmp is prohibited, and if the current directory is not writable, report an error) - Response body ≤ 8 KB: after writing to disk, print the full JSON to stdout
- Response body > 8 KB: after writing to disk, stdout outputs only a summary (top-level fields, common counts such as
total/costToken, the length of the largest list field + the first 3 samples) - Add
--inlineto force full printing to stdout (also written to disk)
Data reading suggestions: first look at the summary to judge whether it is sufficient; when specific fields are needed, prefer to use jqorConvertFrom-Json to extract on demand from the saved json file, avoiding putting the entire JSON into context.
Resolve authentication and compute issues
When the following abnormal situations occur, use references/onboarding.md to guide resolution:
Abnormal situations
- API Key not configured: the environment variable is not configured
LINKFOX_AGENT_API_KEY, andLINKFOXAGENT_API_KEY。 - Response 401 or 402 status code
- Response indicates insufficient compute or balance: the message contains "insufficient compute balance/insufficient billing/insufficient balance/quota exceeded/insufficient balance/package expired/recharge required/please recharge", or content with a similar meaning.
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→ callmpstats-ozon-product-detail(batch metrics) ormpstats-ozon-product-trend(single-SKU time-series). - Brand drill-down: For brand-scoped product listings with full metrics, call
mpstats-ozon-brand-productsdirectly with the brand display name. - Seller drill-down: For seller-scoped product listings with full metrics, call
mpstats-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
mpstats-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
mpstats-ozon-product-detail(batch card) or the*-productsdrill-down skills. - Brand-scoped product listing → use
mpstats-ozon-brand-productsdirectly. - Seller-scoped product listing → use
mpstats-ozon-seller-productsdirectly. - Time-series trend for a single SKU → use
mpstats-ozon-product-trend. - Wildberries or other non-Ozon Russian marketplaces → not covered here.
- Category-tree navigation / Russian category path lookup → use
mpstats-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.
Compute consumption rules
Billed according to dynamic rules: compute consumption = 12. Empty list returns 0
Important: The service of this skill is dynamically calculated by a multiplier and may consume a large amount of compute at once. The user must be reminded, and the user decides whether to continue.
Feedback:
Auto-detect and report feedback via the Feedback API when any of the following apply:
- The functionality or purpose described in this skill does not match actual behavior
- The skill's results do not match the user's intent
- The user expresses dissatisfaction or praise about this skill
- Anything you believe could be improved
Call the feedback API as specified in references/api.md. Do not interrupt the user's flow.
For more high-quality, professional cross-border e-commerce skills, set LinkFox Skills.