Amazon Traffic Keywords
Find keywords bringing traffic to an Amazon product and compare organic and ad rankings.
Cost21 credits / call
POST ·
https://api.nexscope.ai/api/skill-api/v1/skills/amazon-traffic-keywords/runMCP · nexscope_amazon_traffic_keywordsChoose an integration method
Keyword & Search Demand
What this API does
Query an Amazon ASIN’s traffic keywords with source type, conversion type, organic rank, ad rank, historical month, and sorting controls.
Endpoint
https://api.nexscope.ai/api/skill-api/v1/skills/amazon-traffic-keywords/runMCP method
nexscope_amazon_traffic_keywordsStep 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-traffic-keywords/runRun an API
Request parameters documented by ecommerce.amazon-traffic-keywords.
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-traffic-keywords/run' \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"marketplace": "US",
"size": 50,
"page": 1,
"asin": "B072MQ5BRX"
}'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/ Keyword & Search Demand
POST
https://api.nexscope.ai/api/skill-api/v1/skills/amazon-traffic-keywords/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-traffic-keywords/run |
| Auth | Bearer API key |
| Content-Type | application/json |
Request parameters
| Name | Type | Required | Description |
|---|---|---|---|
marketplace | string | required | Marketplace site, default US: US, JP, UK, DE, FR, IT, ES, CA, IN Example: US |
asin | string | required | Product ASIN to reverse lookup; max length 1000 Example: B072MQ5BRX |
month | string | optional | Historical month in yyyyMM format; omit for the latest 30 days Example: 202608 |
page | integer | optional | Current page Example: 1 |
size | integer | optional | Items per page, default 50, from 1 to 100; at most 2000 records can be queried Example: 50 |
keyword | string | optional | Keyword filter; max length 1000 Example: phone case |
badges | string | optional | Traffic keyword type (impression position), see [Badges Enum](#badges-enum) |
trafficKeywordTypes | string | optional | Traffic share type, see [trafficKeywordTypes Enum](#traffickeywordtypes-enum) |
conversionKeywordTypes | string | optional | Comma-separated conversion types: excellent, stable, lost, invalid Example: excellent |
orderField | string | optional | Sort field, default rankPosition; see documented orderField options Example: rankPosition |
orderDesc | boolean | optional | Whether to sort in descending order Example: false |
Code example
{
"marketplace": "US",
"size": 50,
"page": 1,
"asin": "B072MQ5BRX"
}Response example
Platform response envelope. code 0 indicates success or acceptance; data contains the business result.
{
"data": {
"total": 1,
"marketplace": "US",
"asin": "B072MQ5BRX",
"data": [
{
"keyword": "phone case",
"keywordCn": "phone case",
"trafficKeywordType": "phone case",
"conversionKeywordType": "phone case",
"badges": [],
"rankPosition": {
"updatedTime": 1,
"pageSize": 1,
"index": 1,
"page": 1,
"position": 1
},
"adPosition": {
"updatedTime": 1,
"pageSize": 1,
"index": 1,
"page": 1,
"position": 1
},
"searches": 1,
"searchesRank": 1,
"searchesRankTimeFrom": 1,
"searchesRankTimeTo": 1,
"purchases": 1,
"purchaseRate": 1,
"products": 1,
"supplyDemandRatio": 1,
"trafficPercentage": 1,
"naturalRatio": 1,
"adRatio": 1,
"calculatedWeeklySearches": 1,
"impressions": 1,
"clicks": 1,
"bid": 1,
"bidMin": 1,
"bidMax": 1,
"latest1daysAds": 1,
"latest7daysAds": 1,
"latest30daysAds": 1,
"sprt": 1,
"monopolyClickRate": 1,
"top3ClickingRate": 1,
"top3ConversionRate": 1,
"titleDensity": 1,
"stats": [
{
"keywords": "phone case",
"total": 1,
"rankPosition": {
"updatedTime": 1,
"pageSize": 1,
"index": 1,
"page": 1,
"position": 1
},
"adPosition": {
"updatedTime": 1,
"pageSize": 1,
"index": 1,
"page": 1,
"position": 1
}
}
],
"updatedTime": 1
}
],
"summaryList": [
{
"total": 1,
"keywords": "phone case"
}
],
"columns": [],
"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 count Example: 1 |
data.marketplace | string | optional | Marketplace code Example: US |
data.asin | string | optional | Queried ASIN Example: B072MQ5BRX |
data.data | array | optional | Traffic keyword list (corresponds to third-party data.items) Example: [] |
data.data[] | object | required | Item in data data. |
data.data[].keyword | string | optional | Keyword Example: phone case |
data.data[].keywordCn | string | optional | Keyword Chinese translation Example: phone case |
data.data[].trafficKeywordType | string | optional | Traffic share type Example: phone case |
data.data[].conversionKeywordType | string | optional | Traffic conversion type Example: phone case |
data.data[].badges | array | optional | Impression position (traffic keyword type) Example: [] |
data.data[].rankPosition | object | optional | Organic ranking position info, see [Ranking Object](#ranking-object-rankposition--adposition) Example: {} |
data.data[].rankPosition.updatedTime | integer | optional | Ranking time Example: 1 |
data.data[].rankPosition.pageSize | integer | optional | Items per page Example: 1 |
data.data[].rankPosition.index | integer | optional | Position on current page Example: 1 |
data.data[].rankPosition.page | integer | optional | Page number Example: 1 |
data.data[].rankPosition.position | integer | optional | Position in total results Example: 1 |
data.data[].adPosition | object | optional | Ad ranking position info, same structure as [Ranking Object](#ranking-object-rankposition--adposition) Example: {} |
data.data[].adPosition.updatedTime | integer | optional | Ranking time Example: 1 |
data.data[].adPosition.pageSize | integer | optional | Items per page Example: 1 |
data.data[].adPosition.index | integer | optional | Position on current page Example: 1 |
data.data[].adPosition.page | integer | optional | Page number Example: 1 |
data.data[].adPosition.position | integer | optional | Position in total results Example: 1 |
data.data[].searches | integer | optional | Monthly search volume Example: 1 |
data.data[].searchesRank | integer | optional | Weekly search volume ranking Example: 1 |
data.data[].searchesRankTimeFrom | integer | optional | Weekly search volume ranking time range start Example: 1 |
data.data[].searchesRankTimeTo | integer | optional | Weekly search volume ranking time range end Example: 1 |
data.data[].purchases | integer | optional | Monthly purchase volume Example: 1 |
data.data[].purchaseRate | number | optional | Purchase rate Example: 1 |
data.data[].products | integer | optional | Product count Example: 1 |
data.data[].supplyDemandRatio | number | optional | Supply-demand ratio Example: 1 |
data.data[].trafficPercentage | number | optional | Traffic share Example: 1 |
data.data[].naturalRatio | number | optional | Traffic distribution - organic share Example: 1 |
data.data[].adRatio | number | optional | Traffic distribution - ad share Example: 1 |
data.data[].calculatedWeeklySearches | number | optional | Estimated weekly impressions Example: 1 |
data.data[].impressions | integer | optional | Impressions Example: 1 |
data.data[].clicks | integer | optional | Clicks Example: 1 |
data.data[].bid | number | optional | PPC bid Example: 1 |
data.data[].bidMin | number | optional | PPC bid lower limit Example: 1 |
data.data[].bidMax | number | optional | PPC bid upper limit Example: 1 |
data.data[].latest1daysAds | integer | optional | Ad competitors in the last 1 day Example: 1 |
data.data[].latest7daysAds | integer | optional | Ad competitors in the last 7 days Example: 1 |
data.data[].latest30daysAds | integer | optional | Ad competitors in the last 30 days Example: 1 |
data.data[].sprt | number | optional | SP-related ratio Example: 1 |
data.data[].monopolyClickRate | number | optional | Monopoly click rate Example: 1 |
data.data[].top3ClickingRate | number | optional | Top 3 click rate Example: 1 |
data.data[].top3ConversionRate | number | optional | Top 3 conversion rate Example: 1 |
data.data[].titleDensity | number | optional | Title density Example: 1 |
data.data[].stats | array | optional | High-frequency words, elements see table below Example: [] |
data.data[].stats[] | object | required | Item in data data[] stats. |
data.data[].stats[].keywords | string | optional | Word Example: phone case |
data.data[].stats[].total | integer | optional | Total count Example: 1 |
data.data[].stats[].rankPosition | object | optional | Organic ranking position Example: {} |
data.data[].stats[].rankPosition.updatedTime | integer | optional | Ranking time Example: 1 |
data.data[].stats[].rankPosition.pageSize | integer | optional | Items per page Example: 1 |
data.data[].stats[].rankPosition.index | integer | optional | Position on current page Example: 1 |
data.data[].stats[].rankPosition.page | integer | optional | Page number Example: 1 |
data.data[].stats[].rankPosition.position | integer | optional | Position in total results Example: 1 |
data.data[].stats[].adPosition | object | optional | Ad ranking position Example: {} |
data.data[].stats[].adPosition.updatedTime | integer | optional | Ranking time Example: 1 |
data.data[].stats[].adPosition.pageSize | integer | optional | Items per page Example: 1 |
data.data[].stats[].adPosition.index | integer | optional | Position on current page Example: 1 |
data.data[].stats[].adPosition.page | integer | optional | Page number Example: 1 |
data.data[].stats[].adPosition.position | integer | optional | Position in total results Example: 1 |
data.data[].updatedTime | integer | optional | Update time Example: 1 |
data.summaryList | array | optional | High-frequency keyword summary list Example: [] |
data.summaryList[] | object | required | Item in data summaryList. |
data.summaryList[].total | integer | optional | Total count Example: 1 |
data.summaryList[].keywords | string | optional | Keywords Example: phone case |
data.columns | array | optional | Column definitions Example: [] |
data.costToken | integer | optional | Token consumption Example: 1 |
data.type | string | optional | Render style Example: null |
data.title | string | optional | Provider-specific response title. Example: null |
data.sourceType | string | optional | Provider-specific source platform type. 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 |
data.dataSnapshotMonth | string | optional | Data snapshot month 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_traffic_keywords",
"arguments": {
"marketplace": "US",
"size": 50,
"page": 1,
"asin": "B072MQ5BRX"
}
}
}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-traffic-keywords/runMCP method
nexscope_amazon_traffic_keywordscURL
curl -X POST \
https://api.nexscope.ai/api/skill-api/v1/skills/amazon-traffic-keywords/run \
-H "Authorization: Bearer nk-..." \
-H "Content-Type: application/json" \
-d '{ "marketplace": "US", "size": 50, "page": 1, "asin": "B072MQ5BRX" }'Response
No response yet. Run the request to see the response here.
Related APIs
Amazon ASIN Keywords
Find keywords driving traffic to an Amazon ASIN.
Amazon Keyword Expansion
Find related Amazon keywords and compare search demand.
Amazon Keyword Intelligence
Explore weekly Amazon Brand Analytics search-term data.
Amazon Keyword Overview
Evaluate search demand and competition for an Amazon keyword.