PriceFetch uses a single GET endpoint with URL parameter instead of product IDs. Map your existing response parsing to PriceFetch's envelope format. Migration takes under an hour.
Common reasons developers switch to PriceFetch:
- **Simpler API** — one endpoint, one parameter. No product ID lookups, no complex query builders. Pass a URL, get a price. - **Lower cost** — PriceFetch's credit-based pricing is typically 50-80% cheaper than Rainforest API for price-only use cases. - **Multi-retailer support** — one API covers Amazon, Walmart, Target, and more. No need for separate integrations per retailer. - **No stale data** — every request is a live scrape. No database lag or cached results.
The trade-off: PriceFetch focuses on price data. If you need full product details (descriptions, reviews, images), PriceFetch isn't a drop-in replacement for Rainforest or Keepa's full product endpoints.
Here's how PriceFetch's response maps to common alternative APIs:
**PriceFetch response:** ```json { "success": true, "data": { "url": "https://amazon.com/dp/B0EXAMPLE", "price": 29.99, "currency": "USD", "in_stock": true, "retailer": "amazon", "timestamp": "2026-03-22T12:00:00Z" }, "credits_remaining": 487 } ```
**From Rainforest API:** Replace `result.product.buybox_winner.price.value` with `data.price`. Replace `result.product.buybox_winner.price.currency` with `data.currency`. Replace `result.product.buybox_winner.availability.raw` checks with `data.in_stock`.
**From Keepa:** Keepa returns price history as arrays of timestamp-price pairs in cents. PriceFetch returns the current price as a float in the standard currency unit. Replace `product.csv[0]` array parsing with a direct `data.price` read.
**From ScraperAPI:** If you were using ScraperAPI with custom parsing logic, PriceFetch eliminates the parsing step entirely. Replace your ScraperAPI call + HTML parser with a single PriceFetch call.
# Before: Rainforest API
resp = requests.get("https://api.rainforestapi.com/request", params={
"api_key": RAINFOREST_KEY,
"type": "product",
"asin": "B0EXAMPLE",
"amazon_domain": "amazon.com",
})
data = resp.json()
price = data["product"]["buybox_winner"]["price"]["value"]
currency = data["product"]["buybox_winner"]["price"]["currency"]
# After: PriceFetch
resp = requests.get("https://api.pricefetch.dev/v1/price", params={
"url": "https://www.amazon.com/dp/B0EXAMPLE",
}, headers={"X-API-Key": PRICEFETCH_KEY})
data = resp.json()
price = data["data"]["price"]
currency = data["data"]["currency"]1. **Sign up for PriceFetch** and get your API key from the dashboard.
2. **Convert product identifiers to URLs** — if you're using ASINs (Rainforest) or product IDs, convert them to full URLs: `https://www.amazon.com/dp/{ASIN}`.
3. **Update your HTTP client call** — change the endpoint URL, switch from `Authorization` to `X-API-Key` header, change parameters.
4. **Update response parsing** — map `data.price`, `data.currency`, `data.in_stock` to your existing data structures.
5. **Update error handling** — PriceFetch uses different error codes. Map them to your existing error categories (see the error codes guide).
6. **Test with 10-20 products** — verify prices match what you expect before switching all traffic.
7. **Switch traffic gradually** — run PriceFetch in parallel with your existing API for a few days. Compare results. Switch over when you're confident.
8. **Decommission the old API** — cancel your old subscription after the migration is verified.
Still stuck?
Our support team can help debug your integration.
Sign up in 30 seconds. No credit card required. One credit per successful API call.