Vibe Scraping - Ecommerce
Pricing
Pay per event
Vibe Scraping - Ecommerce
AI-built crawlers to extract data with a consistent schema across all ecommerce websites.
Pricing
Pay per event
Rating
5.0
(2)
Developer

Extralt
Actor stats
2
Bookmarked
6
Total users
4
Monthly active users
34 minutes ago
Last modified
Categories
Share
Vibe Scraping - Ecommerce
One actor, any ecommerce website
Part of our "vibe scraping series":
AI-built crawlers to extract data with a consistent schema across all websites in a vertical.
⚠️ Beta Release
This actor is currently in beta (version 0.x.x). While we strive for high-quality extraction across all websites, you may encounter issues with certain sites or configurations. We're actively improving the system based on extraction results and customer feedback. If you experience any problems or have suggestions, please report them on the issues tab.
🤖 About us
We are Extralt, and we are rethinking web scraping from the ground up. Traditional scrapers break when websites change. AI-powered scrapers are too slow and expensive to scale. We built a third way: crawlers generated by AI but run as compiled code, combining the adaptability of LLMs with the speed of custom-built extractors. We handle all the complexity behind the scenes, you get enterprise-scale performance.
This gives you the best of both worlds:
- AI-level adaptability: works with any website
- Code-level performance: as fast as custom-built scrapers
🔥 Key Features
- Universal Coverage: Works on any ecommerce site → no more hunting for site-specific actors
- Consistent Schema: Same data structure across all ecommerce sites → no per-site field mapping needed
- Blazing Fast: Built from scratch in 100% Rust → target throughput of ~30 pages/second (close to 2,000 pages/minute)
✔️ Use Cases
- Price Intelligence: Monitor competitor pricing across multiple stores with consistent data
- Inventory Tracking: Track product availability and variants across brands
- Market Research: Aggregate product catalogs from entire verticals
- Data Integration: One schema works across all sources to plug directly into your pipeline
🪙 Pricing
This actor uses a pay-per-event pricing model with two billable events:
- Actor Start: Charged once per run at
$0.01 - Result: Charged per successfully extracted product, price varies based on the Apify subscription tier:
| Subscription | Discount | Price |
|---|---|---|
| Starter | Bronze | $0.004 |
| Scale | Silver | $0.003 |
| Business | Gold | $0.002 |
Example: Extracting 1,000 products on a Business plan costs: $0.01 (start) + (1,000 × $0.002) = $2.01
Note that only paying customers can use this actor.
⬇️ Input
The actor requires 3 parameters:
-
Start URLs One or more URLs to begin crawling.
The crawler intelligently adapts based on the URL type:- Catalog/Category Page: Extracts all products from the category, following pagination automatically
- Any other page type: Attempts to parse the sitemap, or crawls by following internal links
Respect these constraints:
-
This actor uses an extraction schema tailored to the ecommerce vertical, so only ecommerce URLs are allowed
-
Only 1 host allowed: if you provide multiple URLs, they must all have the same host
-
URL(s) should match the target country (e.g.,
https://www.nike.com/frfor France)
Note that during the Apify Challenge, scraping the following websites is not allowed: YouTube, LinkedIn, Instagram, Facebook, TikTok, X, Apollo.io, Amazon, Google Maps, Google Search, Google Trends.
-
Budget The crawler will run until the budget is reached or no more URLs are found, whichever comes first.
-
Country Select the target country to route requests through the appropriate proxy location.
This ensures you're accessing the correct regional version of the website.
We only use high-quality residential proxies, and we will gradually add more countries to choose from.
⬆️ Output
We provide two views of the dataset (in addition to the All fields view):
Overview: All extracted fields including URL, data (as JSON object), timestamp, and cache status

Highlight: Key product fields: brand, title, subtitle, main image, and URL

Each extracted product is returned as a structured JSON object with:
Metadata
url: Product page URLextracted_at: Unix timestamp of extractioncached: Whether the result was served from our cache (see Result Caching for more details)
Product Data
The data field contains comprehensive product information extracted from the page (see below for the full schema).
Note: The exact fields extracted depend on what's available on the target website, and what the AI agent was able to extract. We are working on improving the extraction quality.
Here is the schema for the extracted data:
{"url": {"description": "Product page url","type": "url"},"id": {"description": "Unique identifier of the product","type": "string"},"brand": {"description": "Brand of the product","type": "string"},"title": {"description": "Title or name of the product","type": "string"},"subtitle": {"description": "Subtitle of the product","type": "string"},"breadcrumbs": {"description": "Page navigation breadcrumbs. Example: Clothing > Sweats > Hoodies","type": "string"},"categories": {"description": "List of categories names","type": "array"},"description": {"description": "Description of the product","type": "string"},"main_image": {"description": "Main image of the product","type": "url"},"images": {"description": "List of image URLs in the carousel","type": "array"},"videos": {"description": "List of video URLs","type": "array"},"publication_date": {"description": "Publication date on the website","type": "date"},"color": {"description": "Color","type": "string"},"pattern": {"description": "Pattern","type": "string"},"material": {"description": "Materials","type": "string"},"country_of_origin": {"description": "Country of origin or manufacturing","type": "string"},"gender": {"description": "Gender","type": "string"},"age_group": {"description": "Age group","type": "string"},"properties_list": {"description": "List of additional properties or specifications","type": "array"},"properties_dict": {"description": "Dictionary of additional properties","type": "dict"},"ratings": {"description": "Product ratings and reviews information","type": "record","properties": {"average_rating": {"description": "Average rating score","type": "number"},"rating_scale": {"description": "Maximum rating scale","type": "number"},"total_reviews": {"description": "Total number of reviews or ratings","type": "number"}}},"product_group": {"description": "Groups related products that each have their own page (e.g., same shirt in different colors with separate URLs like /shirt-blue, /shirt-red)","type": "record","properties": {"id": {"description": "Group identifier shared by all products in the group","type": "string"},"varies_by": {"description": "Attributes that have separate pages (e.g., [\"color\"] when each color has its own URL)","type": "array","items": {"description": "Attribute name","type": "string"}},"attributes": {"description": "This product's attribute values (e.g., {\"color\": \"blue\"})","type": "dict"}}},"offers": {"description": "Pricing and availability from one or more sellers (use this for products without variants, otherwise use variants.list[].offers)","type": "array","items": {"description": "Offer from a specific seller","type": "record","properties": {"id": {"description": "Offer identifier","type": "string"},"price": {"description": "Pricing details","type": "record","properties": {"current_amount": {"description": "Current price","type": "number"},"full_amount": {"description": "Original price before discount","type": "number"},"currency": {"description": "Currency code (USD, EUR, etc.)","type": "string"},"on_sale": {"description": "Whether on sale","type": "boolean"},"sale_percentage": {"description": "Discount percentage","type": "number"}}},"seller": {"description": "Seller details","type": "record","properties": {"name": {"description": "Seller name","type": "string"},"kind": {"description": "Seller type (marketplace, reseller, or brand)","type": "enum","options": ["marketplace","reseller","brand"]},"id": {"description": "Seller identifier","type": "string"},"url": {"description": "Seller's store URL","type": "url"}}},"condition": {"description": "Product condition (new, used, refurbished, etc.)","type": "string"},"availability": {"description": "Stock information","type": "record","properties": {"available": {"description": "Whether available for purchase","type": "boolean"},"stock": {"description": "Stock details (e.g., \"In stock\", \"Only 3 left\")","type": "string"}}}}}},"variants": {"description": "Different options of the same product on this page (e.g., sizes) selected via dropdowns/buttons without URL changes","type": "record","properties": {"varies_by": {"description": "Selectable attributes on this page (e.g., [\"size\"])","type": "array"},"list": {"description": "List of available variants","type": "array","items": {"description": "Individual variant details","type": "record","properties": {"id": {"description": "Variant identifier (SKU, GTIN, etc.)","type": "string"},"attributes": {"description": "Variant attribute values (e.g., {\"size\": \"M\"})","type": "dict"},"main_image": {"description": "Variant-specific image","type": "url"},"offers": {"description": "Offers for this variant","type": "array","items": {"description": "Offer from a specific seller","type": "record","properties": {"id": {"description": "Offer identifier","type": "string"},"price": {"description": "Pricing details","type": "record","properties": {"current_amount": {"description": "Current price","type": "number"},"full_amount": {"description": "Original price before discount","type": "number"},"currency": {"description": "Currency code (USD, EUR, etc.)","type": "string"},"on_sale": {"description": "Whether on sale","type": "boolean"},"sale_percentage": {"description": "Discount percentage","type": "number"}}},"seller": {"description": "Seller details","type": "record","properties": {"name": {"description": "Seller name","type": "string"},"kind": {"description": "Seller type (marketplace, reseller, or brand)","type": "enum","options": ["marketplace","reseller","brand"]},"id": {"description": "Seller identifier","type": "string"},"url": {"description": "Seller's store URL","type": "url"}}},"condition": {"description": "Product condition (new, used, refurbished)","type": "string"},"availability": {"description": "Stock information","type": "record","properties": {"available": {"description": "Whether available for purchase","type": "boolean"},"stock": {"description": "Stock details (e.g., \"In stock\", \"Only 3 left\")","type": "string"}}}}}}}}}}}}
Example output from https://www.nike.com:
{"url": "https://www.nike.com/t/247-perfectstretch-womens-dri-fit-oversized-trench-coat-HdxZHW/HV3627-010","data": {"age_group": "adult","brand": "Nike","breadcrumbs": null,"categories": ["Nike","Women","Workouts","Training & Gym","Nike 24.7","Jackets"],"color": "Black/Dark Smoke Grey","country_of_origin": "Imported","description": "Lightweight and tailored with four-way stretch, our PerfectStretch fabric is designed to keep up with you all day long. A discreet bungee at the waist of this jacket lets you cinch for comfort and a personalized fit.","gender": "women","id": "HV3627-010","images": ["https://static.nike.com/a/images/t_default/ac77349c-d58d-47e4-b578-670f84e41721/W+NK+24.7+DF+TRENCH+JKT+WVN.png","https://static.nike.com/a/images/t_default/b255a928-58bc-494d-9a60-b02a91f3e22f/W+NK+24.7+DF+TRENCH+JKT+WVN.png","https://static.nike.com/a/images/t_default/ab681f46-b24f-49c0-b88d-37b78ce75dae/W+NK+24.7+DF+TRENCH+JKT+WVN.png","https://static.nike.com/a/images/t_default/7937a4f2-06ef-4934-8e2a-542819a9c2f4/W+NK+24.7+DF+TRENCH+JKT+WVN.png","https://static.nike.com/a/images/t_default/a0fbb436-87f8-4c5c-a45f-22724dc2e057/W+NK+24.7+DF+TRENCH+JKT+WVN.png","https://static.nike.com/a/images/t_default/5b84a07a-fcc4-4cf1-ada4-c14eccf00453/W+NK+24.7+DF+TRENCH+JKT+WVN.png","https://static.nike.com/a/images/t_default/5a717224-07ba-4faa-a20b-853bdd1d9ce2/W+NK+24.7+DF+TRENCH+JKT+WVN.png","https://static.nike.com/a/images/t_default/461361b9-5708-4780-b311-8a7da39f3aed/W+NK+24.7+DF+TRENCH+JKT+WVN.png"],"main_image": "https://static.nike.com/a/images/t_default/ac77349c-d58d-47e4-b578-670f84e41721/W+NK+24.7+DF+TRENCH+JKT+WVN.png","material": null,"offers": null,"pattern": null,"product_group": {"attributes": {"color": "Black/Dark Smoke Grey"},"id": "HdxZHW","varies_by": ["color"]},"properties_dict": null,"properties_list": ["Signature locker loop at back of neck","Front pockets","Full snap closure","Side pleats","Body: 83% polyester/17% spandex. Mesh: 91% polyester/9% spandex. Sleeve lining: 100% polyester.","Machine wash","Imported"],"publication_date": null,"ratings": {"average_rating": null,"rating_scale": 5,"total_reviews": 0},"subtitle": "Women's Dri-FIT Oversized Trench Coat","title": "Nike 24.7 PerfectStretch","url": "https://www.nike.com/t/247-perfectstretch-womens-dri-fit-oversized-trench-coat-HdxZHW/HV3627-010","variants": {"list": [{"attributes": {"size": "XXS"},"id": "00198484310484","main_image": "https://static.nike.com/a/images/t_default/ac77349c-d58d-47e4-b578-670f84e41721/W+NK+24.7+DF+TRENCH+JKT+WVN.png","offers": [{"availability": {"available": true,"stock": null},"condition": "new","id": null,"price": {"currency": "USD","current_amount": 200,"full_amount": 200,"on_sale": false,"sale_percentage": 0},"seller": {"id": null,"kind": "brand","name": "Nike","url": null}}]},{"attributes": {"size": "XS"},"id": "00198484313997","main_image": "https://static.nike.com/a/images/t_default/ac77349c-d58d-47e4-b578-670f84e41721/W+NK+24.7+DF+TRENCH+JKT+WVN.png","offers": [{"availability": {"available": true,"stock": null},"condition": "new","id": null,"price": {"currency": "USD","current_amount": 200,"full_amount": 200,"on_sale": false,"sale_percentage": 0},"seller": {"id": null,"kind": "brand","name": "Nike","url": null}}]},{"attributes": {"size": "S"},"id": "00198484306784","main_image": "https://static.nike.com/a/images/t_default/ac77349c-d58d-47e4-b578-670f84e41721/W+NK+24.7+DF+TRENCH+JKT+WVN.png","offers": [{"availability": {"available": true,"stock": null},"condition": "new","id": null,"price": {"currency": "USD","current_amount": 200,"full_amount": 200,"on_sale": false,"sale_percentage": 0},"seller": {"id": null,"kind": "brand","name": "Nike","url": null}}]},{"attributes": {"size": "M"},"id": "00198484309129","main_image": "https://static.nike.com/a/images/t_default/ac77349c-d58d-47e4-b578-670f84e41721/W+NK+24.7+DF+TRENCH+JKT+WVN.png","offers": [{"availability": {"available": true,"stock": null},"condition": "new","id": null,"price": {"currency": "USD","current_amount": 200,"full_amount": 200,"on_sale": false,"sale_percentage": 0},"seller": {"id": null,"kind": "brand","name": "Nike","url": null}}]},{"attributes": {"size": "L"},"id": "00198484300522","main_image": "https://static.nike.com/a/images/t_default/ac77349c-d58d-47e4-b578-670f84e41721/W+NK+24.7+DF+TRENCH+JKT+WVN.png","offers": [{"availability": {"available": true,"stock": null},"condition": "new","id": null,"price": {"currency": "USD","current_amount": 200,"full_amount": 200,"on_sale": false,"sale_percentage": 0},"seller": {"id": null,"kind": "brand","name": "Nike","url": null}}]},{"attributes": {"size": "XL"},"id": "00198484314109","main_image": "https://static.nike.com/a/images/t_default/ac77349c-d58d-47e4-b578-670f84e41721/W+NK+24.7+DF+TRENCH+JKT+WVN.png","offers": [{"availability": {"available": true,"stock": null},"condition": "new","id": null,"price": {"currency": "USD","current_amount": 200,"full_amount": 200,"on_sale": false,"sale_percentage": 0},"seller": {"id": null,"kind": "brand","name": "Nike","url": null}}]},{"attributes": {"size": "2XL"},"id": "00198484312570","main_image": "https://static.nike.com/a/images/t_default/ac77349c-d58d-47e4-b578-670f84e41721/W+NK+24.7+DF+TRENCH+JKT+WVN.png","offers": [{"availability": {"available": true,"stock": null},"condition": "new","id": null,"price": {"currency": "USD","current_amount": 200,"full_amount": 200,"on_sale": false,"sale_percentage": 0},"seller": {"id": null,"kind": "brand","name": "Nike","url": null}}]}],"varies_by": ["size"]},"videos": ["https://shortformvideo.nike.com/a/videos/7f1c003d-9902-48f1-bd2b-7b2904798ff4/video.mp4"]},"extracted_at": 1764005966290,"cached": false}
You can download the dataset extracted by vibe-scraping-ecommerce in various formats such as JSON, HTML, CSV, or Excel.
⚙️ How it works
This actor uses an innovative approach to web scraping:
- First Run: When a new (website, country) combination is detected, our AI agent analyzes the site and generates a custom crawler (generally takes less than 3 minutes)
- Subsequent Runs: The generated crawler is reused, extraction starts immediately
Infrastructure
The actual extraction workload runs on our dedicated Kubernetes infrastructure, not on Apify's platform. There might be a small delay when the crawl starts in Apify before our infrastructure is ready to actually start the crawl.
Built from Scratch in Rust
Our extraction engine is written in 100% Rust from the ground up, providing:
- Performance: Target up to 50 pages visited per second (3,000/minute)
- Robustness: Adapts to the website's structure and navigation, and to the data available on the page
- Stealth: Custom HTTP/browser implementations designed specifically for web scraping without detection
Result Caching
Results are cached for 12 hours. When requesting a recently crawled URL, you'll receive the cached data instantly instead of waiting for a fresh extraction. The extracted_at timestamp always reflects the actual extraction time, and the cached field indicates whether data was freshly extracted or served from cache.
This approach reduces load on target websites and lowers the risk of detection or bans.
🛠️ Troubleshooting
Extraction Taking Longer Than Expected?
First Run: If this is your first time crawling this website-country combination, the AI is generating a custom crawler. This takes approximately 2-3 minutes.
Infrastructure Delay: Your job may be queuing for resources on our Kubernetes cluster. This is typically brief (< 1 minute).
Results Don't Match Expected Schema?
The extraction adapts to what's available on each website. Some sites may not have all fields (e.g., reviews, videos, size variants). We are working on improving the extraction quality.
Getting Blocked or No Results?
The crawler is designed for stealth, but some websites have aggressive bot protection. Try:
- Reducing the crawl speed by decreasing the budget
- Ensuring you selected the correct country
- Verifying the start URL is accessible
🎙️ Feedback & Support
We're continuously improving the extraction quality and performance based on your feedback. If you encounter any issues:
- Technical Issues: Report bugs or unexpected behavior on the Issues tab
- Feature Requests: Let us know what additional data fields or capabilities you need
- Questions: Contact us through Apify support for assistance
Your feedback during this beta period is especially valuable in helping us build the best universal ecommerce scraper possible.
🚀 Happy crawling 🚀