The ceiling on manual product research is how many pages you are willing to scroll. The point of using an API is not accuracy; it is that the same filter can run again next week, with comparable results and auditable criteria.
Here is a three-step flow. For keys and auth see authentication; keep the secret server-side.
export ECOMMERCE_DATA_API_KEY="your_api_key"Step 1: decide which category is worth entering
Start from category size rather than from a product. Market Research filters niches by category node path and average monthly units:
curl --request POST \
--url https://ecommercedataapi.com/v1/amazon/market/research \
--header "Content-Type: application/json" \
--header "X-API-Key: ${ECOMMERCE_DATA_API_KEY}" \
--data '{
"marketplace": "US",
"month": "202507",
"nodeIdPath": "172282:281407",
"minAvgUnits": 100,
"maxAvgUnits": 10000,
"page": 1
}'minAvgUnits and maxAvgUnits carry this step. The floor drops niches with no demand; the ceiling drops the big pools already saturated by major brands. What is left in between is the enterable band, and the actual numbers depend on your capital and logistics.
With candidate categories in hand, run one elimination pass using Brand Concentration and Seller Concentration. A category where the top brands hold too much share can be dropped at the research stage.
Step 2: filter products inside the category
Product Research is the heaviest step, with the most conditions:
curl --request POST \
--url https://ecommercedataapi.com/v1/amazon/product/research \
--header "Content-Type: application/json" \
--header "X-API-Key: ${ECOMMERCE_DATA_API_KEY}" \
--data '{
"marketplace": "US",
"month": "nearly",
"keyword": "bath rug",
"matchType": 2,
"minPrice": 20,
"maxPrice": 80
}'The three groups of conditions do different work:
- Price band — decides whether your cost structure can compete. The hardest constraint.
- Rating and review count — few reviews with a decent rating usually means the position is not yet locked in by reputation.
- Seller count — many sellers on one ASIN means a crowded resale market. Check fulfillment alongside it.
The full parameter list is in the endpoint docs. month accepts nearly for the most recent period, which keeps a scheduled job from needing a new month value every run.
Step 3: rank the shortlist by magnitude
Once you have candidates you need an order. BSR Sales Estimate needs only a BSR and a category ID, which suits calling it across dozens or hundreds of ASINs:
curl --request POST \
--url https://ecommercedataapi.com/v1/amazon/sales/prediction/bsr \
--header "Content-Type: application/json" \
--header "X-API-Key: ${ECOMMERCE_DATA_API_KEY}" \
--data '{
"marketplace": "US",
"bsr": 1,
"categoryId": "Category ID"
}'For a closer read on one priority ASIN, use Product Sales Estimate. Both are estimates.
Three things to get right in a scheduled job
One: limits are per account. RPM and concurrency are enforced at the account level, so extra keys do not raise your quota. Control your own concurrency in step 3 and back off on 429 using Retry-After — see errors and rate limits.
Two: only successful billable requests are charged. Requests that fail before returning a billable result are not charged, so retrying is safe — but a bad loop burns calls quickly. Get the flow working with "size": 1 before opening up pagination.
Three: pin the definitions. Put marketplace and month in the job config rather than scattered through the code. Mismatched definitions are the most common source of wrong period-over-period comparisons.
Reading the fields
| Kind | Examples | How to use it |
|---|---|---|
| Platform-visible | price, rating, review count, seller count | Current snapshot; verifiable, usable directly |
| Third-party estimate | monthly units, revenue, demand magnitude | Ranking and orders of magnitude only, never financial projection |
| Structural metric | brand concentration, price distribution | Answers "can I get in", not "how much would I make" |
Limits
- Sales and revenue are estimates that get revised; the same ASIN may read differently a week later.
- Category node paths differ per marketplace. Reusing one
nodeIdPathacross marketplaces will be wrong. - This flow does not cover unit cost, freight, or certification. It answers only whether the market is worth entering.
To run the same flow without writing code, hand it to an agent: Handing product research to an AI agent. The next step is a keyword set for the survivors: Building your own keyword library.