ZOOT Product Scraper
codemaster devops · @codemasterdevops
Extract ZOOT product names, prices, sizes, availability, and image URLs from category and product pages for fashion catalog research.

About
ZOOT Product Scraper
What does ZOOT Product Scraper do?
ZOOT Product Scraper reads server-rendered fashion catalog pages and saves one dataset row per product detail page it processes. Start from a category to discover products, or supply individual product URLs to inspect specific items.
Verified coverage
A hosted Bytewells smoke test verified product samples from Czechia, Slovakia, and Romania. The actor can complete ZOOT’s supported proof-of-work challenge and continue with the session issued by the site. Storefront access may vary, and product URLs that redirect to a non-product page are skipped.
What ZOOT data can you extract?
- Product identity and navigation in
url,name,brand, andbreadcrumbs. - Pricing and promotions in
priceCurrency,currentBestPrice,originalPrice, andsaleCodewhen the page exposes them. - Product imagery in
thumbnailandimages. - Size options in
sizes. The product-levelavailableflag indicates that at least one parsed size is available. - Product copy in
descriptionandattributeswhen present in the HTML.
How to use ZOOT Product Scraper
- Add full ZOOT category or product URLs to
startUrls. The dashboard uses plain URL strings. API input also accepts objects with aurlfield. - Set
maxItemsto the maximum number of product rows to save. SetmaxRequestsPerCrawlto limit category, pagination, and detail requests handled by the crawler. Retries and concurrent requests can add HTTP attempts. - Run the actor and open the dataset. Export JSON for nested fields or CSV for a spreadsheet.
Example input
{
"startUrls": ["https://www.zoot.cz/katalog/17504/zeny"],
"maxItems": 10,
"maxRequestsPerCrawl": 40,
"maxConcurrency": 1,
"proxyConfiguration": { "useApifyProxy": false }
}
Example output excerpt
The following example is from a live Bytewells smoke test.
{
"url": "https://www.zoot.cz/damske/detail-vyrobku/636057-only-kremovy-upletovy-top-s-kratkym-rukavem-jdydicte/M/249727:bezova-birch/",
"name": "ONLY - Krémový úpletový top s krátkým rukávem JDYDICTE",
"priceCurrency": "CZK",
"currentBestPrice": {
"value": 524,
"formattedPrice": "524 Kč"
},
"sizes": [
{
"size": "XS",
"available": true
},
{
"size": "S",
"available": true
},
{
"size": "M",
"available": true
},
{
"size": "L",
"available": true
},
{
"size": "XL",
"available": true
}
],
"available": true
}
Coverage and limits
The Bytewells run defaults use 2 GB of memory and a 180-second timeout. Keep concurrency at 1 for small cross-storefront runs.
Category pagination follows the page links the actor recognizes, within the configured request and item limits. A run may save fewer rows than requested when pages have fewer products, individual requests fail, or the request limit is reached. A run with zero saved products fails. A run that saves products before other requests fail can return a partial dataset and logs a warning.
Product fields depend on the HTML that ZOOT returns. Unavailable fields can be null or empty. The available flag depends on parsed size options, so check sizes before treating false as confirmed out of stock. Direct connections are the default. A customer-supplied proxy is optional and may incur separate provider charges.
Independent tool for catalog research. Support is available from Quick Life Solutions.
FAQ
- What does ZOOT Product Scraper collect?
- It saves one row per processed product detail page, with the product URL, name, and available fields for prices, brands, sizes, images, and descriptions.
- Which URLs can I use?
- Use full product or category URLs on ZOOT.cz, ZOOT.sk, or ZOOT.ro in `startUrls`. Hosted product samples were verified for Czechia, Slovakia, and Romania.
- Can I submit multiple categories and individual products together?
- Yes. Add them to the same `startUrls` array. Each category is used to discover product links, and direct product links are parsed individually.
- Does the actor follow category pagination?
- Yes, when it recognizes the page links. The actor limits pagination based on the visible catalog and the requested product cap.
- Will I always get the number of rows set in maxItems?
- `maxItems` is the maximum number of product rows the actor can save. Available products, skipped or failed pages, and the request limit determine the actual count.
- How does the actor determine availability?
- It sets `available` to true when a parsed size is marked available. Check the `sizes` array for details, especially when the page provides no readable size options.
- Why might some fields be empty?
- Optional fields depend on the product HTML. A missing brand logo, description, price, or size list can produce a null or empty value.
- Do I need credentials or a proxy?
- A direct run requires no ZOOT login or API key. You can supply your own proxy through `proxyConfiguration.proxyUrls`. The actor can handle the supported ZOOT proof-of-work challenge when offered.
- What happens if ZOOT blocks a request?
- The actor attempts the supported proof-of-work challenge when offered. It skips pages where access remains blocked. If the run saves zero products, it fails. If it saves some products and other requests fail, it logs that the dataset is partial.
- How do I export the results?
- Open the dataset to export JSON or CSV. JSON preserves nested fields such as prices, sizes, and breadcrumbs.
Input
Preview of the input form. Rent the Actor to fill it in and start runs from the console.
Fields
startUrlsEnter full ZOOT category or product URLs. The default starts with the Czech catalog.
maxItemsMaximum number of product records to save. Keep this low for quick smoke tests.
maxRequestsPerCrawlLimit on category, pagination, and detail requests handled by the crawler. In-flight requests can finish, and retries can cause additional HTTP attempts.
maxConcurrencyMaximum parallel requests. Lower values are gentler and reduce throttling risk.
minRequestIntervalSecsMinimum random delay before requests.
maxRequestIntervalSecsMaximum random delay before requests. Must be greater than or equal to minimum request delay.
navigationTimeoutSecsAbort navigation if a response stalls longer than this.
requestHandlerTimeoutSecsAbort page handling if processing exceeds this limit.
proxyConfigurationDirect connection by default. Use your own proxy URLs if needed. Apify Proxy requires separate Apify access.
API
Bytewells speaks the Apify API. Existing integrations keep working: point apify-client at https://bytewells.com/api and use your Bytewells API token (Console → Settings → API access). The Actor ID is codemasterdevops/zoot-scraper (or codemasterdevops~zoot-scraper in URLs).
JavaScript · apify-client
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({
token: process.env.BYTEWELLS_TOKEN,
baseUrl: 'https://bytewells.com/api',
});
const input = {
"startUrls": [
"https://www.zoot.cz/katalog/17504/zeny"
],
"maxItems": 25,
"maxRequestsPerCrawl": 100,
"maxConcurrency": 2,
"minRequestIntervalSecs": 0,
"maxRequestIntervalSecs": 1,
"navigationTimeoutSecs": 45,
"requestHandlerTimeoutSecs": 60,
"proxyConfiguration": {
"useApifyProxy": false
}
};
const run = await client.actor('codemasterdevops/zoot-scraper').call(input);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);Python · apify-client
import os
from apify_client import ApifyClient
client = ApifyClient(os.environ["BYTEWELLS_TOKEN"], api_url="https://bytewells.com/api")
run_input = {
"startUrls": [
"https://www.zoot.cz/katalog/17504/zeny"
],
"maxItems": 25,
"maxRequestsPerCrawl": 100,
"maxConcurrency": 2,
"minRequestIntervalSecs": 0,
"maxRequestIntervalSecs": 1,
"navigationTimeoutSecs": 45,
"requestHandlerTimeoutSecs": 60,
"proxyConfiguration": {
"useApifyProxy": False
}
}
run = client.actor("codemasterdevops/zoot-scraper").call(run_input=run_input)
items = client.dataset(run["defaultDatasetId"]).list_items().items
print(items)HTTP · curl
curl -X POST "https://bytewells.com/api/v2/acts/codemasterdevops~zoot-scraper/runs" \
-H "Authorization: Bearer $BYTEWELLS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"startUrls":["https://www.zoot.cz/katalog/17504/zeny"],"maxItems":25,"maxRequestsPerCrawl":100,"maxConcurrency":2,"minRequestIntervalSecs":0,"maxRequestIntervalSecs":1,"navigationTimeoutSecs":45,"requestHandlerTimeoutSecs":60,"proxyConfiguration":{"useApifyProxy":false}}'Runs are billed as compute from your credit balance. Paid Actors need an active rental or trial; otherwise the API answers 402 rental-required.
Related
More Actors from the same publisher.

