Nexscope

Amazon Opportunity Search By Metrics

Filter Amazon niches and keywords using 30+ business metrics covering market size, growth, competition, pricing, demographics. Available via REST API or MCP.

CostRecent Avg. 21 · Range 10–125 credits / call
Try online
POST · https://api.nexscope.ai/api/skill-api/v1/skills/amazon-opportunity-search-by-metrics/runMCP · nexscope_amazon_opportunity_search_by_metrics
Amazon Marketplace Intelligence

What this API does

Filter Amazon niches and keywords using 30+ business metrics covering market size, growth, competition, pricing, demographics. The request accepts amazonDomain, limit, keyword, nicheName, nicheRevenue360dMinUsdAtLeastGte. Its documented result includes amazonDomain, demoGenderDominant, demoLifeStageTags, demoPrimaryAgeMax, demoPrimaryAgeMin, demoPrimaryIncomeTier, featureEmergingTrendTags, featureEstablishedAvgReviewCountAtLeast.

Amazon Opportunity Search By Metrics API use cases

Find products matching a sourcing brief

To find products matching a sourcing brief, a marketplace analyst submits amazonDomain and limit to Amazon Opportunity Search By Metrics. The returned amazonDomain, demoGenderDominant, demoLifeStageTags help identify products matching the requested search criteria.

Compare a product search shortlist

A marketplace analyst uses Amazon Opportunity Search By Metrics with amazonDomain and limit to compare a product search shortlist. The returned amazonDomain, demoGenderDominant, demoLifeStageTags help compare candidates before requesting individual product details.

Collect candidates for a market review

For this workflow, a marketplace analyst calls Amazon Opportunity Search By Metrics with amazonDomain and limit to collect candidates for a market review. The result helps choose products for a supplier or competitor review.

Amazon Opportunity Search By Metrics API FAQ

What does the Amazon Opportunity Search By Metrics API return?

Filter Amazon niches and keywords using 30+ business metrics covering market size, growth, competition, pricing, demographics. The documented output includes amazonDomain, demoGenderDominant, demoLifeStageTags, demoPrimaryAgeMax, demoPrimaryAgeMin, demoPrimaryIncomeTier, featureEmergingTrendTags, featureEstablishedAvgReviewCountAtLeast. It corresponds to the supplied amazonDomain, limit, keyword, nicheName, nicheRevenue360dMinUsdAtLeastGte. Optional fields can be absent; a missing value should not be interpreted as a measured zero. Example values illustrate the response shape, rather than live account results.

How many credits does the Amazon Opportunity Search By Metrics API cost?

The current documented cost is Recent Avg. 21 · Range 10–125 credits / call. This is the same cost shown at the top of this page. If a range or estimate is displayed, the final charge depends on the request. Review your available credits and the pricing page before calling the API, and check API usage records for the actual charge.

How do I call the Amazon Opportunity Search By Metrics API from my app or an MCP client?

Send a POST request to https://api.nexscope.ai/api/skill-api/v1/skills/amazon-opportunity-search-by-metrics/run with your API key as a Bearer token and the JSON inputs shown in API integration. In a compatible MCP client such as Claude or Cursor, connect Nexscope and call nexscope_amazon_opportunity_search_by_metrics. The same documented request parameters apply; use Online test to review a request before adding it to your app.

View plans and creditsConnect this API with MCP

Try this API
Endpoint
https://api.nexscope.ai/api/skill-api/v1/skills/amazon-opportunity-search-by-metrics/run
MCP method
nexscope_amazon_opportunity_search_by_metrics

Step 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-xxxxxxxxxxxxxxxxx
Missing or invalid API keys return an authentication error. Manage keys from .

Step 2 of 3 · Send a request

POSThttps://api.nexscope.ai/api/skill-api/v1/skills/amazon-opportunity-search-by-metrics/run

Run an API

