Ozon Intelligence SR
Ozon Keyword Mining
Expand Ozon and Wildberries seed keywords using search volume, growth, competition, price, relevance, density, and conversion. Available via REST API or MCP.
MCP tool name
nexscope_ozon_keyword_miningMCP endpoint
https://api.nexscope.ai/mcpJSON-RPC method
tools/callAuthentication
Use OAuth 2.1 Authorization Code with PKCE and the mcp:tools scope. API keys remain supported as a compatibility option.
Authorization: Bearer nk-xxxxxxxxxxxxxxxxxIf authentication fails, ask the user to open API Access and copy a valid key.
Call this MCP tool
Initialize an MCP 2025-11-25 Streamable HTTP session at https://api.nexscope.ai/mcp, then use tools/call.
{
"jsonrpc": "2.0",
"id": "ozon-keyword-mining-1",
"method": "tools/call",
"params": {
"name": "nexscope_ozon_keyword_mining",
"arguments": {
"excludeKeywords": [],
"includeKeywords": [],
"keyword": "phone case",
"matchType": 1,
"page": {
"page": 1,
"pageSize": 10
},
"uId": "example-id"
}
}
}MCP 2025-11-25 · Streamable HTTPProgress is delivered on the original POST SSE response. GET SSE carries notifications; reconnecting must query existing asynchronous work rather than submit again.
Arguments
| Name | Type | Required | Description |
|---|---|---|---|
keyword | string | required | Seed keyword, mining expands around this term (maxLength 1000) Example: phone case |
page | object | required | Pagination & sorting: {page, pageSize, orders[]} Example: {
"page": 1,
"pageSize": 10
} |
page.page | integer | optional | Page number, starting from 1, default 1 Example: 1 |
page.pageSize | integer | optional | Items per page, default 20 Example: 1 |
page.orders | array | optional | Sort rules, elements {field, direction}; direction takes DESC (descending) / ASC (ascending) Example: [] |
matchType | integer | optional | Keyword match mode: 0 exact, 1 fuzzy Example: 1 |
includeKeywords | array | optional | Include keyword array (max 1000), used to further narrow down / specify required words on top of the seed term Example: [] |
excludeKeywords | array | optional | Exclude keyword array (max 1000), used to remove irrelevant terms Example: [] |
wordCount | string | optional | Keyword word count range Example: {} |
searchVolume | string | optional | Search volume range Example: {} |
searchChange30 | string | optional | 30-day search change range Example: {} |
productViews | string | optional | Product views range Example: {} |
products | string | optional | Product count range Example: {} |
sellers | string | optional | Seller count range Example: {} |
price | string | optional | Price range Example: {} |
marketSpace | string | optional | Market space range Example: {} |
conversionSharing | string | optional | Conversion concentration range Example: {} |
relevancy | string | optional | Relevance range (degree of relevance to the seed keyword) Example: {} |
uniqQueriesWCa | string | optional | Add-to-cart count range Example: {} |
ca | string | optional | Add-to-cart conversion rate range Example: {} |
titleDensity | string | optional | Title density range Example: {} |
adRivalCount | string | optional | Ad competitor count range Example: {} |
uId | string | optional | User ID Example: example-id |
memberId | string | optional | Member ID (a unique member identifier; data is attributed to memberId) Example: example-id |
Response fields
Treat structuredContent as the programmatic API response payload.
| Name | Type | Required | Description |
|---|---|---|---|
code | string | optional | Return code, `"200"` indicates success; returned when successful. Example: {} |
errcode | integer | optional | Error code, `200` indicates success; only this field may be returned when there is a business error. Example: {} |
msg | string | optional | Message; Success was `ok`. Example: {} |
errmsg | string | optional | Error message; success is `ok`, business error is a reason description. Example: {} |
total | integer | optional | Total number of records. Example: {} |
data | array | optional | Keyword mining data, element fields are shown in the table below. Example: {} |
columns | array | optional | Column definition, elements containing `field`, `title`, `cellType`, `sortable`, `filterable`. Example: {} |
costTime | integer | optional | The interface consumes time in milliseconds. Example: {} |
costToken | integer | optional | The number of tokens consumed. Example: {} |
type | string | optional | Response display type, such as `tableListWorkbenches`. Example: {} |
query | string | optional | Keywords, original Russian text. Example: {} |
queryCn | string | optional | Keywords Chinese translation. Example: {} |
platform | integer | optional | Platform: `0` Ozon, `1` Wildberries. Example: {} |
searchVolume | integer | optional | Monthly search popularity. Example: {} |
count30GrowthRate | number | optional | Monthly search growth, percentage, can be negative. Example: {} |
productCount | integer | optional | Number of items, some rows may be missing. Example: {} |
competingProducts | integer | optional | Number of competing products. Example: {} |
sellers | integer | optional | Number of sellers. Example: {} |
avgPrice | number | optional | Average price. Example: {} |
itemsViews | number | optional | Product visibility. Example: {} |
viewSharing | number | optional | Browse concentration, percentage. Example: {} |
conversionSharing | number | optional | Conversion concentration, percentage. Example: {} |
marketSpace | number | optional | market space. Example: {} |
returnCancellationRate | number | optional | Return cancellation rate, percentage. Example: {} |
uniqQueriesWCa | integer | optional | Number of additional purchases. Example: {} |
ca | number | optional | Add-to-purchase conversion rate, percentage. Example: {} |
relevancy | number | optional | Relevance to seed words. Example: {} |
titleDensity | number | optional | Title Density. Example: {} |
wordCount | integer | optional | word count. Example: {} |
categories | array | optional | Array of category IDs. Example: {} |
categoryInfos | array | optional | Category information; actually measured in `data[*]`, it is usually not returned. The structure is shown in the table below. Example: {} |
products | array | optional | Top product data, element fields are shown in the table below. Example: {} |
id | string | optional | Record ID. Example: {} |
ozonId | integer | optional | Ozon product ID. Example: {} |
sku | integer | optional | SKU ID。 Example: {} |
title | string | optional | Product title, Russian. Example: {} |
imageUrl | string | optional | Main image URL. Example: {} |
advert | integer | optional | Advertising logo: `0` / `1`. Example: {} |
titleCn | string | optional | Category Chinese name. Example: {} |
titleEn | string | optional | Category English name. Example: {} |
titleRu | string | optional | Category Russian name. Example: {} |
cnTitlePath | string | optional | Chinese category path. Example: {} |
enTitlePath | string | optional | English category path. Example: {} |
titlePath | string | optional | Russian category path. Example: {} |
id | string | optional | Category ID. Example: {} |
crossBorderSellable | boolean | optional | Whether it can be sold across borders. Example: {} |
Examples
Example arguments
{
"excludeKeywords": [],
"includeKeywords": [],
"keyword": "phone case",
"matchType": 1,
"page": {
"page": 1,
"pageSize": 10
},
"uId": "example-id"
}Example structuredContent
{}