Etsy Product Research
Etsy Product Research: etsy/product Query API
Etsy Product Research: etsy/product Query API.
MCP tool name
nexscope_data_eh_etsy_product_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-product-query-1",
"method": "tools/call",
"params": {
"name": "nexscope_data_eh_etsy_product_query",
"arguments": {
"currencyCode": "USD",
"page": 1,
"pageSize": 20,
"searchKey": "poster"
}
}
}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 favorites (starting), together with the ending value, form the upstream favorites Example: {} |
beginFavoritesWeekly | integer | optional | Number of new favorites per week (start), which together with the end value form the upstream favorites_weekly Example: {} |
beginPrice | number | optional | Price (start), together with the end price, form the upstream price (such as 20~100); when filling in only one side, the upstream is start~ or ~end Example: {} |
beginReviews | integer | optional | The number of reviews (starting), which together with the end value form the upstream reviews Example: {} |
beginReviewsWeekly | integer | optional | Number of new comments per week (start), which together with the end value form the upstream reviews_weekly Example: {} |
beginSales | integer | optional | Total sales (starting), which together with the ending value form the upstream sales Example: {} |
beginSalesWeekly | integer | optional | Weekly sales volume (start), together with the end value, form the upstream sales_weekly (such as 1~100) Example: {} |
category | string | optional | Product classification ID (single product category), please see the product classification interface for details Example: {} |
country | string | optional | Shipping country Example: {} |
currencyCode | string | optional | Currency code, default `USD` Example: {} |
endFavorites | integer | optional | Number of collections (end) Example: {} |
endFavoritesWeekly | integer | optional | Number of new favorites per week (end) Example: {} |
endPrice | number | optional | Price (end), which together with the starting price forms the upstream price Example: {} |
endReviews | integer | optional | Number of comments (end) Example: {} |
endReviewsWeekly | integer | optional | Number of new comments per week (end) Example: {} |
endSales | integer | optional | Total sales (end) Example: {} |
endSalesWeekly | integer | optional | Weekly sales (end) Example: {} |
isBestsell | integer | optional | Is it a best-selling product? Example: {} |
isPick | integer | optional | Whether to Pick the product Example: {} |
isRaving | integer | optional | Whether Raving product Example: {} |
listedTime | string | optional | The shelf time is no earlier than this date (YYYY-MM-DD) Example: {} |
page | integer | optional | Page number (starting from 1) Example: {} |
pageSize | integer | optional | Number of entries per page, maximum 100, recommended not to exceed 50 Example: {} |
productType | string | optional | Product type, multiple commas separated: 1=Handmade 2=Vintage 3=Digital 4=Customized 9=Other Example: {} |
searchKey | string | optional | Search keywords or Etsy product URLs Example: {} |
sortBy | integer | optional | Sorting field (corresponding to upstream sort_by, value 1~6) Example: {} |
sortDesc | integer | optional | Sorting direction (corresponds to upstream `desc`). Schema example: Descending `1`, Ascending `2` Example: {} |
status | integer | optional | Product status (example: 1 on the shelves, 0 off the shelves) Example: {} |
Response fields
Treat structuredContent as the programmatic API response payload.
| Name | Type | Required | Description |
|---|---|---|---|
total | integer | optional | Number of records (this page returns the number of records to facilitate alignment with the length of the list) Example: {} |
sourceType | string | optional | Source type: etsy Example: {} |
columns | array | optional | Rendered columns Example: {} |
costToken | integer | optional | Token consumption (estimated based on the number of items returned on this page) Example: {} |
productNum | integer | optional | Total number of eligible products (upstream product_num) Example: {} |
title | string | optional | Title Example: {} |
type | string | optional | Rendering style Example: {} |
products | array | optional | Etsy product listings Example: {} |
category | string | optional | Category name Example: {} |
favorites | integer | optional | Number of collections Example: {} |
favoritesWeekly | integer | optional | Number of new favorites per week Example: {} |
imageUrl | string | optional | Main image URL Example: {} |
isBestsell | integer | optional | Best seller or not: 1=yes Example: {} |
isPick | integer | optional | Whether to Pick: 1=Yes Example: {} |
isRaving | integer | optional | Whether Raving: 1=Yes Example: {} |
price | number | optional | price Example: {} |
productUrl | string | optional | Product link Example: {} |
releaseTime | string | optional | Shelf/release time 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: {} |
shipsFrom | string | optional | Shipping country Example: {} |
status | integer | optional | Product status: 1=on the shelves, 0=off the shelves Example: {} |
storeName | string | optional | Store name Example: {} |
tags | string | optional | tag Example: {} |
title | string | optional | Product title Example: {} |
Examples
Example arguments
{
"currencyCode": "USD",
"page": 1,
"pageSize": 20,
"searchKey": "poster"
}Example structuredContent
{
"code": 0,
"cost": "-1",
"data": {},
"msg": null,
"time": "2026-01-01 00:00:00",
"traceId": null,
"ts": "0"
}