Shopify 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
REST API and MCP service documentation generated from server-side API definitions. Responses use the shared code, msg, and data envelope.
Filter Shopify store products by keyword, URL, price, weekly sales, listing date, ads, competition, supplier, and shipping country.
https://api.nexscope.ai/api/skill-api/v1/skills/shopify-product-query/runnexscope_shopify_product_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/shopify-product-query/runRequest parameters documented by ecommerce.shopify-product-query.
| Slug | shopify-product-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/shopify-product-query/run' \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"pageSize": 10,
"keyword": "phone case",
"page": 1
}'https://api.nexscope.ai/api/skill-api/v1/skills/shopify-product-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/shopify-product-query/run |
| Auth | Bearer API key |
| Content-Type | application/json |
| Name | Type | Required | Description |
|---|---|---|---|
searchKey | string | optional | Keyword or Shopify product/store URL |
priceMin | number | optional | Price range start (USD), combined with priceMax to form upstream price Example: 1 |
priceMax | number |
{
"pageSize": 10,
"keyword": "phone case",
"page": 1
}Platform response envelope. code 0 indicates success or acceptance; data contains the business result.
{
"data": {
"total": 1,
"productNum": 1,
"products": [
{
"productId": "example-id",
"previewImageUrl": "https://example.com/image.jpg",
"storeId": "example-id",
"shopId": "example-id"
}
],
"columns": []
},
"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_shopify_product_query",
"arguments": {
"pageSize": 10,
"keyword": "phone case",
"page": 1
}
}
}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/shopify-product-query/runnexscope_shopify_product_querycurl -X POST \
https://api.nexscope.ai/api/skill-api/v1/skills/shopify-product-query/run \
-H "Authorization: Bearer nk-..." \
-H "Content-Type: application/json" \
-d '{ "pageSize": 10, "keyword": "phone case", "page": 1 }'No response yet. Run the request to see the response here.
| optional |
Price range end (USD) Example: 1 |
salesWeeklyMin | integer | optional | Weekly sales range start Example: 1 |
salesWeeklyMax | integer | optional | Weekly sales range end Example: 1 |
publishedTimeBegin | string | optional | Listing date range start |
publishedTimeEnd | string | optional | Listing date range end |
facebookAd | integer | optional | Has Facebook ad: 1=Yes Example: 1 |
competitionMin | integer | optional | Competition (number of stores selling) range start Example: 1 |
competitionMax | integer | optional | Competition (number of stores selling) range end Example: 1 |
hasSupplier | integer | optional | Has supplier: 1=Yes, 0=No Example: 1 |
showDeleted | integer | optional | Show delisted products: 1=Yes, 0=No Example: 1 |
country | string | optional | Shipping country (two-letter country code, e.g., US) |
sortBy | integer | optional | Sort field (default 14=Weekly sales descending; also includes price/ad count/competition/revenue etc. values, see enumeration below) Example: 1 |
page | integer | optional | Page number (starting from 1) Example: 1 |
pageSize | integer | optional | Results per page, max 100, recommended not to exceed 50 Example: 1 |
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 | Number of results returned on this page Example: 1 |
data.productNum | integer | optional | Total number of matching products (upstream product_num) Example: 1 |
data.products | array | optional | Shopify product list Example: [] |
data.columns | array | optional | Columns for rendering Example: [] |
data.title | string | optional | Title (Shopify Product Query) Example: null |
data.sourceType | string | optional | Source type: shopify Example: null |
data.sourceTool | string | optional | Tool type: ehunt Example: null |
data.type | string | optional | Render style: tableListWorkbenches Example: null |
data.products[].productId | string | optional | Product ID Example: example-id |
data.products[].title | string | optional | Product title Example: null |
data.products[].productLink | string | optional | Product link Example: null |
data.products[].previewImageUrl | string | optional | Main image URL Example: https://example.com/image.jpg |
data.products[].country | string | optional | Shipping country Example: null |
data.products[].minPrice | string | optional | Minimum price Example: null |
data.products[].maxPrice | string | optional | Maximum price Example: null |
data.products[].storeId | string | optional | Store ID Example: example-id |
data.products[].shopId | string | optional | Shopify shop ID Example: example-id |
data.products[].storeLink | string | optional | Store link Example: null |
data.products[].storeRank | string | optional | Store rank Example: null |
data.products[].competitorCount | string | optional | Competition (number of stores selling) Example: null |
data.products[].facebookAdCount | string | optional | Facebook ad count Example: null |
data.products[].weekOrderCount | string | optional | Weekly order count (string) Example: null |
data.products[].weekRevenueCount | string | optional | Weekly revenue Example: null |
data.products[].weekRevenueGrowth | string | optional | Weekly revenue growth rate (%) Example: null |
data.products[].shelfTime | string | optional | Listing time Example: null |
data.products[].isDeleted | string | optional | Whether delisted: 0=Listed, 1=Delisted Example: null |
data.products[].isFavourite | string | optional | Whether favorited Example: null |
data.costToken | integer | optional | Token cost reported by the upstream provider. Example: null |
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. |