Ecommerce · Vibe Scraping
Pricing
from $1.00 / 1,000 results
Ecommerce · Vibe Scraping
The last ecommerce scraper you'll need. Our AI analyzes any store, builds a custom crawler, and delivers rich product data in a consistent schema.
Pricing
from $1.00 / 1,000 results
Rating
5.0
(2)
Developer

Extralt
Actor stats
2
Bookmarked
19
Total users
5
Monthly active users
7 hours ago
Last modified
Categories
Share
Ecommerce · Vibe Scraping
One actor, any ecommerce website
Part of our Vibe Scraping series:
AI-built crawlers for structured data extraction.
⚠️ Beta Release
This actor is currently in beta. We're actively improving based on feedback. Report issues on the issues tab.
🔥 Why This Actor
The last ecommerce scraper you'll need. One actor, any store, consistent schema.
- Any ecommerce site: Works on most stores out of the box — no hunting for site-specific actors
- Consistent schema: Same product structure across all sites — no per-site field mapping
- Portable: Reuse across stores with consistent output for your pipeline
- Fast & cheap: Custom Rust engine — no AI during extraction, orders of magnitude faster than LLM-based scraping
✨ Use Cases
- Price Intelligence: Monitor competitor pricing across multiple stores
- Inventory Tracking: Track product availability and variants across brands
- Market Research: Aggregate product catalogs from entire verticals
- Multi-store Aggregation: Combine data from dozens of stores into one consistent dataset
💡 About Extralt
We're rethinking web scraping. Our crawlers are generated by AI but run as compiled code — giving you enterprise-scale performance without the brittleness of traditional scrapers or the cost of pure AI solutions.
🪙 Pricing
This actor uses a pay-per-event pricing model — you only pay for successfully extracted pages:
| Subscription | Discount | Price per dataset item |
|---|---|---|
| Starter | Bronze | $0.002 |
| Scale | Silver | $0.0015 |
| Business | Gold | $0.001 |
Example: Extracting 1,000 pages on a Business plan costs: 1,000 × $0.001 = $1.00
All-inclusive pricing: We only use premium residential proxies, with no hidden costs or add-ons.
Why paid plans only? Apify excludes free plan users from revenue calculations (see docs), so we restrict this actor to paying customers only.
Concurrent runs: You can run up to 3 Extralt actors simultaneously. If you need more concurrent runs, please wait for one to finish before starting a new one. This number will increase as we scale up our infrastructure.
⬇️ Input
| Parameter | Required | Description |
|---|---|---|
| Start URLs | Yes | One or more URLs to begin crawling |
| Country | Yes | Proxy location for regional content |
| Budget | No | Maximum number of products to extract |
| Graph Mode | No | Also extract non-item pages and generate site structure |
Start URLs
The crawler adapts based on URL type:
- Catalog/category page: Follows pagination, extracts products until budget is reached
- Any other page: Parses sitemap or follows internal links
Constraints:
- All URLs must be from the same host
- URLs should match your target country (e.g.,
example.frorexample.com/frfor France) - Only ecommerce URLs are supported (this actor uses a product-specific schema)
Graph Mode
Extracts all page types (Home, List, Item, Other) and generates a site structure graph.
When to use: You need to understand the website's architecture before extraction.
When to skip: You just want product data. Non-graph mode is faster, cheaper, and better leverages sitemaps.
For more details about graph mode, see the Graph · Vibe Scraping actor.
⬆️ Output
1. Dataset
Each extracted item contains metadata and extracted data:
| Field | Description |
|---|---|
extracted_at | Unix timestamp of extraction |
url | Page URL |
page_kind | Page type: home, list, item, or other |
title | Page title |
data | Extracted product data (item pages only) |
outbound_links | Links found on the page |
Use the Overview view in Apify to browse results as a formatted table, or download in JSON, CSV, HTML, or Excel.
Page Kind
The crawler classifies each page into one of four kinds:
| Page Kind | Description | Example |
|---|---|---|
home | Main entry point of the site | https://www.nike.com |
list | Category or collection pages listing multiple items | https://www.nike.com/w/womens-running-shoes-37v7jz5e1x6zy7ok |
item | Pages containing 1 main item | https://www.nike.com/t/vomero-plus-womens-road-running-shoes-8AH6updi/HV8154-501 |
other | Landing, navigation, help, or non-content pages | https://www.nike.com/women |
Data
The data field is only present for item pages. See below for the extraction schema as well as an example.
Outbound Links
The crawler extracts different links depending on the page type:
| Page Kind | Graph Mode Only | Links Extracted |
|---|---|---|
home | Yes | Header navigation links only |
list | Yes | Item pages in the catalog (ignores navigation, header, footer) |
item | No | Related variants only (e.g., same product in different colors) |
other | Yes | All content links (excludes header/footer navigation) |
Dataset Views
Use the Overview view to browse all fields, or the Highlight view for a quick glance at key product info (brand, title, subtitle, image).


