Normalize Retail Product Data From Any Retailer Into One Schema
One POST /normalize merges Amazon, Walmart, eBay, Target, Best Buy, Costco, Shopify, and other product JSON into a single canonical product model—merged products array, per-source results and errors, partial success when one payload fails. Add POST /compare for cheapest, best reviewed, and deterministic rankings.
Try Retail Data Normalization API Basic on RapidAPI: 100 requests/month free
Stop maintaining parallel product parsers per retailer. Feed raw catalog or API responses into one normalization layer—same identifiers, price, availability, and reviews shape every time. Ship comparison and analytics features faster without chasing every vendor’s JSON churn.
Real-world use cases
- Unify multi-retailer catalog or affiliate feeds into one schema for search, filters, and PDPs.
- Power price-comparison and deal apps with normalized prices and availability before your own matching logic.
- Batch several
retailerId+payloadpairs in one request for ETL or nightly merges. - Rank offers with
/compareusingqueryIntentsuch ascheapest,best_reviewed, orin_stock_only. - Isolate failures when one source is malformed—other retailers still return normalized products.
- Route unknown vendors through
retailerId: "custom"for best-effort field extraction.
Why not build your own normalizer?
- Each marketplace nests price, offers, and media differently
- Availability and seller semantics change without notice
- Adding a new retailer multiplies edge cases
Centralizing mappings here means you inherit updates when common payload shapes drift.
Who this API helps
- E-commerce, marketplaces, and shopping extensions
- Price intelligence and competitive analytics teams
- Data engineers merging heterogeneous product feeds
- Anyone needing deterministic JSON-to-JSON normalization (not scraping)
Before and after normalization
Retailers use different envelopes and field names. The API maps them into one predictable product shape (illustrative).
Before (vendor-style fragment)
{
"Items": [{ "ASIN": "B0…", "ItemInfo": { "Title": { "DisplayValue": "…" } } }]
}
After (canonical fields)
{
"id": "amazon:B0…",
"title": "…",
"price": { "amount", "currency", "display" },
"availability": "in_stock",
"rawSource": { "retailerId": "amazon" }
}
What the API does
POST /normalize — Body includes an inputs array. Each item has retailerId (e.g. amazon, walmart, custom) and payload (raw JSON). Response includes merged products, per-source results, and errors.
POST /compare — Send a normalized products array plus optional queryIntent to obtain price and review comparison blocks and rankings.
This API operates on structured JSON you already have. It does not fetch live listings from retailers.
Retailers: dedicated keys vs custom
The retailerId string selects a normalizer. Well-known merchants use dedicated adapters; unknown labels can use custom for heuristic extraction.
Common retailerId values
Examples with first-class or common paths (not exhaustive):
amazon— catalog / PA-API style itemswalmart— items, pricing fieldsebay,target,bestbuy,costcoshopify,google_shopping,etsy,flipkart
Custom and versions
Use retailerId: "custom" for unknown shapes. Some sources accept optional schemaVersion per input when versioned normalizers exist—see the RapidAPI docs for your payload type.
Many additional retailer keys are supported; check the README on the hub or your listing for the full table.
Want a first-class adapter for a retailer? Request it on RapidAPI discussions — include a redacted sample payload and the vendor name.
Request & response schema
Normalize: POST https://retail-data-normalization-comparison.p.rapidapi.com/normalize with Content-Type: application/json, x-rapidapi-key, x-rapidapi-host.
View request schema · View response schema · View error & warning codes
Try it in the playground
Pick a sample (normalize or compare), edit JSON, add your RapidAPI key, run. Code snippets below follow the same URL path. The key is sent only to RapidAPI.
Loads a template into the JSON editor. Switching samples changes the path (/normalize vs /compare).
Subscribe on RapidAPI for production keys and plan details.
Get code
Snippets use the JSON in the playground and the active path from the sample (/normalize or /compare). Choose a language, refresh after edits, then copy.
Integration time: Under 5 minutes with any HTTP client that can POST JSON and set RapidAPI headers.
Pricing & tiers (RapidAPI)
Built for pipelines that need canonical product JSON across heterogeneous retailers—comparison UIs, warehouses, and analytics.
Current plans on RapidAPI:
Basic
$0/mo
Primary: 100/month
Pro
$9.99/mo
Primary: 10,000/month
Ultra
$49.99/mo
Primary: 100,000/month, then $0.003 each
Mega
$99.99/mo
Primary: 250,000/month, then $0.002 each
If RapidAPI pricing or quotas change, the live listing is authoritative.
What to expect
Successful calls return JSON with normalized product data. Use your RapidAPI key on every request. Stateless: no payload storage. See RapidAPI docs for full request and response shapes including /compare.
About this API
Who should use this API
Teams that need one schema for product data across retailers: e-commerce platforms, comparison tools, analytics pipelines, and marketplace integrators.
Also known as
Retail JSON normalizer, multi-retailer product API, catalog unification API, Amazon Walmart eBay normalizer.
Retail Data Normalization & Comparison API
Standardize and compare retail product data across Amazon, Walmart, eBay, Target, Best Buy, Costco, Shopify, Google Shopping, Etsy, and more. Send an inputs array with retailerId and raw payload; receive merged products, per-source results, and errors. Optional /compare returns rankings and comparison blocks. Stateless, up to 25MB per request, partial success per source.
Frequently asked questions
-
No. It only normalizes JSON payloads you send. It does not call Amazon, Walmart, eBay, or other retailer APIs.
-
No for this API. You use your RapidAPI key here. You obtain product JSON through your own integrations.
-
Send a normalized
productsarray with optionalqueryIntent(cheapest,best_reviewed,in_stock_only,exclude_third_party) to get price and review comparison summaries and rankings. -
Yes. Use an
inputsarray; each element hasretailerIdandpayload. You get one mergedproductslist plus per-source results. -
Other sources still normalize. Inspect
results[].errorand the top-levelerrorsarray for details. -
25MB per request for
/normalizeand/compare. -
No. The service is fully stateless.
-
On RapidAPI: Basic is free with 100 requests/month; Pro ($9.99/mo) includes 10,000/month; Ultra ($49.99/mo, recommended) includes 100,000/month; Mega ($99.99/mo) includes 250,000/month—with overage rules as shown on the listing.