Etsy Store 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
REST API and MCP service documentation generated from server-side API definitions. Responses use the shared code, msg, and data envelope.
Search Etsy stores by keyword, category, country, status, ratings, sales, favorites, reviews, and opening date with pagination and sorting.
https://api.nexscope.ai/api/skill-api/v1/skills/etsy-store-query/runnexscope_etsy_store_queryAll run endpoints require a user API key. Send it as a bearer token in the Authorization header.
Authorization: Bearer nk-xxxxxxxxxxxxxxxxxhttps://api.nexscope.ai/api/skill-api/v1/skills/etsy-store-query/runAll filters are optional. Use searchKey to query a specific store name or URL.
| Slug | etsy-store-query |
| Headers | Authorization: Bearer nk-...Content-Type: application/json |
| Request body | API-specific JSON object. |
| Response body | Platform envelope: code, msg, data, ts, time, cost, traceId. Inspect data.status for asynchronous completion. |
| Code | Description |
|---|---|
| 200 | HTTP request completed. Check JSON code; only 0 indicates business success or acceptance. |
| 400 | Request JSON or required API parameters are invalid. |
| 401 | API key is missing, invalid, or cannot be matched to a user. |
| 5xx | API execution or upstream service failed. |
Replace YOUR_API_KEY, then run this command in your terminal.
curl -X POST 'https://api.nexscope.ai/api/skill-api/v1/skills/etsy-store-query/run' \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"pageSize": 20,
"page": 1,
"searchKey": "Lewshop1"
}'https://api.nexscope.ai/api/skill-api/v1/skills/etsy-store-query/runSend a JSON request to execute this API and receive the documented response payload.
| Method | POST |
| Path | https://api.nexscope.ai/api/skill-api/v1/skills/etsy-store-query/run |
| Auth | Bearer API key |
| Content-Type | application/json |
| 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 |
{
"pageSize": 20,
"page": 1,
"searchKey": "Lewshop1"
}Platform response envelope. code 0 indicates success or acceptance; data contains the business result.
{
"data": {
"total": 1,
"storeNum": 1,
"stores": [
{
"storeId": "123456",
"storeName": "Lewshop1",
"storeUrl": "https://www.etsy.com/shop/Lewshop1",
"country": [],
"category": [],
"salesTotal": 1,
"salesWeekly": 1,
"reviews": 1,
"favorites": 1,
"rating": 4.8,
"status": 1
}
],
"columns": [],
"costToken": 3600
},
"code": 0,
"msg": null,
"ts": "0",
"time": "2026-01-01 00:00:00",
"cost": "-1",
"traceId": null
}| Name | Type | Required | Description |
|---|---|---|---|
data | any | required | Data value used by this API operation. |
code | integer | required | 0 means accepted or successful; nonzero is a platform error. |
msg | string | null | required | Msg value used by this API operation. |
ts |
| Code | Description |
|---|---|
| 200 | HTTP request completed. Check JSON code; only 0 indicates business success or acceptance. |
| 400 | Request JSON or required API parameters are invalid. |
| 401 | API key is missing, invalid, or cannot be matched to a user. |
| 5xx | API execution or upstream service failed. |
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.
Connect remote agents through the standard MCP 2025-11-25 Streamable HTTP endpoint. Use OAuth 2.1 Authorization Code with PKCE, or an API key for compatibility.
POST https://api.nexscope.ai/api/skill-api/v2/mcp
MCP-Protocol-Version: 2025-11-25
Content-Type: application/jsonOAuth clients request the mcp:tools scope. The endpoint's 401 response advertises protected-resource metadata for authorization discovery.
{
"jsonrpc": "2.0",
"id": "tool-call-1",
"method": "tools/call",
"params": {
"name": "nexscope_etsy_store_query",
"arguments": {
"pageSize": 20,
"page": 1,
"searchKey": "Lewshop1"
}
}
}Existing API-key clients can continue using the compatibility endpoint. New integrations should use MCP v2.
GET / POST /api/skill-api/v1/mcpExecute the current API with your API key and JSON payload.
Send a real request with the same contract shown in the reference.
https://api.nexscope.ai/api/skill-api/v1/skills/etsy-store-query/runnexscope_etsy_store_querycurl -X POST \
https://api.nexscope.ai/api/skill-api/v1/skills/etsy-store-query/run \
-H "Authorization: Bearer nk-..." \
-H "Content-Type: application/json" \
-d '{ "pageSize": 20, "page": 1, "searchKey": "Lewshop1" }'No response yet. Run the request to see the response here.
Retrieve public Etsy listing details from a validated marketplace URL for product, pricing, shop, and competitive research workflows.
Find Etsy category IDs by category name, ID, or parent ID for product and store filtering. Review request and response fields.
Filter Etsy products by keyword, URL, price, sales, favorites, reviews, listing date, category, product type, and marketplace badges.
| 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 |
string |
| required |
Epoch milliseconds. |
time | string | required | Server local time: yyyy-MM-dd HH:mm:ss. |
cost | string | required | Elapsed milliseconds, never credits; -1 outside web requests. |
traceId | string | null | required | Trace id value used by this API operation. |
| Name | Type | Required | Description |
|---|---|---|---|
data | object | required | Data value used by this API operation. |
data.total | integer | optional | Records returned on the current page. Example: 1 |
data.storeNum | integer | optional | Total matching stores. Example: 1 |
data.stores | array | optional | Etsy stores. Example: [] |
data.stores[] | object | required | Item in data stores. |
data.stores[].storeId | string | optional | Store identifier. Example: 123456 |
data.stores[].storeName | string | optional | Store name. Example: Lewshop1 |
data.stores[].storeUrl | string | optional | Etsy store URL. Example: https://www.etsy.com/shop/Lewshop1 |
data.stores[].logoUrl | string | optional | Store avatar URL. Example: null |
data.stores[].shopWebsite | string | optional | Store website or external link. Example: null |
data.stores[].startAt | string | optional | Store opening date. Example: null |
data.stores[].country | array | optional | Store countries or regions. Example: [] |
data.stores[].category | array | optional | Primary categories. Example: [] |
data.stores[].productCount | integer | optional | Store product count. Example: null |
data.stores[].salesTotal | integer | optional | Total sales. Example: 1 |
data.stores[].salesWeekly | integer | optional | Weekly sales. Example: 1 |
data.stores[].reviews | integer | optional | Review count. Example: 1 |
data.stores[].reviewsWeekly | integer | optional | Weekly new review count. Example: null |
data.stores[].favorites | integer | optional | Favorite count. Example: 1 |
data.stores[].favoritesWeekly | integer | optional | Weekly new favorite count. Example: null |
data.stores[].rating | number | optional | Store rating. Example: 4.8 |
data.stores[].isRaving | integer | optional | Raving store indicator: 1 means yes. Example: null |
data.stores[].isStar | integer | optional | Star store indicator: 1 means yes. Example: null |
data.stores[].status | integer | optional | Store status. Example: 1 |
data.sourceTool | string | optional | Tool type: ehunt. Example: null |
data.sourceType | string | optional | Source type: etsy. Example: null |
data.title | string | optional | Response title. Example: null |
data.type | string | optional | Render style. Example: null |
data.columns | array | optional | Provider rendering columns. Example: [] |
data.costToken | integer | optional | Provider-reported token cost. Example: 3600 |
data.costTime | integer | optional | Execution time reported by the upstream provider. Example: null |
data.page | integer | optional | Current page returned by the upstream provider. Example: null |
data.pageSize | integer | optional | Page size returned by the upstream provider. Example: null |
data.pageItemCount | integer | optional | Item count on the current page returned by the upstream provider. Example: null |
data.totalPage | integer | optional | Total page count returned by the upstream provider. Example: null |
data.dataSnapshotMonth | string | optional | Data snapshot month returned by the upstream provider. Example: null |
| Name | Type | Required | Description |
|---|---|---|---|
data | null | required | Data value used by this API operation. |