Best Buy Products Scraper
codemaster devops · @codemasterdevops
Extract Best Buy product names, SKUs, available prices, images, and US reviews for catalog research and price tracking.
E-commerceAutomationDeveloper tools$19.99/mo3-day free trial
Shopify Products Scraper
codemaster devops · @codemasterdevops
Export public Shopify prices, SKUs, stock status, options, and images in one row per variant. Compare catalogs across stores.
E-commerceAutomationDeveloper toolsUsage-based
Google Trending Now Scraper – Trending Searches by Country
codemaster devops · @codemasterdevops
Get current Google trending searches, approximate search traffic, and news links. Monitor up to 10 countries per run without a Google API key.
SEO toolsMarketingAutomationUsage-based
Pinterest Scraper – Extract Profiles & Pin Data
codemaster devops · @codemasterdevops
Scrape public Pinterest profiles and pins. Extract image URLs, descriptions, board details, source links, and available engagement stats.
Social mediaMarketingE-commerce$19.99/mo3-day free trial
Website Screenshot Generator
codemaster devops · @codemasterdevops
Capture full-page or viewport PNG screenshots from a list of URLs. Export page URLs and image links for visual QA, monitoring, and archives.
Developer toolsAutomation$19.99/mo3-day free trial
Bing Scraper - Search Results & SERP Data
codemaster devops · @codemasterdevops
Scrape Bing search results, titles, links, and snippets. Run multiple queries with market, language, and page controls for SEO and competitor research.
SEO toolsMarketingDeveloper toolsUsage-based