Amazon Search By Image
Find visually similar Amazon products from an image URL across eight marketplaces, with optional sales-data enrichment.
Cost21 credits / call
POST ·
https://api.nexscope.ai/api/skill-api/v1/skills/amazon-search-by-image/runMCP · nexscope_amazon_search_by_imageChoose an integration method
Amazon Marketplace Intelligence
What this API does
Find visually similar Amazon products from an image URL across eight marketplaces, with optional sales-data enrichment.
Endpoint
https://api.nexscope.ai/api/skill-api/v1/skills/amazon-search-by-image/runMCP method
nexscope_amazon_search_by_imageStep 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-search-by-image/runRun an API
Request parameters documented by ecommerce.amazon-search-by-image.
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-search-by-image/run' \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"aggregateByKeepaData": false,
"amazonDomain": "amazon.com",
"imageUrl": "https://m.media-amazon.com/images/I/31SkgVLWSuL._SL75_.jpg"
}'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-search-by-image/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-search-by-image/run |
| Auth | Bearer API key |
| Content-Type | application/json |
Request parameters
| Name | Type | Required | Description |
|---|---|---|---|
imageUrl | string | required | Valid, publicly accessible image URL (maximum 1,000 characters) Example: https://m.media-amazon.com/images/I/31SkgVLWSuL._SL75_.jpg |
amazonDomain | string | required | Amazon marketplace. Supported domains: United States (amazon.com), United Kingdom (amazon.co.uk), Germany (amazon.de), France (amazon.fr), Italy (amazon.it), Spain (amazon.es), Japan (amazon.co.jp), and India (amazon.in). Default: amazon.com Example: amazon.com |
sort | string | optional | Sort by price, rating, or rating count. Values: default, price-asc-rank, price-desc-rank, rating-asc-rank, rating-desc-rank, ratings-asc-rank, and ratings-desc-rank |
deliveryZip | string | optional | Delivery postal code or city within the selected marketplace. If omitted, the marketplace default is used. Maximum 1,000 characters. Defaults: United States=10001, United Kingdom=EC1A 1BB, Germany=10115, France=75001, Italy=00100, Spain=28001, Japan=100-0001, and India=110034 |
countryOrAreaCode | string | optional | Destination country or region code for cross-border delivery, such as CN, JP, KR, TW, HK, MO, SG, TH, VN, PH, or MY. Do not provide this together with deliveryZip. Amazon India does not support cross-border destination settings. Maximum 1,000 characters |
aggregateByKeepaData | boolean | optional | Whether to enrich results with Keepa data such as sales rank, monthly sales, FBA fees, and dimensions Example: false |
Code example
{
"aggregateByKeepaData": false,
"amazonDomain": "amazon.com",
"imageUrl": "https://m.media-amazon.com/images/I/31SkgVLWSuL._SL75_.jpg"
}Response example
Platform response envelope. code 0 indicates success or acceptance; data contains the business result.
{
"data": {
"total": 1,
"totalCount": 1,
"perPage": 1,
"currentPage": 1,
"columns": [],
"costToken": 1,
"products": [
{
"asin": "B072MQ5BRX",
"imageUrl": "https://example.com/image.jpg",
"asinUrl": "https://www.amazon.com/dp/B072MQ5BRX",
"price": 1,
"oldPrice": 1,
"rating": 1,
"ratings": 1,
"salesRank": 1,
"salesRank30": 1,
"salesRank90": 1,
"salesRank180": 1,
"monthlySalesUnits": 1,
"monthlySalesRevenue": 1,
"reviewCount": 1,
"fbaFees": 1,
"profit": 1,
"referralFeePercentage": 1,
"primePrice": 1,
"buyBoxSellerId": "example-id",
"sellerNum": 1,
"variationNum": 1,
"parentAsin": "B072MQ5BRX",
"availableDate": "2026-01-01",
"lastUpdate": "2026-01-01",
"itemLength": 1,
"itemWidth": 1,
"itemHeight": 1,
"packageLength": 1,
"packageWidth": 1,
"packageHeight": 1,
"packageQuantity": 1,
"categoryTreeId": "example-id",
"rootCategory": 1,
"isAdultProduct": false,
"isHazmat": false,
"productImageUrls": []
}
]
},
"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 rows Example: 1 |
data.totalCount | integer | optional | Total count Example: 1 |
data.perPage | integer | optional | Items per page Example: 1 |
data.currentPage | integer | optional | Current page Example: 1 |
data.type | string | optional | Rendering style Example: null |
data.sourceType | string | optional | Source type Example: null |
data.columns | array | optional | Column definitions used for rendering Example: [] |
data.costToken | integer | optional | Tokens consumed Example: 1 |
data.products | array | optional | Product list; see the product fields below Example: [] |
data.products[] | object | required | Item in data products. |
data.products[].asin | string | optional | ASIN Example: B072MQ5BRX |
data.products[].title | string | optional | Product title Example: null |
data.products[].imageUrl | string | optional | Image URL Example: https://example.com/image.jpg |
data.products[].asinUrl | string | optional | Amazon ASIN detail URL Example: https://www.amazon.com/dp/B072MQ5BRX |
data.products[].price | number | optional | Current price in the marketplace currency Example: 1 |
data.products[].oldPrice | number | optional | List price Example: 1 |
data.products[].currency | string | optional | Currency Example: null |
data.products[].rating | number | optional | Current rating from 0.0 to 5.0 Example: 1 |
data.products[].ratings | integer | optional | Rating count Example: 1 |
data.products[].brand | string | optional | Brand Example: null |
data.products[].sourceType | string | optional | Product source type Example: null |
data.products[].sourceTool | string | optional | Source tool Example: null |
data.products[].salesRank | integer | optional | Sales rank from Keepa Example: 1 |
data.products[].salesRank30 | integer | optional | Average sales rank over the past 30 days from Keepa Example: 1 |
data.products[].salesRank90 | integer | optional | Average sales rank over the past 90 days from Keepa Example: 1 |
data.products[].salesRank180 | integer | optional | Average sales rank over the past 180 days from Keepa Example: 1 |
data.products[].monthlySalesUnits | integer | optional | Monthly units sold from Keepa Example: 1 |
data.products[].monthlySalesRevenue | number | optional | Monthly sales revenue from Keepa Example: 1 |
data.products[].monthlySalesUnits1MonthAgo | integer | optional | Monthly units sold 1 month ago, from Keepa Example: null |
data.products[].monthlySalesUnits2MonthsAgo | integer | optional | Monthly units sold 2 months ago, from Keepa Example: null |
data.products[].monthlySalesUnits3MonthsAgo | integer | optional | Monthly units sold 3 months ago, from Keepa Example: null |
data.products[].monthlySalesUnits4MonthsAgo | integer | optional | Monthly units sold 4 months ago, from Keepa Example: null |
data.products[].monthlySalesUnits5MonthsAgo | integer | optional | Monthly units sold 5 months ago, from Keepa Example: null |
data.products[].monthlySalesUnits6MonthsAgo | integer | optional | Monthly units sold 6 months ago, from Keepa Example: null |
data.products[].monthlySalesUnits7MonthsAgo | integer | optional | Monthly units sold 7 months ago, from Keepa Example: null |
data.products[].monthlySalesUnits8MonthsAgo | integer | optional | Monthly units sold 8 months ago, from Keepa Example: null |
data.products[].monthlySalesUnits9MonthsAgo | integer | optional | Monthly units sold 9 months ago, from Keepa Example: null |
data.products[].monthlySalesUnits10MonthsAgo | integer | optional | Monthly units sold 10 months ago, from Keepa Example: null |
data.products[].monthlySalesUnits11MonthsAgo | integer | optional | Monthly units sold 11 months ago, from Keepa Example: null |
data.products[].monthlySalesUnits12MonthsAgo | integer | optional | Monthly units sold 12 months ago, from Keepa Example: null |
data.products[].reviewCount | integer | optional | Review count from Keepa Example: 1 |
data.products[].fbaFees | number | optional | FBA fulfillment fee in the marketplace currency from Keepa Example: 1 |
data.products[].profit | number | optional | Profit margin percentage from Keepa; for example, 25.5 means 25.5% Example: 1 |
data.products[].referralFeePercentage | number | optional | Referral fee percentage from Keepa Example: 1 |
data.products[].fulfillment | string | optional | Fulfillment method from Keepa: AMZ, FBA, or FBM Example: null |
data.products[].primePrice | number | optional | Prime price from Keepa Example: 1 |
data.products[].buyBoxSellerId | string | optional | Buy Box seller ID from Keepa Example: example-id |
data.products[].sellerNum | integer | optional | Seller count from Keepa Example: 1 |
data.products[].variationNum | integer | optional | Variation count from Keepa Example: 1 |
data.products[].parentAsin | string | optional | Parent ASIN from Keepa Example: B072MQ5BRX |
data.products[].availableDate | string | optional | Listing date from Keepa in yyyy-MM-dd HH:mm:ss format Example: 2026-01-01 |
data.products[].lastUpdate | string | optional | Last update time from Keepa in yyyy-MM-dd HH:mm:ss format Example: 2026-01-01 |
data.products[].manufacturer | string | optional | Manufacturer from Keepa Example: null |
data.products[].model | string | optional | Model from Keepa Example: null |
data.products[].color | string | optional | Color from Keepa Example: null |
data.products[].material | string | optional | Primary materials used in the product construction, from Keepa Example: null |
data.products[].weight | string | optional | Weight in grams from Keepa Example: null |
data.products[].dimension | string | optional | Dimensions from Keepa Example: null |
data.products[].itemLength | integer | optional | Product length in millimeters from Keepa; 0 or -1 when unavailable Example: 1 |
data.products[].itemWidth | integer | optional | Product width in millimeters from Keepa; 0 or -1 when unavailable Example: 1 |
data.products[].itemHeight | integer | optional | Product height in millimeters from Keepa; 0 or -1 when unavailable Example: 1 |
data.products[].packageLength | integer | optional | Package length in millimeters from Keepa Example: 1 |
data.products[].packageWidth | integer | optional | Package width in millimeters from Keepa Example: 1 |
data.products[].packageHeight | integer | optional | Package height in millimeters from Keepa Example: 1 |
data.products[].packageWeight | string | optional | Package weight in grams from Keepa Example: null |
data.products[].packageDimensions | string | optional | Package dimensions from Keepa Example: null |
data.products[].packageQuantity | integer | optional | Number of items in the package from Keepa; 0 or -1 when unavailable Example: 1 |
data.products[].dimensionsType | string | optional | Dimension type from Keepa Example: null |
data.products[].categoryTree | string | optional | Category tree from Keepa Example: null |
data.products[].categoryTreeId | string | optional | Category tree ID from Keepa Example: example-id |
data.products[].rootCategory | integer | optional | Root category ID from Keepa Example: 1 |
data.products[].isAdultProduct | boolean | optional | Whether the product is classified as adult content by Keepa Example: false |
data.products[].isHazmat | boolean | optional | Whether the product is classified as hazardous by Keepa Example: false |
data.products[].urlSlug | string | optional | URL slug from Keepa Example: null |
data.products[].productImageUrls | array | optional | Product image URLs from Keepa Example: [] |
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 |
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_search_by_image",
"arguments": {
"aggregateByKeepaData": false,
"amazonDomain": "amazon.com",
"imageUrl": "https://m.media-amazon.com/images/I/31SkgVLWSuL._SL75_.jpg"
}
}
}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-search-by-image/runMCP method
nexscope_amazon_search_by_imagecURL
curl -X POST \
https://api.nexscope.ai/api/skill-api/v1/skills/amazon-search-by-image/run \
-H "Authorization: Bearer nk-..." \
-H "Content-Type: application/json" \
-d '{ "aggregateByKeepaData": false, "amazonDomain": "amazon.com", "imageUrl": "https://m.media-amazon.com/images/I/31SkgVLWSuL._SL75_.jpg" }'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 Broad Product Search
Find Amazon products by sales, price, ratings, and fulfillment.
Amazon Category Lookup
Find Amazon category IDs by marketplace or category name.
Amazon Competitor Lookup
Compare competing Amazon products by sales, price, and growth.