Request parameters documented by ecommerce.amazon-opportunity-search-by-metrics.

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-opportunity-search-by-metrics/run' \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "amazonDomain": "US",
  "keyword": "phone case",
  "limit": 10
}'

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

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.
All categories/ Amazon Marketplace Intelligence
POSThttps://api.nexscope.ai/api/skill-api/v1/skills/amazon-opportunity-search-by-metrics/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/amazon-opportunity-search-by-metrics/run
AuthBearer API key
Content-Typeapplication/json

Request parameters

NameTypeRequiredDescription
amazonDomainstringoptional
Amazon site code (closed enum), currently only supports US. Defaults to US only if not specified
Example: US
limitintegeroptional
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: 25
keywordstringoptional
Search keyword text fragment (LIKE fuzzy match)
Example: phone case
nicheNamestringoptional
Normalized niche name fragment (LIKE, snake_case lowercase), suitable for niche time-series comparison
nicheRevenue360dMinUsdAtLeastGtenumberoptional
Minimum 360-day market revenue lower bound (USD)
Example: 1
nicheRevenue360dMinUsdAtLeastLtenumberoptional
Maximum 360-day market revenue lower bound (USD)
Example: 1
nicheRevenue360dMaxUsdAtLeastGtenumberoptional
Minimum 360-day market revenue upper bound (USD)
Example: 1
nicheRevenue360dMaxUsdAtLeastLtenumberoptional
Maximum 360-day market revenue upper bound (USD)
Example: 1
nichePeakSearchVolumeAtLeastGteintegeroptional
Peak monthly search volume minimum (non-negative integer)
Example: 1
nichePeakSearchVolumeAtLeastLteintegeroptional
Peak monthly search volume maximum (non-negative integer)
Example: 1
nicheSearchVolumeYoyChangePctAtLeastGtenumberoptional
Search volume YoY change rate minimum (%, signed)
Example: 1
nicheSearchVolumeYoyChangePctAtLeastLtenumberoptional
Search volume YoY change rate maximum (%, signed)
Example: 1
nichePeakMonthGteintegeroptional
Search peak month minimum (1-12)
Example: 1
nichePeakMonthLteintegeroptional
Search peak month maximum (1-12)
Example: 1
nicheBrandCountGteintegeroptional
Active brand count minimum
Example: 1
nicheBrandCountLteintegeroptional
Active brand count maximum
Example: 1
nicheBrandCountYoyChangePctAtLeastGtenumberoptional
Brand count YoY change rate minimum (%, signed)
Example: 1
nicheBrandCountYoyChangePctAtLeastLtenumberoptional
Brand count YoY change rate maximum (%, signed)
Example: 1
nicheTop5ProductClickSharePctAtLeastGtenumberoptional
Top 5 product click share minimum (0-100)
Example: 1
nicheTop5ProductClickSharePctAtLeastLtenumberoptional
Top 5 product click share maximum (0-100)
Example: 1
featureTop5BrandSharePctAtLeastGtenumberoptional
Top 5 brand combined share minimum (0-100)
Example: 1
featureTop5BrandSharePctAtLeastLtenumberoptional
Top 5 brand combined share maximum (0-100)
Example: 1
featureTopBrandsContainsstringoptional
Top 3 brand name fragment (original text LIKE, case-sensitive)
priceMinUsdGtenumberoptional
Niche minimum product price lower bound (USD)
Example: 1
priceMinUsdLtenumberoptional
Niche minimum product price upper bound (USD)
Example: 1
priceMaxUsdGtenumberoptional
Niche maximum product price lower bound (USD)
Example: 1
priceMaxUsdLtenumberoptional
Niche maximum product price upper bound (USD)
Example: 1
priceSweetSpotMinUsdGtenumberoptional
Sweet spot lower bound minimum (USD)
Example: 1
priceSweetSpotMinUsdLtenumberoptional
Sweet spot lower bound maximum (USD)
Example: 1
priceSweetSpotMaxUsdGtenumberoptional
Sweet spot upper bound minimum (USD)
Example: 1
priceSweetSpotMaxUsdLtenumberoptional
Sweet spot upper bound maximum (USD)
Example: 1
priceEntryClickSharePctAtLeastGtenumberoptional
Entry tier click share minimum (0-100)
Example: 1
priceEntryClickSharePctAtLeastLtenumberoptional
Entry tier click share maximum (0-100)
Example: 1
priceMidClickSharePctAtLeastGtenumberoptional
Mid tier click share minimum (0-100)
Example: 1
priceMidClickSharePctAtLeastLtenumberoptional
Mid tier click share maximum (0-100)
Example: 1
priceHighClickSharePctAtLeastGtenumberoptional
High tier click share minimum (0-100)
Example: 1
priceHighClickSharePctAtLeastLtenumberoptional
High tier click share maximum (0-100)
Example: 1
demoPrimaryAgeMinGteintegeroptional
Primary audience age lower bound minimum (0-120 years)
Example: 1
demoPrimaryAgeMinLteintegeroptional
Primary audience age lower bound maximum (0-120 years)
Example: 1
demoPrimaryAgeMaxGteintegeroptional
Primary audience age upper bound minimum (0-120 years)
Example: 1
demoPrimaryAgeMaxLteintegeroptional
Primary audience age upper bound maximum (0-120 years)
Example: 1
demoGenderDominantstringoptional
Dominant gender (closed enum): female / male / mixed / unspecified
demoPrimaryIncomeTierstringoptional
Income tier (closed enum): low / middle_low / middle / middle_upper / upper_middle / high
demoLifeStageTagsContainsstringoptional
Life stage tag fragment (snake_case, LIKE): parent, student, retiree, athlete, etc.
featureNewAvgReviewCountAtLeastGteintegeroptional
New product average review count minimum (non-negative integer)
Example: 1
featureNewAvgReviewCountAtLeastLteintegeroptional
New product average review count maximum (non-negative integer)
Example: 1
featureEstablishedAvgReviewCountAtLeastGteintegeroptional
Established product average review count minimum (non-negative integer)
Example: 1
featureEstablishedAvgReviewCountAtLeastLteintegeroptional
Established product average review count maximum (non-negative integer)
Example: 1
featureEmergingTrendTagsContainsstringoptional
Emerging trend feature tag fragment (snake_case, LIKE): cordless, portable, smart, etc.
featureUncommonFeatureTagsContainsstringoptional
Rare differentiation feature tag fragment (snake_case, LIKE): hema_free, medical_grade_silicone, etc.
searchTopCategory1Labelstringoptional
Search traffic top category 1 label fragment (snake_case, LIKE): core_product_terms, set_kit_configurations, etc.
reviewPositiveTop1Topicstringoptional
Positive review #1 topic fragment (snake_case, LIKE): comfort, quality_overall_generic, etc.
reviewPositiveTop1PctAtLeastGtenumberoptional
Positive review #1 topic share minimum (0-100, share among positive reviews)
Example: 1
reviewPositiveTop1PctAtLeastLtenumberoptional
Positive review #1 topic share maximum (0-100)
Example: 1
reviewNegativeTop1Topicstringoptional
Negative review #1 topic fragment (snake_case, LIKE): size, quality, durability, etc.
reviewNegativeTop1PctAtLeastGtenumberoptional
Negative review #1 topic share minimum (0-100, share among negative reviews)
Example: 1
reviewNegativeTop1PctAtLeastLtenumberoptional
Negative review #1 topic share maximum (0-100)
Example: 1
reviewNegativeTop2Topicstringoptional
Negative review #2 topic fragment (snake_case, LIKE)
reviewStrategicInsightTagsContainsstringoptional
Review strategic insight tag fragment (snake_case, LIKE): sizing_clarity, material_transparency, etc.

