Etsy Product Research
Etsy Store Query
Search Etsy stores by keyword, category, country, status, ratings, sales, favorites, reviews, and opening date with pagination. Available via REST API or MCP.
MCP tool name
nexscope_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": "etsy-store-query-1",
"method": "tools/call",
"params": {
"name": "nexscope_etsy_store_query",
"arguments": {
"page": 1,
"pageSize": 20,
"searchKey": "Lewshop1"
}
}
}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 |
|---|---|---|---|
searchKey | string | optional | Store name, keyword, or Etsy store URL. Example: Lewshop1 |
category | string | optional | Primary store category. Example: Jewelry |
country | string | optional | Store country or region. Example: US |
status | integer | optional | Store status: 1 active, 0 inactive. Example: 1 |
isRaving | integer | optional | Raving store flag: 1 yes. Example: 1 |
isStar | integer | optional | Star store flag: 1 yes. Example: 1 |
beginFavorites | integer | optional | Minimum total favorites. Example: 0 |
endFavorites | integer | optional | Maximum total favorites. Example: 10000 |
beginFavoritesWeekly | integer | optional | Minimum weekly favorites. Example: 0 |
endFavoritesWeekly | integer | optional | Maximum weekly favorites. Example: 1000 |
beginReviews | integer | optional | Minimum total reviews. Example: 0 |
endReviews | integer | optional | Maximum total reviews. Example: 10000 |
beginReviewsWeekly | integer | optional | Minimum weekly reviews. Example: 0 |
endReviewsWeekly | integer | optional | Maximum weekly reviews. Example: 1000 |
beginSales | integer | optional | Minimum total sales. Example: 0 |
endSales | integer | optional | Maximum total sales. Example: 100000 |
beginSalesWeekly | integer | optional | Minimum weekly sales. Example: 0 |
endSalesWeekly | integer | optional | Maximum weekly sales. Example: 1000 |
beginStoreOpenedAt | string | optional | Opening date range start in YYYY-MM-DD format. Example: 2020-01-01 |
endStoreOpenedAt | string | optional | Opening date range end in YYYY-MM-DD format. Example: 2026-01-01 |
sortBy | integer | optional | Sort field: 8 total sales, 9 weekly sales, 10 reviews, 11 favorites. Example: 8 |
sortDesc | integer | optional | Sort direction: 1 descending, 0 ascending. Example: 1 |
page | integer | optional | Page number starting from 1. Example: 1 |
pageSize | integer | optional | Items per page from 1 to 100. Example: 20 |
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
{
"page": 1,
"pageSize": 20,
"searchKey": "Lewshop1"
}Example structuredContent
{}