E-Commerce Cluster
Answer natural language e-commerce questions by routing to the right Apify Actor and delivering a synthesized answer via the apify CLI.
CLI rules: Always pass --user-agent apify-awesome-skills/apify-ecommerce, --json (or the relevant --format flag on datasets get-items), and 2>/dev/null. The --user-agent flag is critical for telemetry — never omit it.
Prerequisites
(No need to check it upfront)
- Apify CLI v1.5.0+ (
npm install -g apify-cli)
jq (recommended for quick extraction and filtering; brew install jq on macOS, apt install jq on Linux)
- Authentication via one of:
Verify auth: apify info --user-agent apify-awesome-skills/apify-ecommerce — should show username and userId.
Workflow
Copy this checklist and track progress:
Task Progress:
- [ ] Step 1: Detect intent and select Actor
- [ ] Step 2: Fetch Actor schema
- [ ] Step 3: Ask user preferences (format, result count)
- [ ] Step 4: Run the Actor and fetch results
- [ ] Step 5: Analyze results and deliver synthesized answer
Step 1: Detect Intent and Select Actor
Classify the user's message into an intent, then pick the right Actor.
Intent signals:
| Signals in user message |
Intent |
| price, cost, cheapest, compare prices, pricing |
pricing |
| review, rating, sentiment, stars, feedback |
reviews |
| bestseller, top selling, most popular, trending |
bestsellers |
| seller, vendor, reseller, who sells |
sellers |
| all products from, scrape store, full catalog |
store-scrape |
| what platform, built on, tech stack, Shopify or WooCommerce |
tech-stack |
| SEO, listing quality, product page audit |
seo-audit |
| competitor funnel, competitor pricing, conversion elements |
competitor |
| search intent, keyword intent, SERP intent |
search-intent |
| match products, same product on different platforms |
product-matching |
| restaurant, food delivery, DoorDash, UberEats, TheFork |
food-delivery |
| enrich store, store metadata, store list |
store-enrichment |
| event, concert, ticket, Eventbrite |
events |
| property, real estate, house listing, Realtor |
real-estate |
| Facebook ads, Meta ads, ad library, competitor ads |
ads-intelligence |
| classified, Craigslist, used item for sale |
classifieds |
| car, used car, vehicle, automotive, Webmotors |
automotive |
| pins, inspiration, Pinterest boards, visual search, Pinterest trends |
content-discovery |
| TikTok Shop, TikTok store, TikTok creator |
tiktok-shop |
| website for sale, domain for sale, Flippa |
website-marketplace |
If multiple intents are detected, ask: "Do you want [intent A] or [intent B]?"
Actor routing table — always try Primary first, switch to Fallback only if it fails or returns 0 results:
| Intent |
Platform |
Primary Actor |
Fallback Actor |
pricing |
Amazon / Walmart / generic |
apify/e-commerce-scraping-tool |
— |
pricing |
eBay |
apify/e-commerce-scraping-tool |
ivanvs/ebay-scraper-pay-per-result |
pricing |
Etsy |
apify/e-commerce-scraping-tool |
epctex/etsy-scraper |
pricing |
Google Shopping |
apify/e-commerce-scraping-tool |
epctex/google-shopping-scraper |
pricing |
Facebook Marketplace |
apify/e-commerce-scraping-tool |
apify/facebook-marketplace-scraper |
pricing |
SHEIN |
apify/e-commerce-scraping-tool |
seamless_coffer/shein-product-scraper |
pricing |
Lazada |
apify/e-commerce-scraping-tool |
fatihtahta/lazada-scraper |
pricing |
Canadian Tire |
apify/e-commerce-scraping-tool |
azzouzana/canadiantire-ca-scraper |
pricing |
Tesco |
apify/e-commerce-scraping-tool |
radeance/tesco-scraper |
pricing |
Shopify |
apify/e-commerce-scraping-tool |
trovevault/shopify-products-scraper |
pricing |
WooCommerce |
apify/e-commerce-scraping-tool |
trovevault/woocommerce-products-scraper |
reviews |
Amazon / Walmart / generic |
apify/e-commerce-scraping-tool |
junglee/amazon-reviews-scraper |
reviews |
Trustpilot |
apify/e-commerce-scraping-tool |
casper11515/trustpilot-reviews-scraper |
reviews |
TheFork |
apify/e-commerce-scraping-tool |
jdtpnjtp/thefork-restaurant-scraper-advanced |
bestsellers |
Amazon |
apify/e-commerce-scraping-tool |
junglee/amazon-bestsellers |
sellers |
Amazon |
apify/e-commerce-scraping-tool |
junglee/amazon-seller-scraper |
sellers |
eBay |
apify/e-commerce-scraping-tool |
ivanvs/ebay-scraper-pay-per-result |
store-scrape |
Shopify |
apify/e-commerce-scraping-tool |
trovevault/shopify-products-scraper |
store-scrape |
WooCommerce |
apify/e-commerce-scraping-tool |
trovevault/woocommerce-products-scraper |
store-scrape |
Amazon |
apify/e-commerce-scraping-tool |
junglee/Amazon-crawler |
store-scrape |
Flippa |
apify/e-commerce-scraping-tool |
scraped/flippa-scraper |
tech-stack |
any |
apify/e-commerce-scraping-tool |
trovevault/e-commerce-tech-stack-detector |
seo-audit |
any |
apify/e-commerce-scraping-tool |
trovevault/product-listing-seo-auditor |
competitor |
any |
apify/e-commerce-scraping-tool |
trovevault/competitor-intelligence-scraper---funnel-pricing-conversion |
search-intent |
any |
apify/e-commerce-scraping-tool |
trovevault/ai-serp-intent-extractor---search-intent-classifier |
product-matching |
any |
apify/e-commerce-scraping-tool |
tri_angle/product-matching-vectorizer |
store-enrichment |
any |
apify/e-commerce-scraping-tool |
trovevault/e-commerce-store-data-enricher |
food-delivery |
DoorDash |
apify/e-commerce-scraping-tool |
tri_angle/doordash-store-details-scraper |
food-delivery |
UberEats |
apify/e-commerce-scraping-tool |
e-commerce/ubereats-reviews-scraper |
food-delivery |
TheFork |
apify/e-commerce-scraping-tool |
jdtpnjtp/thefork-restaurant-scraper-advanced |
ads-intelligence |
Facebook / Meta |
apify/e-commerce-scraping-tool |
apify/facebook-ads-scraper |
classifieds |
Craigslist |
apify/e-commerce-scraping-tool |
ivanvs/craigslist-scraper-pay-per-result |
automotive |
Webmotors |
apify/e-commerce-scraping-tool |
stealth_mode/webmotors-auto-search-scraper |
events |
Eventbrite |
apify/e-commerce-scraping-tool |
aitorsm/eventbrite |
real-estate |
Realtor.com |
apify/e-commerce-scraping-tool |
powerai/realtor-properties-search-scraper |
content-discovery |
Pinterest |
apify/e-commerce-scraping-tool |
fatihtahta/pinterest-scraper-search |
tiktok-shop |
TikTok Shop |
apify/e-commerce-scraping-tool |
lemur/tiktok-shop-creators |
website-marketplace |
Flippa |
apify/e-commerce-scraping-tool |
scraped/flippa-scraper |
Step 2: Fetch Actor Schema
Fetch the Actor summary, input schema, and README:
# Summary (title, description, pricing, stats)
apify actors info "ACTOR_ID" --user-agent apify-awesome-skills/apify-ecommerce --json 2>/dev/null
# Input schema (required and optional parameters; schema lives in
# .taggedBuilds.latest.build.inputSchema as an escaped JSON string)
apify actors info "ACTOR_ID" --user-agent apify-awesome-skills/apify-ecommerce --input --json 2>/dev/null
# README (capabilities, examples, gotchas)
apify actors info "ACTOR_ID" --user-agent apify-awesome-skills/apify-ecommerce --readme 2>/dev/null
Replace ACTOR_ID with the selected Actor (e.g., apify/e-commerce-scraping-tool).
Step 3: Ask User Preferences
Before running, ask:
- Output format:
- Quick answer (default) — synthesized answer in chat, no file saved
- CSV — full export saved to disk
- JSON — full export saved to disk
- Result count — suggest defaults by intent:
| Intent |
Default |
pricing |
50 products |
reviews |
200 reviews |
bestsellers |
100 items |
sellers |
50 sellers |
store-scrape |
all (unlimited) |
food-delivery |
50 restaurants |
| all others |
20–50 |
Cost safety: Always set a sensible result limit in the Actor input (e.g., maxResults, resultsLimit, maxCrawledPages, or equivalent field from the input schema). Default to the per-intent values above unless the user explicitly asks for more. Warn the user before running large scrapes (1000+ results) as they consume more Apify credits.
Step 4: Run the Actor and Fetch Results
Two steps: run the Actor (blocks until done), then fetch dataset items in the requested format.
Run the Actor — returns run metadata as JSON; extract defaultDatasetId for the next step:
apify actors call "ACTOR_ID" -i 'JSON_INPUT' \
--user-agent apify-awesome-skills/apify-ecommerce --json 2>/dev/null
From the output use .id (run ID), .status (should be SUCCEEDED), and .defaultDatasetId.
Fetch results — pick the variant based on the user's preference:
# Quick answer: total count + fields + top 5 in chat (no file)
apify datasets info DATASET_ID --json \
--user-agent apify-awesome-skills/apify-ecommerce 2>/dev/null \
| jq '{itemCount, fields, consoleUrl}'
apify datasets get-items DATASET_ID --limit 5 \
--user-agent apify-awesome-skills/apify-ecommerce --format json 2>/dev/null
# CSV file
apify datasets get-items DATASET_ID \
--user-agent apify-awesome-skills/apify-ecommerce --format csv 2>/dev/null > YYYY-MM-DD_OUTPUT_FILE.csv
# JSON file
apify datasets get-items DATASET_ID \
--user-agent apify-awesome-skills/apify-ecommerce --format json 2>/dev/null > YYYY-MM-DD_OUTPUT_FILE.json
Other --format options: jsonl, xlsx, xml, rss, html. Use --offset N to paginate large datasets.
Tip: for anything more than a quick peek, save the dataset to a local file first (with > file.json / > file.csv) and run further analysis from disk. apify datasets get-items always streams over the network, so piping it straight into jq re-downloads the whole thing every iteration.
Combining with jq for quick extraction:
Treat jq as a complement to apify datasets get-items, not a replacement: server-side --limit / --offset / --format keeps cost and bandwidth down. Use jq on a sample item or on a file you already saved.
# Discover real field names from one sample item (Actor outputs vary —
# use this before composing further jq queries)
apify datasets get-items DATASET_ID --limit 1 --format json \
--user-agent apify-awesome-skills/apify-ecommerce 2>/dev/null \
| jq '.[0]'
# Quick aggregation from a JSON file you already saved with the commands above
jq '[.[] | select(.rating != null and .rating >= 4.5)] | length' YYYY-MM-DD_OUTPUT_FILE.json
Step 5: Analyze Results and Deliver Answer
After the run completes, deliver a direct synthesized answer — not a data dump:
- Pricing: price range, average, top 5 cheapest with URLs
- Reviews: average rating, top 3 positive and negative themes, recent snippets
- Bestsellers: top 10 by rank with name, price, rating, URL
- Sellers: total sellers, price range per seller, unauthorized seller flags
- Store-scrape: total products, category breakdown, price range, stock summary
- Tech-stack: platform detected, confidence level, notable plugins
- Food delivery: restaurant count, average rating, price tier breakdown
- Ads intelligence: total ads, active/inactive split, top creative formats
Error Handling
- Auth error → run
apify login, or set APIFY_TOKEN env var
Actor not found → check Actor ID spelling in the routing table
- Run status
FAILED → open the console URL (.consoleUrl from run metadata) for logs
- Timeout / very long run → pass
--timeout <seconds> to apify actors call
No results → broaden the keyword or switch to a Fallback Actor from the routing table
proxy is required → add "proxy": {"useApifyProxy": true} to the Actor input
Platform not detected → default to apify/e-commerce-scraping-tool with generic intent
1---2name: apify-ecommerce3description: Scrape e-commerce data for pricing, reviews, bestsellers, and seller discovery across 30+ platforms including Amazon, Walmart, eBay, Shopify, WooCommerce, and more. Use when user asks about product prices, competitor analysis, store scraping, tech stack detection, food delivery, real estate, or marketplace intelligence.4---56# E-Commerce Cluster78Answer natural language e-commerce questions by routing to the right Apify Actor and delivering a synthesized answer via the `apify` CLI.910**CLI rules:** Always pass `--user-agent apify-awesome-skills/apify-ecommerce`, `--json` (or the relevant `--format` flag on `datasets get-items`), and `2>/dev/null`. The `--user-agent` flag is critical for telemetry — never omit it.1112## Prerequisites13(No need to check it upfront)1415- Apify CLI v1.5.0+ (`npm install -g apify-cli`)16- `jq` (recommended for quick extraction and filtering; `brew install jq` on macOS, `apt install jq` on Linux)17- Authentication via one of:18 - `apify login` (OAuth, opens browser)19 - `APIFY_TOKEN` env variable (e.g. `export APIFY_TOKEN=...` or `.env` file)20 - Token from [Apify Console → Settings → Integrations](https://console.apify.com/settings/integrations)2122Verify auth: `apify info --user-agent apify-awesome-skills/apify-ecommerce` — should show username and userId.2324## Workflow2526Copy this checklist and track progress:2728```29Task Progress:30- [ ] Step 1: Detect intent and select Actor31- [ ] Step 2: Fetch Actor schema32- [ ] Step 3: Ask user preferences (format, result count)33- [ ] Step 4: Run the Actor and fetch results34- [ ] Step 5: Analyze results and deliver synthesized answer35```3637### Step 1: Detect Intent and Select Actor3839Classify the user's message into an intent, then pick the right Actor.4041**Intent signals:**4243| Signals in user message | Intent |44|------------------------|--------|45| price, cost, cheapest, compare prices, pricing | `pricing` |46| review, rating, sentiment, stars, feedback | `reviews` |47| bestseller, top selling, most popular, trending | `bestsellers` |48| seller, vendor, reseller, who sells | `sellers` |49| all products from, scrape store, full catalog | `store-scrape` |50| what platform, built on, tech stack, Shopify or WooCommerce | `tech-stack` |51| SEO, listing quality, product page audit | `seo-audit` |52| competitor funnel, competitor pricing, conversion elements | `competitor` |53| search intent, keyword intent, SERP intent | `search-intent` |54| match products, same product on different platforms | `product-matching` |55| restaurant, food delivery, DoorDash, UberEats, TheFork | `food-delivery` |56| enrich store, store metadata, store list | `store-enrichment` |57| event, concert, ticket, Eventbrite | `events` |58| property, real estate, house listing, Realtor | `real-estate` |59| Facebook ads, Meta ads, ad library, competitor ads | `ads-intelligence` |60| classified, Craigslist, used item for sale | `classifieds` |61| car, used car, vehicle, automotive, Webmotors | `automotive` |62| pins, inspiration, Pinterest boards, visual search, Pinterest trends | `content-discovery` |63| TikTok Shop, TikTok store, TikTok creator | `tiktok-shop` |64| website for sale, domain for sale, Flippa | `website-marketplace` |6566If multiple intents are detected, ask: *"Do you want [intent A] or [intent B]?"*6768**Actor routing table — always try Primary first, switch to Fallback only if it fails or returns 0 results:**6970| Intent | Platform | Primary Actor | Fallback Actor |71|--------|----------|---------------|----------------|72| `pricing` | Amazon / Walmart / generic | `apify/e-commerce-scraping-tool` | — |73| `pricing` | eBay | `apify/e-commerce-scraping-tool` | `ivanvs/ebay-scraper-pay-per-result` |74| `pricing` | Etsy | `apify/e-commerce-scraping-tool` | `epctex/etsy-scraper` |75| `pricing` | Google Shopping | `apify/e-commerce-scraping-tool` | `epctex/google-shopping-scraper` |76| `pricing` | Facebook Marketplace | `apify/e-commerce-scraping-tool` | `apify/facebook-marketplace-scraper` |77| `pricing` | SHEIN | `apify/e-commerce-scraping-tool` | `seamless_coffer/shein-product-scraper` |78| `pricing` | Lazada | `apify/e-commerce-scraping-tool` | `fatihtahta/lazada-scraper` |79| `pricing` | Canadian Tire | `apify/e-commerce-scraping-tool` | `azzouzana/canadiantire-ca-scraper` |80| `pricing` | Tesco | `apify/e-commerce-scraping-tool` | `radeance/tesco-scraper` |81| `pricing` | Shopify | `apify/e-commerce-scraping-tool` | `trovevault/shopify-products-scraper` |82| `pricing` | WooCommerce | `apify/e-commerce-scraping-tool` | `trovevault/woocommerce-products-scraper` |83| `reviews` | Amazon / Walmart / generic | `apify/e-commerce-scraping-tool` | `junglee/amazon-reviews-scraper` |84| `reviews` | Trustpilot | `apify/e-commerce-scraping-tool` | `casper11515/trustpilot-reviews-scraper` |85| `reviews` | TheFork | `apify/e-commerce-scraping-tool` | `jdtpnjtp/thefork-restaurant-scraper-advanced` |86| `bestsellers` | Amazon | `apify/e-commerce-scraping-tool` | `junglee/amazon-bestsellers` |87| `sellers` | Amazon | `apify/e-commerce-scraping-tool` | `junglee/amazon-seller-scraper` |88| `sellers` | eBay | `apify/e-commerce-scraping-tool` | `ivanvs/ebay-scraper-pay-per-result` |89| `store-scrape` | Shopify | `apify/e-commerce-scraping-tool` | `trovevault/shopify-products-scraper` |90| `store-scrape` | WooCommerce | `apify/e-commerce-scraping-tool` | `trovevault/woocommerce-products-scraper` |91| `store-scrape` | Amazon | `apify/e-commerce-scraping-tool` | `junglee/Amazon-crawler` |92| `store-scrape` | Flippa | `apify/e-commerce-scraping-tool` | `scraped/flippa-scraper` |93| `tech-stack` | any | `apify/e-commerce-scraping-tool` | `trovevault/e-commerce-tech-stack-detector` |94| `seo-audit` | any | `apify/e-commerce-scraping-tool` | `trovevault/product-listing-seo-auditor` |95| `competitor` | any | `apify/e-commerce-scraping-tool` | `trovevault/competitor-intelligence-scraper---funnel-pricing-conversion` |96| `search-intent` | any | `apify/e-commerce-scraping-tool` | `trovevault/ai-serp-intent-extractor---search-intent-classifier` |97| `product-matching` | any | `apify/e-commerce-scraping-tool` | `tri_angle/product-matching-vectorizer` |98| `store-enrichment` | any | `apify/e-commerce-scraping-tool` | `trovevault/e-commerce-store-data-enricher` |99| `food-delivery` | DoorDash | `apify/e-commerce-scraping-tool` | `tri_angle/doordash-store-details-scraper` |100| `food-delivery` | UberEats | `apify/e-commerce-scraping-tool` | `e-commerce/ubereats-reviews-scraper` |101| `food-delivery` | TheFork | `apify/e-commerce-scraping-tool` | `jdtpnjtp/thefork-restaurant-scraper-advanced` |102| `ads-intelligence` | Facebook / Meta | `apify/e-commerce-scraping-tool` | `apify/facebook-ads-scraper` |103| `classifieds` | Craigslist | `apify/e-commerce-scraping-tool` | `ivanvs/craigslist-scraper-pay-per-result` |104| `automotive` | Webmotors | `apify/e-commerce-scraping-tool` | `stealth_mode/webmotors-auto-search-scraper` |105| `events` | Eventbrite | `apify/e-commerce-scraping-tool` | `aitorsm/eventbrite` |106| `real-estate` | Realtor.com | `apify/e-commerce-scraping-tool` | `powerai/realtor-properties-search-scraper` |107| `content-discovery` | Pinterest | `apify/e-commerce-scraping-tool` | `fatihtahta/pinterest-scraper-search` |108| `tiktok-shop` | TikTok Shop | `apify/e-commerce-scraping-tool` | `lemur/tiktok-shop-creators` |109| `website-marketplace` | Flippa | `apify/e-commerce-scraping-tool` | `scraped/flippa-scraper` |110111### Step 2: Fetch Actor Schema112113Fetch the Actor summary, input schema, and README:114115```bash116# Summary (title, description, pricing, stats)117apify actors info "ACTOR_ID" --user-agent apify-awesome-skills/apify-ecommerce --json 2>/dev/null118119# Input schema (required and optional parameters; schema lives in120# .taggedBuilds.latest.build.inputSchema as an escaped JSON string)121apify actors info "ACTOR_ID" --user-agent apify-awesome-skills/apify-ecommerce --input --json 2>/dev/null122123# README (capabilities, examples, gotchas)124apify actors info "ACTOR_ID" --user-agent apify-awesome-skills/apify-ecommerce --readme 2>/dev/null125```126127Replace `ACTOR_ID` with the selected Actor (e.g., `apify/e-commerce-scraping-tool`).128129### Step 3: Ask User Preferences130131Before running, ask:1321. **Output format**:133 - **Quick answer** (default) — synthesized answer in chat, no file saved134 - **CSV** — full export saved to disk135 - **JSON** — full export saved to disk1362. **Result count** — suggest defaults by intent:137138| Intent | Default |139|--------|---------|140| `pricing` | 50 products |141| `reviews` | 200 reviews |142| `bestsellers` | 100 items |143| `sellers` | 50 sellers |144| `store-scrape` | all (unlimited) |145| `food-delivery` | 50 restaurants |146| all others | 20–50 |147148**Cost safety**: Always set a sensible result limit in the Actor input (e.g., `maxResults`, `resultsLimit`, `maxCrawledPages`, or equivalent field from the input schema). Default to the per-intent values above unless the user explicitly asks for more. Warn the user before running large scrapes (1000+ results) as they consume more Apify credits.149150### Step 4: Run the Actor and Fetch Results151152Two steps: run the Actor (blocks until done), then fetch dataset items in the requested format.153154**Run the Actor** — returns run metadata as JSON; extract `defaultDatasetId` for the next step:155156```bash157apify actors call "ACTOR_ID" -i 'JSON_INPUT' \158 --user-agent apify-awesome-skills/apify-ecommerce --json 2>/dev/null159```160161From the output use `.id` (run ID), `.status` (should be `SUCCEEDED`), and `.defaultDatasetId`.162163**Fetch results** — pick the variant based on the user's preference:164165```bash166# Quick answer: total count + fields + top 5 in chat (no file)167apify datasets info DATASET_ID --json \168 --user-agent apify-awesome-skills/apify-ecommerce 2>/dev/null \169 | jq '{itemCount, fields, consoleUrl}'170apify datasets get-items DATASET_ID --limit 5 \171 --user-agent apify-awesome-skills/apify-ecommerce --format json 2>/dev/null172173# CSV file174apify datasets get-items DATASET_ID \175 --user-agent apify-awesome-skills/apify-ecommerce --format csv 2>/dev/null > YYYY-MM-DD_OUTPUT_FILE.csv176177# JSON file178apify datasets get-items DATASET_ID \179 --user-agent apify-awesome-skills/apify-ecommerce --format json 2>/dev/null > YYYY-MM-DD_OUTPUT_FILE.json180```181182Other `--format` options: `jsonl`, `xlsx`, `xml`, `rss`, `html`. Use `--offset N` to paginate large datasets.183184**Tip:** for anything more than a quick peek, save the dataset to a local file first (with `> file.json` / `> file.csv`) and run further analysis from disk. `apify datasets get-items` always streams over the network, so piping it straight into `jq` re-downloads the whole thing every iteration.185186**Combining with `jq` for quick extraction:**187188Treat `jq` as a complement to `apify datasets get-items`, not a replacement: server-side `--limit` / `--offset` / `--format` keeps cost and bandwidth down. Use `jq` on a sample item or on a file you already saved.189190```bash191# Discover real field names from one sample item (Actor outputs vary —192# use this before composing further jq queries)193apify datasets get-items DATASET_ID --limit 1 --format json \194 --user-agent apify-awesome-skills/apify-ecommerce 2>/dev/null \195 | jq '.[0]'196197# Quick aggregation from a JSON file you already saved with the commands above198jq '[.[] | select(.rating != null and .rating >= 4.5)] | length' YYYY-MM-DD_OUTPUT_FILE.json199```200201### Step 5: Analyze Results and Deliver Answer202203After the run completes, deliver a direct synthesized answer — not a data dump:204205- **Pricing:** price range, average, top 5 cheapest with URLs206- **Reviews:** average rating, top 3 positive and negative themes, recent snippets207- **Bestsellers:** top 10 by rank with name, price, rating, URL208- **Sellers:** total sellers, price range per seller, unauthorized seller flags209- **Store-scrape:** total products, category breakdown, price range, stock summary210- **Tech-stack:** platform detected, confidence level, notable plugins211- **Food delivery:** restaurant count, average rating, price tier breakdown212- **Ads intelligence:** total ads, active/inactive split, top creative formats213214## Error Handling215216- Auth error → run `apify login`, or set `APIFY_TOKEN` env var217- `Actor not found` → check Actor ID spelling in the routing table218- Run status `FAILED` → open the console URL (`.consoleUrl` from run metadata) for logs219- Timeout / very long run → pass `--timeout <seconds>` to `apify actors call`220- `No results` → broaden the keyword or switch to a Fallback Actor from the routing table221- `proxy is required` → add `"proxy": {"useApifyProxy": true}` to the Actor input222- `Platform not detected` → default to `apify/e-commerce-scraping-tool` with `generic` intent