Code example

{
  "amazonDomain": "US",
  "keyword": "phone case",
  "limit": 10
}

Response example

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

{
  "code": 0,
  "cost": "-1",
  "data": {
    "data": [
      {
        "demoLifeStageTags": [],
        "demoPrimaryAgeMax": 1,
        "demoPrimaryAgeMin": 1,
        "featureEmergingTrendTags": [],
        "featureEstablishedAvgReviewCountAtLeast": 1,
        "featureNewAvgReviewCountAtLeast": 1,
        "featureTop5BrandSharePctAtLeast": 1,
        "featureTopBrands": [],
        "featureUncommonFeatureTags": [],
        "keyword": "phone case",
        "nicheBrandCount": 1,
        "nicheBrandCountYoyChangePctAtLeast": 1,
        "nichePeakMonth": 1,
        "nichePeakSearchVolumeAtLeast": 1,
        "nicheRevenue360dMaxUsdAtLeast": 1,
        "nicheRevenue360dMinUsdAtLeast": 1,
        "nicheSearchVolumeYoyChangePctAtLeast": 1,
        "nicheTop5ProductClickSharePctAtLeast": 1,
        "priceEntryClickSharePctAtLeast": 1,
        "priceHighClickSharePctAtLeast": 1,
        "priceMaxUsd": 1,
        "priceMidClickSharePctAtLeast": 1,
        "priceMinUsd": 1,
        "priceSweetSpotMaxUsd": 1,
        "priceSweetSpotMinUsd": 1,
        "reviewNegativeTop1PctAtLeast": 1,
        "reviewPositiveTop1PctAtLeast": 1,
        "reviewStrategicInsightTags": []
      }
    ]
  },
  "msg": null,
  "time": "2026-01-01 00:00:00",
  "traceId": null,
  "ts": "0"
}