Product Data Schema
The data field contains comprehensive product information. Fields depend on what's available on the target website.
{"age_group": {"description": "Age group of the product.","type": "string"},"brand": {"description": "Brand of the product.","type": "string"},"breadcrumbs": {"description": "Page navigation breadcrumbs.","type": "string"},"categories": {"description": "List of categories names, often as a hierarchy of category and subcategories.","type": "array"},"color": {"description": "Color of the product.","type": "string"},"country_of_origin": {"description": "Country of origin or manufactoring.","type": "string"},"description": {"description": "Product description.","type": "string"},"dimensions": {"description": "Product dimensions.","type": "string"},"gender": {"description": "Gender of the product.","type": "string"},"images": {"description": "List of image URLs in the carousel of the product details page.","type": "array"},"main_image": {"description": "Main image of the product.","type": "url"},"material": {"description": "Materials of the product.","type": "string"},"pattern": {"description": "Pattern of the product.","type": "string"},"product_group": {"description": "Parent for multiple products that vary by one or multiple attributes.","properties": {"attributes": {"description": "Attribute values that distinguish this product from others in the group.","type": "dict"},"id": {"description": "Unique identifier for the product group.","type": "string"},"varies_by": {"description": "List of attributes where each value has its own unique product page URL.","type": "array"}},"type": "record"},"product_id": {"description": "Primary product identifier used by the website.","type": "string"},"properties_dict": {"description": "Dictionary of additional properties.","type": "dict"},"properties_list": {"description": "List of additional properties or specifications.","type": "array"},"ratings": {"description": "Product ratings and reviews information.","properties": {"average_rating": {"description": "Average rating score (e.g., 4.5).","type": "number"},"rating_scale": {"description": "Maximum rating scale (e.g., 5 for a 5-star rating system, 10 for a 10-point scale).","type": "number"},"total_reviews": {"description": "Total number of reviews or ratings.","type": "number"}},"type": "record"},"release_date": {"description": "Release or launch date of the product.","type": "date"},"subtitle": {"description": "Subtitle of the product.","type": "string"},"title": {"description": "Title or name of the product.","type": "string"},"variants": {"description": "SKUs of this same product that differ by selectable attributes (e.g., sizes of the same shirt). Each variant has its own SKU/GTIN and potentially different stock/price, but all variants share the same product URL and page.","properties": {"list": {"description": "List of product variants (e.g., different sizes).","items": {"description": "Details for one particular variant.","properties": {"attributes": {"description": "Attribute values that distinguish this variant (e.g., size, additional color details).","type": "dict"},"identifiers": {"description": "Variant-specific identifiers. These are unique per variant (e.g., each size has a different SKU/barcode).","properties": {"gtin": {"description": "Global Trade Item Number (barcode). Covers EAN (13 digits), UPC (12 digits), ISBN.","type": "string"},"sku": {"description": "Stock Keeping Unit - merchant-specific identifier for this variant.","type": "string"},"variant_id": {"description": "Customer-facing variant identifier as displayed on the page","type": "string"}},"type": "record"},"main_image": {"description": "Main image for this specific variant.","type": "url"},"offers": {"description": "Available offers for this variant.","items": {"description": "Offer details from a specific seller.","properties": {"availability": {"description": "Availability information.","properties": {"available": {"description": "Whether the variant is available for purchase.","type": "boolean"},"stock": {"description": "Stock information if available.","type": "string"}},"type": "record"},"condition": {"description": "Condition of the product (e.g., new, used, refurbished)","type": "string"},"id": {"description": "Unique identifier for this offer as found in the page data","type": "string"},"price": {"description": "Price details for this offer.","properties": {"currency": {"description": "Currency code (e.g., EUR, USD).","type": "string"},"current_amount": {"description": "Current price amount.","type": "number"},"full_amount": {"description": "Full price amount before discount.","type": "number"},"on_sale": {"description": "Whether this offer is on sale.","type": "boolean"},"sale_percentage": {"description": "Percentage discount if on sale.","type": "number"}},"type": "record"},"seller": {"description": "Seller information.","properties": {"id": {"description": "Unique identifier for the seller, mostly used for marketplace sellers.","type": "string"},"kind": {"description": "Type of seller, where `marketplace` is a third-party marketplace like Amazon, eBay, or Etsy, `reseller` is a seller who buys and sells products from many brands, and `brand` is the brand itself.","options": ["marketplace","reseller","brand"],"type": "enum"},"name": {"description": "Name of the seller.","type": "string"},"url": {"description": "URL to the seller's page or store, mostly used for marketplace sellers.","type": "url"}},"type": "record"}},"type": "record"},"type": "array"}},"type": "record"},"type": "array"},"varies_by": {"description": "List of attributes selectable on the current page via dropdowns, buttons, or selectors without url navigation","type": "array"}},"type": "record"},"videos": {"description": "List of video URLs of the product.","type": "array"},"weight": {"description": "Product weight with unit.","type": "string"}}
Example Output
This page was extracted from https://www.nike.com:
{"extracted_at": 1769580188060,"url": "https://www.nike.com/t/nj-ny-gotham-fc-2025-stadium-home-womens-dri-fit-nwsl-replica-jersey-ZlvHdW5Y/P35557SBFC-BLK","page_kind": "item","title": "NJ/NY Gotham FC 2025 Stadium Home","data": {"age_group": "Adult","brand": "Nike","breadcrumbs": null,"categories": ["Nike","Women","Soccer","Jerseys"],"color": "Black/Copa","country_of_origin": null,"description": "Celebrate a city like no other, and a team that has no limits. The Gotham FC 2025 Home jersey embodies the spirit, lights and colors of NYC. The bright-blue graphic nods to the city lights set against the black of the night sky. The sash represents the river that runs between New York and New Jersey.","dimensions": null,"gender": "Women","images": ["https://static.nike.com/a/images/t_default/d5d23fc3-b9be-4433-aef6-838e1ee80cb8/SP25+W+NWSL+STADIUM+CREW+NECK.png","https://static.nike.com/a/images/t_default/bc4f84dc-45e1-463c-87f5-9eedf799751e/SP25+W+NWSL+STADIUM+CREW+NECK.png"],"main_image": "https://static.nike.com/a/images/t_default/d5d23fc3-b9be-4433-aef6-838e1ee80cb8/SP25+W+NWSL+STADIUM+CREW+NECK.png","material": null,"pattern": null,"product_group": {"attributes": {"color": "Black/Copa"},"id": "ZlvHdW5Y","varies_by": ["color"]},"product_id": "P35557SBFC-BLK","properties_dict": {"style": "P35557SBFC-BLK","shown": "Black/Copa"},"properties_list": ["Replica design","Woven crest","Embroidered Swoosh","100% polyester","Machine wash","Imported","Shown: Black/Copa","Style: P35557SBFC-BLK"],"ratings": {"average_rating": null,"rating_scale": 5,"total_reviews": 0},"release_date": "2025-03-07T15:00:00.000Z","subtitle": "Women's Nike Dri-FIT NWSL Replica Jersey","title": "NJ/NY Gotham FC 2025 Stadium Home","variants": {"list": [{"attributes": {"size": "XS"},"identifiers": {"gtin": "00196793538414","sku": "214af052-ccec-5a47-99a4-a22caa27f873","variant_id": "XS (0–2)"},"main_image": "https://static.nike.com/a/images/t_default/d5d23fc3-b9be-4433-aef6-838e1ee80cb8/SP25+W+NWSL+STADIUM+CREW+NECK.png","offers": [{"availability": {"available": false,"stock": "OOS"},"condition": "new","id": "214af052-ccec-5a47-99a4-a22caa27f873","price": {"currency": "USD","current_amount": 95,"full_amount": 95,"on_sale": false,"sale_percentage": 0},"seller": {"id": "nike","kind": "brand","name": "Nike","url": "https://www.nike.com"}}]},{"attributes": {"size": "S"},"identifiers": {"gtin": "00196793538438","sku": "3680149f-49b6-50ee-ae80-f6671686bdc0","variant_id": "S (4–6)"},"main_image": "https://static.nike.com/a/images/t_default/d5d23fc3-b9be-4433-aef6-838e1ee80cb8/SP25+W+NWSL+STADIUM+CREW+NECK.png","offers": [{"availability": {"available": false,"stock": "OOS"},"condition": "new","id": "3680149f-49b6-50ee-ae80-f6671686bdc0","price": {"currency": "USD","current_amount": 95,"full_amount": 95,"on_sale": false,"sale_percentage": 0},"seller": {"id": "nike","kind": "brand","name": "Nike","url": "https://www.nike.com"}}]},{"attributes": {"size": "M"},"identifiers": {"gtin": "00196793538605","sku": "95d63249-6218-55d5-83ff-d5716936bd18","variant_id": "M (8–10)"},"main_image": "https://static.nike.com/a/images/t_default/d5d23fc3-b9be-4433-aef6-838e1ee80cb8/SP25+W+NWSL+STADIUM+CREW+NECK.png","offers": [{"availability": {"available": false,"stock": "OOS"},"condition": "new","id": "95d63249-6218-55d5-83ff-d5716936bd18","price": {"currency": "USD","current_amount": 95,"full_amount": 95,"on_sale": false,"sale_percentage": 0},"seller": {"id": "nike","kind": "brand","name": "Nike","url": "https://www.nike.com"}}]},{"attributes": {"size": "L"},"identifiers": {"gtin": "00196793396519","sku": "a6b830d3-6ce8-51a0-87b1-dcd025dff96c","variant_id": "L (12–14)"},"main_image": "https://static.nike.com/a/images/t_default/d5d23fc3-b9be-4433-aef6-838e1ee80cb8/SP25+W+NWSL+STADIUM+CREW+NECK.png","offers": [{"availability": {"available": false,"stock": "OOS"},"condition": "new","id": "a6b830d3-6ce8-51a0-87b1-dcd025dff96c","price": {"currency": "USD","current_amount": 95,"full_amount": 95,"on_sale": false,"sale_percentage": 0},"seller": {"id": "nike","kind": "brand","name": "Nike","url": "https://www.nike.com"}}]},{"attributes": {"size": "XL"},"identifiers": {"gtin": "00196793396878","sku": "9108ff83-42c1-5533-9cb3-7cafa02af955","variant_id": "XL (16–18)"},"main_image": "https://static.nike.com/a/images/t_default/d5d23fc3-b9be-4433-aef6-838e1ee80cb8/SP25+W+NWSL+STADIUM+CREW+NECK.png","offers": [{"availability": {"available": false,"stock": "OOS"},"condition": "new","id": "9108ff83-42c1-5533-9cb3-7cafa02af955","price": {"currency": "USD","current_amount": 95,"full_amount": 95,"on_sale": false,"sale_percentage": 0},"seller": {"id": "nike","kind": "brand","name": "Nike","url": "https://www.nike.com"}}]},{"attributes": {"size": "2XL"},"identifiers": {"gtin": "00196793397196","sku": "77a3f24b-7a5b-58b5-8190-03f9485534e3","variant_id": "XXL (20–22)"},"main_image": "https://static.nike.com/a/images/t_default/d5d23fc3-b9be-4433-aef6-838e1ee80cb8/SP25+W+NWSL+STADIUM+CREW+NECK.png","offers": [{"availability": {"available": true,"stock": "LOW"},"condition": "new","id": "77a3f24b-7a5b-58b5-8190-03f9485534e3","price": {"currency": "USD","current_amount": 95,"full_amount": 95,"on_sale": false,"sale_percentage": 0},"seller": {"id": "nike","kind": "brand","name": "Nike","url": "https://www.nike.com"}}]}],"varies_by": ["size"]},"videos": null,"weight": null},"outbound_links": []}
2. Key-Value Store
Only in Graph Mode, see our Graph Actor for more details.
⚙️ Under the Hood
How It Works
- First run — AI analyzes the site and generates a custom crawler (3-5 minutes)
- Subsequent runs — Crawler is reused, extraction starts immediately
The crawler is regenerated when you change the website or country.
Why It's Fast
Unlike LLM-based scrapers that call AI for every page, we use AI once to generate a compiled Rust extractor. This means:
- No per-page AI costs — extraction runs as pure code
- High throughput — up to 50 pages/second (3,000/minute)
- Consistent results — same extractor, deterministic output
Infrastructure
Extraction runs on our dedicated infrastructure, not Apify's platform. There may be a brief delay (~15-20s) while provisioning resources before the crawl starts.
Stealth
Our Rust engine includes custom HTTP and browser implementations built specifically for web scraping:
- Smart request routing (Chrome rendering, fast HTTP, direct API calls)
- Anti-detection measures to avoid blocks
- Premium residential proxies included
🛠️ Troubleshooting
Extraction taking longer than expected?
- First run: AI is generating your custom crawler (3-5 minutes). Subsequent runs start immediately.
- Provisioning: Brief delay (~15-20s) while infrastructure spins up.
Getting blocked or no results?
- Verify the start URL is accessible in your browser
- Ensure the selected country matches the website's region
- Try a smaller budget to reduce request volume
- Some sites have aggressive bot protection — report persistent issues
🎙️ Feedback & Support
We're actively improving extraction quality based on your feedback.
- Bugs, questions, feature requests: Issues tab