Firecrawl Ecommerce Product Scraping: Clean JSON Product Data 2026
Use Firecrawl to scrape product pages into structured JSON. Map product URLs first, extract with a schema (name, price, stock, brand), validate and normalize, then upsert to your storage. For heavy anti-bot sites or very high volume, Apify ecommerce actors may be a better fit.
Start Firecrawl product scraping →
Product Schema
Define fields before crawling:
| Field | Required | Notes |
|---|---|---|
| product_name | Yes | |
| price | Yes | Numeric, non-negative |
| currency | Yes | ISO (USD, EUR, etc.) |
| in_stock | Yes | Boolean |
| product_url | Yes | Canonical URL |
| brand | No | High value for matching |
Optional: rating, review_count, variant, image_url. Add only after baseline consistency is proven.
Extraction Flow
- Discover URLs — Use map or a known category list
- Batch extract — Run extract with product schema
- Validate — Price numeric, currency in allowed set, URL canonical
- Normalize — Currency, decimals, locale formats
- Upsert — Store with run metadata (source_url, timestamp)
Python Example
from firecrawl import Firecrawl
from pydantic import BaseModel
class Product(BaseModel):
product_name: str
price: float
currency: str
in_stock: bool
product_url: str
brand: str | None = None
app = Firecrawl(api_key="fc-YOUR-API-KEY")
# Single product page
res = app.extract(
urls=["https://example.com/product/sku-123"],
prompt="Extract product name, price, currency, stock status, URL, and brand.",
schema=Product.model_json_schema()
)
data = res.get("data", {})
product = Product.model_validate(data)
Validation Rules
pricenumeric, ≥ 0currencyin allowed ISO setproduct_urlcanonical (no tracking params)- Missing required fields → route to review queue
Use Cases
| Use Case | Best Tool |
|---|---|
| Docs, blogs, general pages | Firecrawl |
| Product catalog, few domains | Firecrawl |
| Amazon, Walmart, heavy anti-bot | Apify actors |
| Millions of product pages | Apify + Bright Data |
Firecrawl excels at LLM-ready markdown and schema extraction. Apify offers platform-specific actors with proxy rotation and anti-bot handling.
Data Quality Controls
- Deduplicate by canonical URL + domain
- Track extraction confidence or validation status
- Keep raw snapshots for schema drift debugging
- Alert on null-rate spikes in key fields
For platform-specific scrapers (Amazon, Shopify), see Apify ecommerce actors.
Start with name, price, currency, stock status, and canonical product URL. Add ratings and variants after baseline consistency.
Set by business need. High-change categories may need multiple checks daily; low-change can run daily or weekly.
Normalize currencies, deduplicate URLs, and validate before treating extracted price differences as real events.
Firecrawl: fast schema extraction, clean markdown. Apify: pre-built actors for Amazon/Shopify, better anti-bot.