Response fields

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

Any of option 1

NameTypeRequiredDescription
dataobjectrequired
Data value used by this API operation.
data.costTimeintegeroptional
Execution time reported by the upstream provider.
Example: null
data.costTokenintegeroptional
Token cost reported by the upstream provider.
Example: null
data.dataarrayoptional
Array of keyword metric records, each corresponding to a (site, keyword) combination, approximately 37 fields, sorted by collection time descending
Example: []
data.data[]objectrequired
Item in data data.
data.data[].amazonDomainstringoptional
Site code (currently fixed US)
Example: null
data.data[].demoGenderDominantstringoptional
Dominant gender (female / male / mixed / unspecified)
Example: null
data.data[].demoLifeStageTagsarrayoptional
Life stage tag list
Example: []
data.data[].demoPrimaryAgeMaxintegeroptional
Core audience age lower bound / upper bound
Example: 1
data.data[].demoPrimaryAgeMinintegeroptional
Core audience age lower bound / upper bound
Example: 1
data.data[].demoPrimaryIncomeTierstringoptional
Core audience income tier
Example: null
data.data[].featureEmergingTrendTagsarrayoptional
Emerging trend / Rare differentiation feature tags
Example: []
data.data[].featureEstablishedAvgReviewCountAtLeastintegeroptional
New / Established product average review count
Example: 1
data.data[].featureNewAvgReviewCountAtLeastintegeroptional
New / Established product average review count
Example: 1
data.data[].featureTop5BrandSharePctAtLeastnumberoptional
Top 5 brand combined share (0-100)
Example: 1
data.data[].featureTopBrandsarrayoptional
Top 3 brand name list (original text)
Example: []
data.data[].featureUncommonFeatureTagsarrayoptional
Emerging trend / Rare differentiation feature tags
Example: []
data.data[].keywordstringoptional
Original search keyword
Example: phone case
data.data[].nicheBrandCountintegeroptional
Active brand count and its YoY change rate
Example: 1
data.data[].nicheBrandCountYoyChangePctAtLeastnumberoptional
Active brand count YoY change rate
Example: 1
data.data[].nicheNamestringoptional
Normalized niche name (snake_case)
Example: null
data.data[].nichePeakMonthintegeroptional
Search peak month (1-12)
Example: 1
data.data[].nichePeakSearchVolumeAtLeastintegeroptional
Peak monthly search volume
Example: 1
data.data[].nicheRevenue360dMaxUsdAtLeastnumberoptional
Last 360 days market revenue lower bound / upper bound (USD)
Example: 1
data.data[].nicheRevenue360dMinUsdAtLeastnumberoptional
Last 360 days market revenue lower bound / upper bound (USD)
Example: 1
data.data[].nicheSearchVolumeYoyChangePctAtLeastnumberoptional
Search volume YoY change rate (%, signed)
Example: 1
data.data[].nicheTop5ProductClickSharePctAtLeastnumberoptional
Top 5 product click share (0-100)
Example: 1
data.data[].priceEntryClickSharePctAtLeastnumberoptional
Entry / Mid / High tier click share (0-100)
Example: 1
data.data[].priceHighClickSharePctAtLeastnumberoptional
Entry / Mid / High tier click share (0-100)
Example: 1
data.data[].priceMaxUsdnumberoptional
Niche overall minimum / maximum product price
Example: 1
data.data[].priceMidClickSharePctAtLeastnumberoptional
Entry / Mid / High tier click share (0-100)
Example: 1
data.data[].priceMinUsdnumberoptional
Niche overall minimum / maximum product price
Example: 1
data.data[].priceSweetSpotMaxUsdnumberoptional
Value sweet spot price range lower bound / upper bound
Example: 1
data.data[].priceSweetSpotMinUsdnumberoptional
Value sweet spot price range lower bound / upper bound
Example: 1
data.data[].reviewNegativeTop1PctAtLeastnumberoptional
Negative review #1 topic, share, and secondary cause
Example: 1
data.data[].reviewNegativeTop1Topicstringoptional
Negative review #1 topic
Example: null
data.data[].reviewNegativeTop2Topicstringoptional
Negative review #2 topic
Example: null
data.data[].reviewPositiveTop1PctAtLeastnumberoptional
Positive review #1 topic and its share among positive reviews
Example: 1
data.data[].reviewPositiveTop1Topicstringoptional
Positive review #1 topic
Example: null
data.data[].reviewStrategicInsightTagsarrayoptional
Review strategic insight tags
Example: []
data.data[].searchTopCategory1Labelstringoptional
Traffic top category 1 normalized label
Example: null
data.dataSnapshotMonthstringoptional
Data snapshot month returned by the upstream provider.
Example: null
data.pageintegeroptional
Current page returned by the upstream provider.
Example: null
data.pageItemCountintegeroptional
Item count on the current page returned by the upstream provider.
Example: null
data.pageSizeintegeroptional
Page size returned by the upstream provider.
Example: null
data.sourceToolstringoptional
Provider-specific source tool name.
Example: null
data.sourceTypestringoptional
Provider-specific source platform type.
Example: null
data.titlestringoptional
Provider-specific response title.
Example: null
data.totalPageintegeroptional
Total page count returned by the upstream provider.
Example: null
data.typestringoptional
Provider-specific render or payload type.
Example: null

Any of option 2

NameTypeRequiredDescription
datanullrequired
Data value used by this API operation.

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.

Step 1 of 2 · Connect your MCP client

MCP

V2 recommended

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/json
Authentication

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_opportunity_search_by_metrics",
    "arguments": {
      "amazonDomain": "US",
      "keyword": "phone case",
      "limit": 10
    }
  }
}

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/mcp

Online test

Execute the current API with your API key and JSON payload. Online tests use this site's configured API environment; the Endpoint and copyable examples use the public integration address.

10 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-opportunity-search-by-metrics/run
MCP method
nexscope_amazon_opportunity_search_by_metrics
cURL
curl -X POST \
  https://api.nexscope.ai/api/skill-api/v1/skills/amazon-opportunity-search-by-metrics/run \
  -H "Authorization: Bearer nk-..." \
  -H "Content-Type: application/json" \
  -d '{ "amazonDomain": "US", "keyword": "phone case", "limit": 10 }'
Response
No response yet. Run the request to see the response here.

Related APIs