Etsy Marketplace

Etsy Product Query MCP Tool

Query Etsy products with multi-dimensional filters (keyword/URL, price, sales, favorites, reviews, listing date, category, handmade/vintage types, Pick/Bestseller/Raving tags).

MCP tool name
nexscope_etsy_product_query
Equivalent REST API path
https://claw-callback.nexscope.ai/api/skill-api/v1/skills/etsy-product-query/run
JSON-RPC method
tools/call

Authentication

Send the user API key as a bearer token on every MCP JSON-RPC request.

Authorization: Bearer nk_xxxxxxxxxxxxxxxxx

If authentication is missing or invalid, ask the user to open API Access and copy a valid key before calling this tool.

Call this MCP tool

Use tools/call with the MCP tool name below. The arguments object should match the table on this page.

{
  "jsonrpc": "2.0",
  "id": "etsy-product-query-1",
  "method": "tools/call",
  "params": {
    "name": "nexscope_etsy_product_query",
    "arguments": {
      "pageSize": 10,
      "searchKey": "phone case",
      "page": 1
    }
  }
}
REST API equivalent
POST /api/skill-api/v1/runhttps://claw-callback.nexscope.ai/api/skill-api/v1/skills/etsy-product-query/run
Canonical detail URL
https://www.nexscope.ai/mcp-map/etsy-product-query

Arguments

NameTypeRequiredMeaning
beginFavoritesintegeroptional
Favorite count (start), combined with end value to form the upstream favorites range
Example: 1
beginFavoritesWeeklyintegeroptional
Weekly new favorites (start), combined with end value to form the upstream favorites_weekly range
Example: 1
beginPricenumberoptional
Price (start), combined with end price to form the upstream price range (e.g., 20~100). When only one side is provided, the upstream returns start~ or ~end
Example: 1
beginReviewsintegeroptional
Review count (start), combined with end value to form the upstream reviews range
Example: 1
beginReviewsWeeklyintegeroptional
Weekly new reviews (start), combined with end value to form the upstream reviews_weekly range
Example: 1
beginSalesintegeroptional
Total sales (start), combined with end value to form the upstream sales range
Example: 1
beginSalesWeeklyintegeroptional
Weekly sales (start), combined with end value to form the upstream sales_weekly range (e.g., 1~100)
Example: 1
categorystringoptional
Product category ID (single category), see the Category Query API
Example: {}
countrystringoptional
Shipping country
Example: {}
currencyCodestringoptional
Currency code
Example: {}
endFavoritesintegeroptional
Favorite count (end)
Example: 1
endFavoritesWeeklyintegeroptional
Weekly new favorites (end)
Example: 1
endPricenumberoptional
Price (end), combined with start price to form the upstream price range
Example: 1
endReviewsintegeroptional
Review count (end)
Example: 1
endReviewsWeeklyintegeroptional
Weekly new reviews (end)
Example: 1
endSalesintegeroptional
Total sales (end)
Example: 1
endSalesWeeklyintegeroptional
Weekly sales (end)
Example: 1
isBestsellintegeroptional
Whether the product is a bestseller
Example: 1
isPickintegeroptional
Whether the product is a Pick item
Example: 1
isRavingintegeroptional
Whether the product is a Raving item
Example: 1
listedTimestringoptional
Listing time no earlier than this date (YYYY-MM-DD)
Example: {}
pageintegeroptional
Page number (starting from 1)
Example: 1
pageSizeintegeroptional
Items per page, max 100, recommended not to exceed 50
Example: 10
productTypestringoptional
Product type, comma-separated for multiple: 1=Handmade 2=Vintage 3=Digital 4=Custom 9=Other
Example: {}
searchKeystringoptional
Search keyword or Etsy product URL
Example: {}
sortByintegeroptional
Sort field (corresponds to upstream sort_by, values 1~6)
Example: 1
sortDescintegeroptional
Sort direction (corresponds to upstream desc). Schema example: descending 1, ascending 2 (encoding differs from store query's sortDesc)
Example: 1
statusintegeroptional
Product status (example: 1=active, 0=inactive)
Example: 1

Response fields

Treat structuredContent as the programmatic API response payload.

NameTypeRequiredMeaning
totalintegeroptional
Record count (number of records returned on this page, for alignment with list length)
Example: 1
sourceToolstringoptional
Tool type: ehunt
Example: {}
sourceTypestringoptional
Source type: etsy
Example: {}
columnsarrayoptional
Rendered columns
Example: []
costTokenintegeroptional
Token consumption (estimated based on records returned on this page)
Example: 1
productNumintegeroptional
Total number of matching products (upstream product_num)
Example: 1
titlestringoptional
Title
Example: {}
typestringoptional
Render style
Example: {}
productsarrayoptional
Etsy product list
Example: []
products[].categorystringoptional
Category name
Example: {}
products[].favoritesintegeroptional
Favorite count
Example: 1
products[].favoritesWeeklyintegeroptional
Weekly new favorites
Example: 1
products[].imageUrlstringoptional
Main image URL
Example: https://example.com/image.jpg
products[].isBestsellintegeroptional
Whether bestseller: 1=Yes
Example: 1
products[].isPickintegeroptional
Whether Pick: 1=Yes
Example: 1
products[].isRavingintegeroptional
Whether Raving: 1=Yes
Example: 1
products[].pricenumberoptional
Price
Example: 1
products[].productUrlstringoptional
Product link
Example: https://example.com/image.jpg
products[].releaseTimestringoptional
Listing/release time
Example: {}
products[].reviewsintegeroptional
Review count
Example: 1
products[].reviewsWeeklyintegeroptional
Weekly new reviews
Example: 1
products[].salesTotalintegeroptional
Total sales
Example: 1
products[].salesWeeklyintegeroptional
Weekly sales
Example: 1
products[].shipsFromstringoptional
Shipping country
Example: {}
products[].statusintegeroptional
Product status: 1=active, 0=inactive
Example: 1
products[].storeNamestringoptional
Store name
Example: {}
products[].tagsstringoptional
Tags
Example: {}
products[].titlestringoptional
Product title
Example: {}
errcodeintegeroptional
Upstream status code returned by the provider.
Example: {}
errmsgstringoptional
Upstream status message returned by the provider.
Example: {}
codestringoptional
Provider-specific status code.
Example: {}
msgstringoptional
Provider-specific status message.
Example: {}
messagestringoptional
Provider-specific message.
Example: {}
costTimeintegeroptional
Execution time reported by the upstream provider.
Example: {}
pageintegeroptional
Current page returned by the upstream provider.
Example: {}
pageSizeintegeroptional
Page size returned by the upstream provider.
Example: {}
pageItemCountintegeroptional
Item count on the current page returned by the upstream provider.
Example: {}
totalPageintegeroptional
Total page count returned by the upstream provider.
Example: {}
dataSnapshotMonthstringoptional
Data snapshot month returned by the upstream provider.
Example: {}

Examples

Example arguments

{
  "pageSize": 10,
  "searchKey": "phone case",
  "page": 1
}

Example structuredContent

{
  "total": 1,
  "columns": [],
  "costToken": 1,
  "productNum": 1,
  "products": [
    {
      "favorites": 1,
      "favoritesWeekly": 1,
      "imageUrl": "https://example.com/image.jpg",
      "isBestsell": 1,
      "isPick": 1,
      "isRaving": 1,
      "price": 1,
      "productUrl": "https://example.com/image.jpg",
      "reviews": 1,
      "reviewsWeekly": 1,
      "salesTotal": 1,
      "salesWeekly": 1,
      "status": 1
    }
  ]
}