Nexscope

Etsy Product Query API

REST API and MCP service documentation generated from server-side API definitions. Responses use the shared code, msg, and data envelope.

API selector
Etsy Marketplace

API overview

Filter Etsy products by keyword, URL, price, sales, favorites, reviews, listing date, category, product type, and marketplace badges.

Try this API
Endpoint
https://api.nexscope.ai/api/skill-api/v1/skills/etsy-product-query/run
MCP method
nexscope_etsy_product_query

Authentication

All run endpoints require a user API key. Send it as a bearer token in the Authorization header.

Authorization: Bearer nk-xxxxxxxxxxxxxxxxx
Missing or invalid API keys return an authentication error. Manage keys from .
POSThttps://api.nexscope.ai/api/skill-api/v1/skills/etsy-product-query/run

Run an API

Request parameters documented by ecommerce.etsy-product-query.

Slugetsy-product-query
HeadersAuthorization: Bearer nk-...
Content-Type: application/json
Request bodyAPI-specific JSON object.
Response bodyPlatform envelope: code, msg, data, ts, time, cost, traceId. Inspect data.status for asynchronous completion.

Status codes

CodeDescription
200HTTP request completed. Check JSON code; only 0 indicates business success or acceptance.
400Request JSON or required API parameters are invalid.
401API key is missing, invalid, or cannot be matched to a user.
5xxAPI execution or upstream service failed.

Example request

curl -X POST https://api.nexscope.ai/api/skill-api/v1/skills/etsy-product-query/run \
  -H "Authorization: Bearer nk-xxxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{   "searchKey": "phone case",   "pageSize": 10,   "page": 1 }'
All categories/ Etsy Marketplace
POSThttps://api.nexscope.ai/api/skill-api/v1/skills/etsy-product-query/run

Run this API

Send a JSON request to execute this API and receive the documented response payload.

Endpoint

MethodPOST
Pathhttps://api.nexscope.ai/api/skill-api/v1/skills/etsy-product-query/run
AuthBearer API key
Content-Typeapplication/json

Request body

NameTypeRequiredDescription
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
countrystringoptional
Shipping country
currencyCodestringoptional
Currency code
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)
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
searchKeystringoptional
Search keyword or Etsy product URL
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

Request example

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

Response body

NameTypeRequiredDescription
dataanyrequired
Data value used by this API operation.
codeintegerrequired
0 means accepted or successful; nonzero is a platform error.
msgstring | nullrequired
Msg value used by this API operation.
tsstringrequired
Epoch milliseconds.
timestringrequired
Server local time: yyyy-MM-dd HH:mm:ss.
coststringrequired
Elapsed milliseconds, never credits; -1 outside web requests.
traceIdstring | nullrequired
Trace id value used by this API operation.

Any of option 1

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

Any of option 2

NameTypeRequiredDescription
datanullrequired
Data value used by this API operation.

Response example

Platform response envelope. code 0 indicates success or acceptance; data contains the business result.

{
  "data": {
    "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
      }
    ]
  },
  "code": 0,
  "msg": null,
  "ts": "0",
  "time": "2026-01-01 00:00:00",
  "cost": "-1",
  "traceId": null
}

Responses

CodeDescription
200HTTP request completed. Check JSON code; only 0 indicates business success or acceptance.
400Request JSON or required API parameters are invalid.
401API key is missing, invalid, or cannot be matched to a user.
5xxAPI execution or upstream service failed.

Data source, freshness, and limitations

Source, freshness, coverage, rate limits, and estimation notes are not specified in this API definition unless they appear in the request or response field documentation above. Do not assume official marketplace data or real-time freshness when it is not explicitly documented.

Related APIs

MCP

Use the MCP endpoint when an agent needs to discover and call API tools with JSON-RPC.

GET /api/skill-api/v1/mcp
POST /api/skill-api/v1/mcp
Authorization: Bearer nk-xxxxxxxxxxxxxxxxx
Content-Type: application/json

Call a tool

{
  "jsonrpc": "2.0",
  "id": "tool-call-1",
  "method": "tools/call",
  "params": {
    "name": "nexscope_etsy_product_query",
    "arguments": {
      "searchKey": "phone case",
      "pageSize": 10,
      "page": 1
    }
  }
}

Online test

Execute the current API with your API key and JSON payload.

25 credits / callAPI usage records

Try it

Send a real request with the same contract shown in the reference.

Endpoint
https://api.nexscope.ai/api/skill-api/v1/skills/etsy-product-query/run
MCP method
nexscope_etsy_product_query
cURL
curl -X POST \
  https://api.nexscope.ai/api/skill-api/v1/skills/etsy-product-query/run \
  -H "Authorization: Bearer nk-..." \
  -H "Content-Type: application/json" \
  -d '{ "searchKey": "phone case", "pageSize": 10, "page": 1 }'
Response
No response yet. Run the request to see the response here.