Amazon Broad Product Search
Find Amazon products by sales, price, ratings, and fulfillment.
Cost21 credits / call
POST ·
https://api.nexscope.ai/api/skill-api/v1/skills/amazon-broad-product-search/runMCP · nexscope_amazon_broad_product_searchChoose an integration method
Amazon Marketplace Intelligence
What this API does
Search and filter Amazon products by price, sales, BSR, margin, ratings, fulfillment, badges, and seller origin across multiple marketplaces.
Endpoint
https://api.nexscope.ai/api/skill-api/v1/skills/amazon-broad-product-search/runMCP method
nexscope_amazon_broad_product_searchStep 1 of 3 · Authenticate
Authentication
All run endpoints require a user API key. Send it as a bearer token in the Authorization header.
Authorization: Bearer nk-xxxxxxxxxxxxxxxxxMissing or invalid API keys return an authentication error. Manage keys from .
Step 2 of 3 · Send a request
POST
https://api.nexscope.ai/api/skill-api/v1/skills/amazon-broad-product-search/runRun an API
Request parameters documented by ecommerce.amazon-broad-product-search.
Example request
Replace YOUR_API_KEY, then run this command in your terminal.
curl -X POST 'https://api.nexscope.ai/api/skill-api/v1/skills/amazon-broad-product-search/run' \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"matchType": 1,
"keyword": "phone case",
"size": 20,
"page": 1,
"marketplace": "US"
}'Step 3 of 3 · Inspect the result
Check the response
Read code for the request status and data for the result. Open the parameter and response reference for the full field definitions.
HTTP status codes
| 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. |
All categories/ Amazon Marketplace Intelligence
POST
https://api.nexscope.ai/api/skill-api/v1/skills/amazon-broad-product-search/runRun this API
Send a JSON request to execute this API and receive the documented response payload.
Endpoint
| Method | POST |
| Path | https://api.nexscope.ai/api/skill-api/v1/skills/amazon-broad-product-search/run |
| Auth | Bearer API key |
| Content-Type | application/json |
Request parameters
| Name | Type | Required | Description |
|---|---|---|---|
chatId | string | optional | Chat ID, maxLength 1000 Example: example-id |
uid | string | optional | User ID, maxLength 1000 Example: example-id |
requestId | string | optional | Push ID, maxLength 1000 Example: example-id |
teamId | string | optional | Team ID, maxLength 1000 Example: example-id |
keyword | string | optional | Search keyword; translate to the corresponding country's language whenever possible, e.g. use English keywords for the US, German keywords for Germany, etc.; maxLength 10240 Example: phone case |
matchType | integer | optional | Match type: 1 = phrase match (default), 2 = fuzzy match, 3 = exact match Example: 1 |
excludeKeywords | string | optional | Exclude keywords; maxLength 10240 Example: phone case |
marketplace | string | optional | Marketplace site code, default US. Only US, UK, DE, FR, JP, CA, IT, ES, MX, IN are allowed (must match this enum; AU, TR, and other unlisted sites are not supported) Example: US |
nodeLabel | string | optional | Amazon category name; maxLength 1000 |
nodeIdPath | string | optional | Amazon category node ID; maxLength 1000 |
filterSubNode | boolean | optional | Whether to filter subcategory nodes; only effective when nodeLabel or nodeIdPath has a value; pass JSON boolean true / false Example: false |
dataSnapshotMonth | string | optional | Product data snapshot month, format yyyyMM (e.g. 202412 for December 2024 data snapshot), or nearly for last 30 days real-time data. Default: nearly. Used for historical analysis and period comparison; only supports existing historical snapshots, future dates are not supported; maxLength 1000 |
minPrice | number | optional | Minimum price (>= 0) Example: 1 |
maxPrice | number | optional | Maximum price (>= 0) Example: 1 |
minProfit | number | optional | Minimum gross margin, unit % (1-100) Example: 1 |
maxProfit | number | optional | Maximum gross margin, unit % (1-100) Example: 1 |
minRevenue | number | optional | Minimum monthly sales revenue (>= 0) Example: 1 |
maxRevenue | number | optional | Maximum monthly sales revenue (>= 0) Example: 1 |
minFba | number | optional | Minimum FBA shipping fee (>= 0) Example: 1 |
maxFba | number | optional | Maximum FBA shipping fee (>= 0) Example: 1 |
minUnits | integer | optional | Minimum monthly sales volume (>= 0) Example: 1 |
maxUnits | integer | optional | Maximum monthly sales volume (>= 0) Example: 1 |
minAmzUnit | integer | optional | Minimum variant last-30-day sales volume (only supported when dataSnapshotMonth is a "last 30 days" type query); minimum 0 Example: 1 |
maxAmzUnit | integer | optional | Maximum variant last-30-day sales volume (only supported for last 30 days queries); minimum 0 Example: 1 |
minUnitsGrowthRate | number | optional | Minimum monthly sales volume growth rate, unit % Example: 1 |
maxUnitsGrowthRate | number | optional | Maximum monthly sales volume growth rate, unit % Example: 1 |
minBsr | integer | optional | Lowest main category BSR rank Example: 1 |
maxBsr | integer | optional | Highest main category BSR rank Example: 1 |
minBsrGrowthRate | number | optional | Minimum BSR growth rate, unit % Example: 1 |
maxBsrGrowthRate | number | optional | Maximum BSR growth rate, unit % Example: 1 |
minBsrGrowthCount | integer | optional | Minimum BSR growth count Example: 1 |
maxBsrGrowthCount | integer | optional | Maximum main category BSR growth count Example: 1 |
minSubNodeBsrRank | integer | optional | Lowest subcategory BSR rank (requires filterSubNode = true) Example: 1 |
maxSubNodeBsrRank | integer | optional | Highest subcategory BSR rank (requires filterSubNode = true) Example: 1 |
minRating | number | optional | Minimum rating value (0-5) Example: 1 |
maxRating | number | optional | Maximum rating value (0-5), 3.8-4.3 is the product improvement opportunity range Example: 1 |
minRatings | integer | optional | Minimum review count (0-10000) Example: 1 |
maxRatings | integer | optional | Maximum review count (0-10000) Example: 1 |
minRatingsGrowthCount | integer | optional | Minimum monthly new review count (>= 0) Example: 1 |
maxRatingsGrowthCount | integer | optional | Maximum monthly new review count (>= 0) Example: 1 |
minListingQualityScore | number | optional | Minimum Listing page quality score (>= 0) Example: 1 |
maxListingQualityScore | number | optional | Maximum Listing page quality score (>= 0) Example: 1 |
minVariations | integer | optional | Minimum number of variations Example: 1 |
maxVariations | integer | optional | Maximum number of variations Example: 1 |
minWeights | number | optional | Minimum weight (>= 0) Example: 1 |
maxWeights | number | optional | Maximum weight (>= 0) Example: 1 |
weightUnit | string | optional | Weight unit: g, kg, oz, lb. This field must be specified if the parameters include weight filtering |
dimensionType | string | optional | Package dimension type (codes vary by site, see below) |
minSellers | integer | optional | Minimum number of sellers Example: 1 |
maxSellers | integer | optional | Maximum number of sellers Example: 1 |
badgeBestSeller | string | optional | Best Seller badge filter: Y, N, or empty (all) |
badgeAmazonsChoice | string | optional | Amazon's Choice badge filter: Y, N, or empty (all) |
badgeNewRelease | string | optional | New Release badge filter: Y, N, or empty (all) |
fulfillment | string | optional | Fulfillment method: single select AMZ / FBA / FBM, or multi-select such as AMZ,FBA, FBA,FBM, AMZ,FBA,FBM, etc.; multiple conditions use comma separation; empty means no limit |
showVariation | string | optional | Whether to query variants: Y or N, default N |
hideUnlistedProduct | boolean | optional | Whether to hide delisted products, default true Example: false |
listedWithinLastMonths | integer | optional | Time since listing (months), only allowed: 1, 3, 6, 12, 24 (must match these enum values; do not pass other integers) Example: 1 |
sellerNation | string | optional | Seller location code (e.g. US, CN, HK), multiple conditions comma-separated, default no limit |
includeSellers | string | optional | Include sellers; maxLength 10240 |
excludeSellers | string | optional | Exclude sellers; maxLength 10240 |
includeBrands | string | optional | Include brands; maxLength 10240 |
excludeBrands | string | optional | Exclude brands; maxLength 10240 |
order | object | optional | Sort configuration; if passed, it is recommended to provide both field and desc (both are required in the sub-schema) Example: {} |
order.field | string | optional | Sort field: total_units (monthly sales), total_amount (monthly revenue), bsr_rank, price, rating, reviews, profit, reviews_rate, available_date, questions, total_units_growth, total_amount_growth, reviews_increasement, bsr_rank_cv, bsr_rank_cr, amz_unit (variant sales). Default total_units. Pass an empty string "" to not sort by the above business fields (full query sort semantics are handled by the server) |
order.desc | string | optional | "true" descending, "false" ascending; default "true"; maxLength 1000 |
page | integer | optional | Page number, starting from 1, default 1 Example: 1 |
size | integer | optional | Results per page (10-100), default 20 Example: 20 |
Code example
{
"matchType": 1,
"keyword": "phone case",
"size": 20,
"page": 1,
"marketplace": "US"
}Response example
Platform response envelope. code 0 indicates success or acceptance; data contains the business result.
{
"data": {
"total": 1,
"products": [
{
"asin": "B072MQ5BRX",
"asinUrl": "B072MQ5BRX",
"imageUrl": "https://example.com/image.jpg",
"price": 1,
"averagePrice": 1,
"primePrice": 1,
"monthlySalesUnits": 1,
"monthlySalesRevenue": 1,
"monthlySalesUnitsGrowthRate": 1,
"bsr": 1,
"bsrGrowthRate": 1,
"rating": 1,
"ratings": 1,
"ratingsRate": 1,
"profit": 1,
"fba": 1,
"sellerNum": 1,
"sellerId": "example-id",
"brandUrl": "https://example.com/image.jpg",
"availableDate": "2026-01-01",
"availableDateString": "2026-01-01",
"variationNum": 1,
"variant30DayUnits": 1,
"variant30DayRevenue": 1,
"variant30DayUpdatedAt": "2026-01-01",
"listingQualityScore": 1,
"deliveryPrice": 1,
"nodeId": 1,
"badge": {},
"subcategories": [],
"keyword": "phone case"
}
],
"columns": [],
"keyword": "phone case",
"costToken": 1
},
"code": 0,
"msg": null,
"ts": "0",
"time": "2026-01-01 00:00:00",
"cost": "-1",
"traceId": null
}Response fields
| 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 | 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. |
Any of option 1
| Name | Type | Required | Description |
|---|---|---|---|
data | object | required | Data value used by this API operation. |
data.total | integer | optional | Total matching product count Example: 1 |
data.products | array | optional | Product list (see product object fields below) Example: [] |
data.products[] | object | required | Item in data products. |
data.products[].nodeIdPath | string | optional | Node ID path Example: null |
data.products[].nodeLabel | string | optional | Amazon category name Example: null |
data.products[].asin | string | optional | Amazon ASIN Example: B072MQ5BRX |
data.products[].title | string | optional | Product title Example: null |
data.products[].asinUrl | string | optional | Amazon product detail page URL Example: B072MQ5BRX |
data.products[].imageUrl | string | optional | Product image URL Example: https://example.com/image.jpg |
data.products[].price | number | optional | Current price Example: 1 |
data.products[].averagePrice | number | optional | Average price Example: 1 |
data.products[].primePrice | number | optional | Prime price, -1 means not available Example: 1 |
data.products[].currency | string | optional | Currency Example: null |
data.products[].monthlySalesUnits | integer | optional | Monthly sales volume Example: 1 |
data.products[].monthlySalesRevenue | number | optional | Monthly sales revenue Example: 1 |
data.products[].monthlySalesUnitsGrowthRate | number | optional | Monthly sales volume growth rate Example: 1 |
data.products[].bsr | integer | optional | BSR rank Example: 1 |
data.products[].bsrGrowthRate | number | optional | BSR growth rate Example: 1 |
data.products[].rating | number | optional | Rating Example: 1 |
data.products[].ratings | integer | optional | Review count Example: 1 |
data.products[].ratingsRate | number | optional | Review rate Example: 1 |
data.products[].profit | number | optional | Gross margin (%) Example: 1 |
data.products[].fba | number | optional | FBA shipping fee Example: 1 |
data.products[].sellerNum | integer | optional | Number of sellers Example: 1 |
data.products[].sellerId | string | optional | BuyBox seller ID Example: example-id |
data.products[].sellerName | string | optional | BuyBox seller name Example: null |
data.products[].sellerNation | string | optional | BuyBox seller nationality Example: null |
data.products[].brand | string | optional | Brand Example: null |
data.products[].brandUrl | string | optional | Brand page URL Example: https://example.com/image.jpg |
data.products[].fulfillment | string | optional | Fulfillment method (AMZ / FBA / FBM) Example: null |
data.products[].availableDate | string | optional | Listing time (timestamp) Example: 2026-01-01 |
data.products[].availableDateString | string | optional | Listing date (formatted string) Example: 2026-01-01 |
data.products[].variationNum | integer | optional | Number of variations Example: 1 |
data.products[].variant30DayUnits | integer | optional | Variant monthly sales (units) Example: 1 |
data.products[].variant30DayRevenue | number | optional | Variant monthly sales revenue (amount) Example: 1 |
data.products[].variant30DayUpdatedAt | string | optional | Variant data update time Example: 2026-01-01 |
data.products[].weight | string | optional | Weight Example: null |
data.products[].packageWeight | string | optional | Package weight Example: null |
data.products[].dimension | string | optional | Dimensions Example: null |
data.products[].packageDimensions | string | optional | Package dimensions Example: null |
data.products[].dimensionsType | string | optional | Dimension type Example: null |
data.products[].packageDimensionType | string | optional | Package dimension type Example: null |
data.products[].listingQualityScore | number | optional | Listing quality score Example: 1 |
data.products[].deliveryPrice | number | optional | Seller shipping fee, -1 means not available Example: 1 |
data.products[].nodeLabelPath | string | optional | Category path Example: null |
data.products[].nodeId | integer | optional | Node ID Example: 1 |
data.products[].dataSnapshotMonth | string | optional | Data query month Example: null |
data.products[].badgeBestSeller | string | optional | Best Seller badge (Y/N) Example: null |
data.products[].badgeAmazonChoice | string | optional | Amazon's Choice badge (Y/N) Example: null |
data.products[].badgeNewRelease | string | optional | New Release badge (Y/N) Example: null |
data.products[].badgeVideo | string | optional | Video introduction (Y/N) Example: null |
data.products[].badgeEbc | string | optional | A+ page (Y/N) Example: null |
data.products[].badge | object | optional | Badge summary object, containing: bestSeller, amazonChoice, newRelease, video, ebc Example: {} |
data.products[].subcategories | array | optional | Subcategory list, each entry containing code (category code), rank (rank), label (name) Example: [] |
data.products[].sku | string | optional | SKU Example: null |
data.products[].keyword | string | optional | Matching keyword Example: phone case |
data.products[].sourceType | string | optional | Source type Example: null |
data.products[].sourceTool | string | optional | Source tool identifier Example: null |
data.columns | array | optional | Render column definitions Example: [] |
data.keyword | string | optional | Search keyword used (if any) Example: phone case |
data.dataSnapshotMonth | string | optional | Data query month Example: null |
data.sourceType | string | optional | Source type (e.g. "amazon") Example: null |
data.type | string | optional | Render style Example: null |
data.costToken | integer | optional | Tokens consumed Example: 1 |
data.title | string | optional | Provider-specific response title. Example: null |
data.sourceTool | string | optional | Provider-specific source tool name. 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 |
Any of option 2
| Name | Type | Required | Description |
|---|---|---|---|
data | null | required | Data value used by this API operation. |
Responses
| 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. |
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.
Step 1 of 2 · Connect your MCP client
MCP
V2 recommendedConnect 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/jsonAuthentication
OAuth clients request the mcp:tools scope. The endpoint's 401 response advertises protected-resource metadata for authorization discovery.
Step 2 of 2 · Call the tool
Call a tool
{
"jsonrpc": "2.0",
"id": "tool-call-1",
"method": "tools/call",
"params": {
"name": "nexscope_amazon_broad_product_search",
"arguments": {
"matchType": 1,
"keyword": "phone case",
"size": 20,
"page": 1,
"marketplace": "US"
}
}
}Legacy MCP v1
Existing API-key clients can continue using the compatibility endpoint. New integrations should use MCP v2.
GET / POST /api/skill-api/v1/mcpOnline test
Execute the current API with your API key and JSON payload.
21 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/amazon-broad-product-search/runMCP method
nexscope_amazon_broad_product_searchcURL
curl -X POST \
https://api.nexscope.ai/api/skill-api/v1/skills/amazon-broad-product-search/run \
-H "Authorization: Bearer nk-..." \
-H "Content-Type: application/json" \
-d '{ "matchType": 1, "keyword": "phone case", "size": 20, "page": 1, "marketplace": "US" }'Response
No response yet. Run the request to see the response here.
Related APIs
Amazon ASIN Traffic Summary
Compare traffic sources and keyword changes for an ASIN.
Amazon Category Lookup
Find Amazon category IDs by marketplace or category name.
Amazon Competitor Lookup
Compare competing Amazon products by sales, price, and growth.
Amazon Market Product Detail
Look up product details and historical trends by ASIN.