https://claw-callback.nexscope.ai/api/skill-api/v1/skills/amazon-opportunity-search-by-metrics/runRun this API
Send a JSON request to execute this API and receive the direct response payload.
Endpoint
| Method | POST |
| Path | https://claw-callback.nexscope.ai/api/skill-api/v1/skills/amazon-opportunity-search-by-metrics/run |
| Auth | Bearer API key |
| Content-Type | application/json |
Request body
| Name | Type | Required | Description |
|---|---|---|---|
amazonDomain | string | optional | Amazon site code (closed enum), currently only supports US. Defaults to US only if not specified |
limit | integer | optional | Maximum number of results to return (1-200), default 25. No page parameter; returns the most recent N records sorted by collection time descending Example: 1 |
keyword | string | optional | Search keyword text fragment (LIKE fuzzy match) Example: phone case |
nicheName | string | optional | Normalized niche name fragment (LIKE, snake_case lowercase), suitable for niche time-series comparison |
nicheRevenue360dMinUsdAtLeastGte | number | optional | Minimum 360-day market revenue lower bound (USD) Example: 1 |
nicheRevenue360dMinUsdAtLeastLte | number | optional | Maximum 360-day market revenue lower bound (USD) Example: 1 |
nicheRevenue360dMaxUsdAtLeastGte | number | optional | Minimum 360-day market revenue upper bound (USD) Example: 1 |
nicheRevenue360dMaxUsdAtLeastLte | number | optional | Maximum 360-day market revenue upper bound (USD) Example: 1 |
nichePeakSearchVolumeAtLeastGte | integer | optional | Peak monthly search volume minimum (non-negative integer) Example: 1 |
nichePeakSearchVolumeAtLeastLte | integer | optional | Peak monthly search volume maximum (non-negative integer) Example: 1 |
nicheSearchVolumeYoyChangePctAtLeastGte | number | optional | Search volume YoY change rate minimum (%, signed) Example: 1 |
nicheSearchVolumeYoyChangePctAtLeastLte | number | optional | Search volume YoY change rate maximum (%, signed) Example: 1 |
nichePeakMonthGte | integer | optional | Search peak month minimum (1-12) Example: 1 |
nichePeakMonthLte | integer | optional | Search peak month maximum (1-12) Example: 1 |
nicheBrandCountGte | integer | optional | Active brand count minimum Example: 1 |
nicheBrandCountLte | integer | optional | Active brand count maximum Example: 1 |
nicheBrandCountYoyChangePctAtLeastGte | number | optional | Brand count YoY change rate minimum (%, signed) Example: 1 |
nicheBrandCountYoyChangePctAtLeastLte | number | optional | Brand count YoY change rate maximum (%, signed) Example: 1 |
nicheTop5ProductClickSharePctAtLeastGte | number | optional | Top 5 product click share minimum (0-100) Example: 1 |
nicheTop5ProductClickSharePctAtLeastLte | number | optional | Top 5 product click share maximum (0-100) Example: 1 |
featureTop5BrandSharePctAtLeastGte | number | optional | Top 5 brand combined share minimum (0-100) Example: 1 |
featureTop5BrandSharePctAtLeastLte | number | optional | Top 5 brand combined share maximum (0-100) Example: 1 |
featureTopBrandsContains | string | optional | Top 3 brand name fragment (original text LIKE, case-sensitive) |
priceMinUsdGte | number | optional | Niche minimum product price lower bound (USD) Example: 1 |
priceMinUsdLte | number | optional | Niche minimum product price upper bound (USD) Example: 1 |
priceMaxUsdGte | number | optional | Niche maximum product price lower bound (USD) Example: 1 |
priceMaxUsdLte | number | optional | Niche maximum product price upper bound (USD) Example: 1 |
priceSweetSpotMinUsdGte | number | optional | Sweet spot lower bound minimum (USD) Example: 1 |
priceSweetSpotMinUsdLte | number | optional | Sweet spot lower bound maximum (USD) Example: 1 |
priceSweetSpotMaxUsdGte | number | optional | Sweet spot upper bound minimum (USD) Example: 1 |
priceSweetSpotMaxUsdLte | number | optional | Sweet spot upper bound maximum (USD) Example: 1 |
priceEntryClickSharePctAtLeastGte | number | optional | Entry tier click share minimum (0-100) Example: 1 |
priceEntryClickSharePctAtLeastLte | number | optional | Entry tier click share maximum (0-100) Example: 1 |
priceMidClickSharePctAtLeastGte | number | optional | Mid tier click share minimum (0-100) Example: 1 |
priceMidClickSharePctAtLeastLte | number | optional | Mid tier click share maximum (0-100) Example: 1 |
priceHighClickSharePctAtLeastGte | number | optional | High tier click share minimum (0-100) Example: 1 |
priceHighClickSharePctAtLeastLte | number | optional | High tier click share maximum (0-100) Example: 1 |
demoPrimaryAgeMinGte | integer | optional | Primary audience age lower bound minimum (0-120 years) Example: 1 |
demoPrimaryAgeMinLte | integer | optional | Primary audience age lower bound maximum (0-120 years) Example: 1 |
demoPrimaryAgeMaxGte | integer | optional | Primary audience age upper bound minimum (0-120 years) Example: 1 |
demoPrimaryAgeMaxLte | integer | optional | Primary audience age upper bound maximum (0-120 years) Example: 1 |
demoGenderDominant | string | optional | Dominant gender (closed enum): female / male / mixed / unspecified |
demoPrimaryIncomeTier | string | optional | Income tier (closed enum): low / middle_low / middle / middle_upper / upper_middle / high |
demoLifeStageTagsContains | string | optional | Life stage tag fragment (snake_case, LIKE): parent, student, retiree, athlete, etc. |
featureNewAvgReviewCountAtLeastGte | integer | optional | New product average review count minimum (non-negative integer) Example: 1 |
featureNewAvgReviewCountAtLeastLte | integer | optional | New product average review count maximum (non-negative integer) Example: 1 |
featureEstablishedAvgReviewCountAtLeastGte | integer | optional | Established product average review count minimum (non-negative integer) Example: 1 |
featureEstablishedAvgReviewCountAtLeastLte | integer | optional | Established product average review count maximum (non-negative integer) Example: 1 |
featureEmergingTrendTagsContains | string | optional | Emerging trend feature tag fragment (snake_case, LIKE): cordless, portable, smart, etc. |
featureUncommonFeatureTagsContains | string | optional | Rare differentiation feature tag fragment (snake_case, LIKE): hema_free, medical_grade_silicone, etc. |
searchTopCategory1Label | string | optional | Search traffic top category 1 label fragment (snake_case, LIKE): core_product_terms, set_kit_configurations, etc. |
reviewPositiveTop1Topic | string | optional | Positive review #1 topic fragment (snake_case, LIKE): comfort, quality_overall_generic, etc. |
reviewPositiveTop1PctAtLeastGte | number | optional | Positive review #1 topic share minimum (0-100, share among positive reviews) Example: 1 |
reviewPositiveTop1PctAtLeastLte | number | optional | Positive review #1 topic share maximum (0-100) Example: 1 |
reviewNegativeTop1Topic | string | optional | Negative review #1 topic fragment (snake_case, LIKE): size, quality, durability, etc. |
reviewNegativeTop1PctAtLeastGte | number | optional | Negative review #1 topic share minimum (0-100, share among negative reviews) Example: 1 |
reviewNegativeTop1PctAtLeastLte | number | optional | Negative review #1 topic share maximum (0-100) Example: 1 |
reviewNegativeTop2Topic | string | optional | Negative review #2 topic fragment (snake_case, LIKE) |
reviewStrategicInsightTagsContains | string | optional | Review strategic insight tag fragment (snake_case, LIKE): sizing_clarity, material_transparency, etc. |
Request example
{
"keyword": "phone case",
"limit": 10,
"amazonDomain": "US"
}Response body
Returns the documented upstream API response directly without an additional wrapper.
| Name | Type | Required | Description |
|---|---|---|---|
code | string | optional | Response code, 200 indicates success |
msg | string | optional | Message, ok on success, error description on failure |
data | array | optional | Array of keyword metric records, each corresponding to a (site, keyword) combination, approximately 37 fields, sorted by collection time descending Example: [] |
data[].amazonDomain | string | optional | Site code (currently fixed US) |
keyword | string | optional | Original search keyword Example: phone case |
data[].nicheName | string | optional | Normalized niche name (snake_case) |
nicheRevenue360dMinUsdAtLeast/nicheRevenue360dMaxUsdAtLeast | number | optional | Last 360 days market revenue lower bound / upper bound (USD) Example: 1 |
nichePeakSearchVolumeAtLeast | integer | optional | Peak monthly search volume Example: 1 |
nichePeakMonth | integer | optional | Search peak month (1-12) Example: 1 |
nicheSearchVolumeYoyChangePctAtLeast | number | optional | Search volume YoY change rate (%, signed) Example: 1 |
nicheBrandCount/nicheBrandCountYoyChangePctAtLeast | integer | optional | Active brand count and its YoY change rate Example: 1 |
nicheTop5ProductClickSharePctAtLeast | number | optional | Top 5 product click share (0-100) Example: 1 |
featureTop5BrandSharePctAtLeast | number | optional | Top 5 brand combined share (0-100) Example: 1 |
featureTopBrands | array | optional | Top 3 brand name list (original text) Example: [] |
priceMinUsd/priceMaxUsd | number | optional | Niche overall minimum / maximum product price Example: 1 |
priceSweetSpotMinUsd/priceSweetSpotMaxUsd | number | optional | Value sweet spot price range lower bound / upper bound Example: 1 |
priceEntryClickSharePctAtLeast/priceMidClickSharePctAtLeast/priceHighClickSharePctAtLeast | number | optional | Entry / Mid / High tier click share (0-100) Example: 1 |
demoPrimaryAgeMin/demoPrimaryAgeMax | integer | optional | Core audience age lower bound / upper bound Example: 1 |
data[].demoGenderDominant | string | optional | Dominant gender (female / male / mixed / unspecified) |
data[].demoPrimaryIncomeTier | string | optional | Core audience income tier |
demoLifeStageTags | array | optional | Life stage tag list Example: [] |
featureNewAvgReviewCountAtLeast/featureEstablishedAvgReviewCountAtLeast | integer | optional | New / Established product average review count Example: 1 |
featureEmergingTrendTags/featureUncommonFeatureTags | array | optional | Emerging trend / Rare differentiation feature tags Example: [] |
data[].searchTopCategory1Label | string | optional | Traffic top category 1 normalized label |
reviewPositiveTop1Topic/reviewPositiveTop1PctAtLeast | number | optional | Positive review #1 topic and its share among positive reviews Example: 1 |
reviewNegativeTop1Topic/reviewNegativeTop1PctAtLeast/reviewNegativeTop2Topic | number | optional | Negative review #1 topic, share, and secondary cause Example: 1 |
reviewStrategicInsightTags | array | optional | Review strategic insight tags Example: [] |
errcode | integer | optional | Upstream status code returned by the provider. |
errmsg | string | optional | Upstream status message returned by the provider. |
message | string | optional | Provider-specific message. |
type | string | optional | Provider-specific render or payload type. |
title | string | optional | Provider-specific response title. |
sourceType | string | optional | Provider-specific source platform type. |
sourceTool | string | optional | Provider-specific source tool name. |
costToken | integer | optional | Token cost reported by the upstream provider. |
costTime | integer | optional | Execution time reported by the upstream provider. |
page | integer | optional | Current page returned by the upstream provider. |
pageSize | integer | optional | Page size returned by the upstream provider. |
pageItemCount | integer | optional | Item count on the current page returned by the upstream provider. |
totalPage | integer | optional | Total page count returned by the upstream provider. |
dataSnapshotMonth | string | optional | Data snapshot month returned by the upstream provider. |
Response example
Direct response payload. No extra wrapper is added.
{
"data": [],
"keyword": "phone case",
"nicheRevenue360dMinUsdAtLeast/nicheRevenue360dMaxUsdAtLeast": 1,
"nichePeakSearchVolumeAtLeast": 1,
"nichePeakMonth": 1,
"nicheSearchVolumeYoyChangePctAtLeast": 1,
"nicheBrandCount/nicheBrandCountYoyChangePctAtLeast": 1,
"nicheTop5ProductClickSharePctAtLeast": 1,
"featureTop5BrandSharePctAtLeast": 1,
"featureTopBrands": [],
"priceMinUsd/priceMaxUsd": 1,
"priceSweetSpotMinUsd/priceSweetSpotMaxUsd": 1,
"priceEntryClickSharePctAtLeast/priceMidClickSharePctAtLeast/priceHighClickSharePctAtLeast": 1,
"demoPrimaryAgeMin/demoPrimaryAgeMax": 1,
"demoLifeStageTags": [],
"featureNewAvgReviewCountAtLeast/featureEstablishedAvgReviewCountAtLeast": 1,
"featureEmergingTrendTags/featureUncommonFeatureTags": [],
"reviewPositiveTop1Topic/reviewPositiveTop1PctAtLeast": 1,
"reviewNegativeTop1Topic/reviewNegativeTop1PctAtLeast/reviewNegativeTop2Topic": 1,
"reviewStrategicInsightTags": []
}Responses
| Code | Description |
|---|---|
| 200 | API executed successfully. Body is the direct response payload. |
| 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.