How to Analyze Supplier Price Lists Fast with the SP-API
A distributor price list typically runs from 2,000 to 20,000 lines. Worked through by hand in Seller Central, it takes days, and by the time you finish, half the prices have moved. Amazon's Selling Partner API (SP-API) turns the same list into a ranked buy list in minutes, provided the pipeline is built correctly. This guide sets out a four-stage workflow: normalize the data, match identifiers, model the real profit, and verify eligibility.
Key takeaways
- Clean and validate barcodes before the first API call, because every SP-API operation is rate limited.
- Match UPCs to ASINs with searchCatalogItems, 20 identifiers per request, and check pack size on every match.
- Model profit on the real Buy Box price from getItemOffersBatch and fees from getMyFeesEstimates, plus the costs the fee API leaves out.
- Check getListingsRestrictions before you buy, and rank the final list by eligibility, then profit per month.
1. Prepare the price list for automated analysis
Every downstream call depends on clean input, so normalize the file first. Map the supplier's columns to a fixed schema: UPC/EAN, supplier SKU, description, case pack, unit cost and MOQ. Suppliers rarely agree on column names, and some quote case cost while others quote unit cost.
- Repair identifiers. Excel strips leading zeros and converts long codes to scientific notation. Store barcodes as text, pad UPC-A to 12 digits and EAN to 13, and remove spaces and dashes.
- Validate check digits. The last digit of every GTIN-12, GTIN-13 and GTIN-14 is a checksum. A failing code contains a typo and will either match nothing or match the wrong product.
- Convert to unit cost. Divide case cost by case pack and flag any row where the pack size is missing or ambiguous.
Rejecting malformed identifiers before the first request matters because every SP-API operation is rate limited. A bad row costs the same quota as a good one. Our free UPC and EAN validator checks individual codes.
2. Match UPCs to ASINs with the Catalog Items API
Batch lookups with searchCatalogItems
The Catalog Items API (version 2022-04-01) accepts up to 20 identifiers per request through the identifiers and identifiersType parameters (UPC, EAN, ISBN), scoped to a single marketplace. Request the identifiers, summaries, salesRanks and attributes data sets in the same call. That one response gives you the ASIN, title, brand, sales rank and package quantity without a second lookup.
Handle one-to-many and zero matches
One barcode can return several ASINs: the single unit, a bundle, a duplicate listing or a variation child. Rank the candidates by sales rank and confirm that the brand matches the supplier's. A code that returns nothing is not necessarily worthless. It may be a product nobody has listed yet, so flag it for manual review rather than deleting it.
Validate pack size
The costliest matching error in wholesale is a unit-versus-multipack mismatch: a single unit at $4 matched to a 6-pack ASIN selling at $30 looks like an extraordinary margin. Compare the catalog item's package quantity and title with the supplier's case pack, and recalculate cost per sellable unit before you go any further. UPC, EAN and ASIN matching mistakes covers the other traps.
Respect the rate limits
Each operation has its own rate and burst limits, published in Amazon's documentation and subject to change. Queue your requests, back off exponentially on HTTP 429, and cache resolved barcode-to-ASIN pairs so the supplier's next price list runs much faster.
3. Calculate the Buy Box price and fee structure
Use the real Buy Box price
Profit modelled on list price or MSRP is fiction. getItemOffersBatch (Product Pricing API) returns offer data for up to 20 ASINs per request:
- the current Buy Box landed price;
- the number of offers by condition and fulfillment channel;
- each offer's
IsBuyBoxWinnerandIsFulfilledByAmazonflags.
Where price history is available, model against a conservative 90-day average as well as today's price. Treat three conditions as red flags:
- Amazon itself holds the Buy Box;
- the Buy Box is suppressed;
- prices are spread widely across a crowded field of FBA sellers.
See Buy Box basics for wholesale sellers for why each one matters.
Estimate fees with getMyFeesEstimates
The Product Fees API's getMyFeesEstimates batches up to 20 ASIN-and-price pairs per request. Set IsAmazonFulfilled to true and send the Buy Box price, not MSRP, because the referral fee is a percentage of the price you submit. The response breaks the total into:
- Referral fee: a category percentage, with a per-item minimum;
- FBA fulfillment fee: set by size tier and shipping weight;
- Variable closing fee: charged in media categories.
Add the costs the fee API does not return
A fee estimate is not a landed cost. Add these per-unit costs:
- Inbound: shipping and placement to the fulfillment center;
- Storage: monthly storage, estimated from cubic feet and expected sell-through, plus an aged-inventory allowance for slow movers;
- Prep: labelling, polybagging and bundling;
- Returns: a returns reserve in high-return categories.
The landed cost guide breaks each component down.
The profit formula, worked
Net profit = Buy Box price − referral fee − FBA fee − inbound − storage − prep − unit cost. ROI is net profit divided by landed unit cost; margin is net profit divided by the Buy Box price. An illustrative example (fees vary by category, size tier and marketplace):
| Buy Box price | $24.99 |
| Referral fee (15%) | −$3.75 |
| FBA fulfillment fee | −$4.75 |
| Inbound, storage and prep | −$0.75 |
| Unit cost from the supplier | −$11.40 |
| Net profit | $4.34 |
| ROI on a $12.00 landed cost | 36.2% |
| Margin | 17.4% |
To test your own numbers, use the FBA profit and ROI calculator.
4. Verify ungating and listing restrictions
The Listings Restrictions API
A profitable product you cannot list is worth nothing. Call getListingsRestrictions for each ASIN with your sellerId, the marketplace and conditionType=new_new. An empty restriction list means you can list it. Otherwise, the reason code tells you what to do:
APPROVAL_REQUIRED: gated, with a link to the approval request;ASIN_NOT_FOUND: the ASIN does not exist in this marketplace;NOT_ELIGIBLE: a hard restriction that you cannot apply around.
Brand gating versus category gating
Category gating is well known, but for wholesale sellers brand gating is usually the tighter constraint: it applies even in open categories. Approval typically requires invoices from an authorized distributor, often for a minimum quantity. A supplier whose invoices Amazon accepts is therefore worth more than its price list alone suggests.
Hazmat and IP risk
Check the catalog attributes for dangerous-goods classification, which adds a separate review step and storage rules. Cross-check brands against your own list of IP complainants and MAP enforcers. Avoiding IP complaints and brand restrictions explains how to build that list.
Sort into actionable tiers
- Eligible now: buy if the numbers work.
- Approval available: apply first, using this supplier's invoice.
- Restricted: exclude from the order entirely.
5. Score and prioritize the buy list
Apply hard thresholds first: a minimum ROI (25–30% is common), a minimum net profit per unit, and a sales floor derived from sales rank. Then size each line:
- Starting quantity ≈ estimated monthly sales ÷ (FBA offers + 1).
- Limits: cap the quantity by the supplier's MOQ and your available cash.
Sort by eligibility, then profit per month, not by ROI alone. A 60% ROI on two sales a month ties up capital that a 25% ROI on two hundred sales would turn over many times. The sales-rank estimation guide explains how to convert rank into monthly units.
6. Make the workflow repeatable
Run each supplier's list again whenever the supplier refreshes it. Buy Box prices, fee schedules and your own approvals all change, and products that failed last quarter may pass now. Keep each run's results so you can see which ASINs crossed your thresholds or became ungated. Teams with engineering capacity can build this pipeline in-house. Everyone else can use a tool that already does it.
Run the whole pipeline in one upload
Wholesale Analyzer runs these four stages on the SP-API for you:
- Upload the supplier's Excel or CSV file (up to 200,000 rows) and it repairs the barcodes.
- It matches every UPC, EAN, ASIN or ISBN to Amazon and detects multipacks.
- It pulls the live Buy Box and Amazon's fee estimate for every match.
- It checks whether your account can list each product.
- Every line gets its profit, ROI, estimated sales and a BUY, REVIEW or AVOID decision.
Try it on 50 products from your own supplier price list free every month.
Stop guessing. Start buying with confidence.
Upload your next supplier list and see which products are worth your money, how many to order and the most you should pay. Your first scan every month is free.