Etsy Product Research
Etsy Product Research: etsy/store Query API
Etsy Product Research: etsy/store Query API.
MCP tool name
nexscope_data_eh_etsy_store_queryMCP 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": "data-eh-etsy-store-query-1",
"method": "tools/call",
"params": {
"name": "nexscope_data_eh_etsy_store_query",
"arguments": {
"country": "US",
"page": 1,
"pageSize": 20,
"searchKey": "ceramic"
}
}
}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 |
|---|---|---|---|
beginFavorites | integer | optional | The number of store collections (starting), and the ending value form the upstream favorites Example: {} |
beginFavoritesWeekly | integer | optional | The store adds new favorites in the week (start), which together with the end value form the upstream favorites_weekly Example: {} |
beginReviews | integer | optional | The number of store reviews (starting), which together with the ending value form the upstream reviews Example: {} |
beginReviewsWeekly | integer | optional | Added reviews for the store week (start), which together with the end value form the upstream reviews_weekly Example: {} |
beginSales | integer | optional | The total sales volume of the store (starting), and the ending value form the upstream sales Example: {} |
beginSalesWeekly | integer | optional | Store weekly sales (start), which together with the end value form the upstream sales_weekly, such as 10,100 Example: {} |
beginStoreOpenedAt | string | optional | The start of the store opening time interval (YYYY-MM-DD), and the end date form the upstream start_at, such as 2020-01-01~2023-01-01 Example: {} |
category | string | optional | Store main categories Example: {} |
country | string | optional | Store country Example: {} |
endFavorites | integer | optional | Number of store collections (end) Example: {} |
endFavoritesWeekly | integer | optional | Store Weekly Added Favorites (Ended) Example: {} |
endReviews | integer | optional | Number of store reviews (end) Example: {} |
endReviewsWeekly | integer | optional | New comments for store week (end) Example: {} |
endSales | integer | optional | Total store sales (end) Example: {} |
endSalesWeekly | integer | optional | Store weekly sales (end) Example: {} |
endStoreOpenedAt | string | optional | The store opening time interval ends (YYYY-MM-DD) Example: {} |
isRaving | integer | optional | Whether Raving Shop: 1=Yes Example: {} |
isStar | integer | optional | Whether to star the store: 1=Yes Example: {} |
page | integer | optional | Page number (starting from 1) Example: {} |
pageSize | integer | optional | Number of items per page, maximum 100 Example: {} |
searchKey | string | optional | Search keywords or store name, store URL Example: {} |
sortBy | integer | optional | Sorting field sort_by: 8=total sales, 9=weekly sales, 10=number of comments, 11=number of collections Example: {} |
sortDesc | integer | optional | Sorting direction (corresponding to upstream desc): 1=descending order, 0=ascending order Example: {} |
status | integer | optional | Store status: 1=active, 0=inactive Example: {} |
Response fields
Treat structuredContent as the programmatic API response payload.
| Name | Type | Required | Description |
|---|---|---|---|
total | integer | optional | Number of records (number of records returned on this page) Example: {} |
sourceType | string | optional | Source type: etsy Example: {} |
stores | array | optional | Store list Example: {} |
columns | array | optional | Rendered columns Example: {} |
costToken | integer | optional | Token consumption (estimated based on the number of items returned on this page) Example: {} |
storeNum | integer | optional | Total number of eligible stores (upstream store_num) Example: {} |
title | string | optional | Title Example: {} |
type | string | optional | Rendering style Example: {} |
category | array | optional | List of main categories Example: {} |
country | array | optional | Country list Example: {} |
favorites | integer | optional | Number of collections Example: {} |
favoritesWeekly | integer | optional | Number of new favorites per week Example: {} |
isRaving | integer | optional | Whether Raving: 1=Yes Example: {} |
isStar | integer | optional | Star or not: 1=Yes Example: {} |
logoUrl | string | optional | Store avatar URL Example: {} |
productCount | integer | optional | Store product quantity Example: {} |
rating | number | optional | Rating Example: {} |
reviews | integer | optional | Number of comments Example: {} |
reviewsWeekly | integer | optional | New comments per week Example: {} |
salesTotal | integer | optional | total sales Example: {} |
salesWeekly | integer | optional | Weekly sales Example: {} |
shopWebsite | string | optional | Store official website/external link Example: {} |
startAt | string | optional | Store opening date Example: {} |
status | integer | optional | Store status: 1=active, 0=inactive Example: {} |
storeId | string | optional | Store ID Example: {} |
storeName | string | optional | Store name Example: {} |
storeUrl | string | optional | Store link Example: {} |
Examples
Example arguments
{
"country": "US",
"page": 1,
"pageSize": 20,
"searchKey": "ceramic"
}Example structuredContent
{
"code": 0,
"cost": "-1",
"data": {},
"msg": null,
"time": "2026-01-01 00:00:00",
"traceId": null,
"ts": "0"
}