# Overstock Product Scraper (`sian.agency/overstock-product-scraper`) Actor

Scrape Overstock (Bed Bath & Beyond) furniture & home décor — price, ratings, images, specs & variants. Keyword or category search, full detail enrichment, clean JSON/CSV, no code.

- **URL**: https://apify.com/sian.agency/overstock-product-scraper.md
- **Developed by:** [SIÁN OÜ](https://apify.com/sian.agency) (community)
- **Categories:** E-commerce, Business
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.80 / 1,000 overview products

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## Overstock Product Scraper — Furniture, Prices & Specs 🛋️

[![SIÁN Agency Store](https://img.shields.io/badge/Store-SI%C3%81N%20Agency-1AE392)](https://apify.com/sian.agency?fpr=sian) [![Home Depot Product Scraper](https://img.shields.io/badge/Store-Home%20Depot%20Product%20Scraper-F96302)](https://apify.com/sian.agency/home-depot-product-scraper?fpr=sian) [![Walmart Data Scraper](https://img.shields.io/badge/Store-Walmart%20Data%20Scraper-0071CE)](https://apify.com/sian.agency/walmart-data-scraper?fpr=sian) [![Google Shopping Price Scraper](https://img.shields.io/badge/Store-Google%20Shopping%20Price%20Scraper-4285F4)](https://apify.com/sian.agency/google-shopping-price-scraper?fpr=sian)

#### 🎉 Turn Overstock (now Bed Bath & Beyond) into a clean furniture & home-décor dataset — prices, ratings, images, full specs & variants
##### Built for pricing analysts, merchandisers, dropshippers and market researchers who need structured product data, not screenshots

---

### 📋 Overview

**Pull the entire Overstock / Bed Bath & Beyond catalog into structured rows** — search by keyword or sweep a whole category, and get clean price, rating, image, spec and variant data for furniture, rugs, décor and every home category.

**Why thousands of professionals choose us:**
- ✅ **Complete product data**: price ranges, ratings, review counts, images, variant counts and on-sale flags — straight from the live catalog
- ⚡ **Fast & deep**: ~80 products per search page in Overview mode; switch to Detail for the full spec sheet and long description
- 🎯 **Real native sorting**: best selling, on sale, price, customer rating, new arrivals — the same ordering shoppers see
- 💰 **Pay-per-result**: only charged for the products you actually receive — no subscriptions, no wasted credits
- 💎 **Full specification tables**: dimensions, material, style, color, assembly, warranty, country of origin and more
- ✨ **No code, no account, no API key** — paste keywords or category URLs and run

---

### ✨ Features

- 🔍 **Keyword search**: scrape any free-text search exactly as typed into the site's search bar
- 🧭 **Category browsing**: paste a category page URL to harvest an entire department
- ⚡ **Overview mode**: fast tiles — price range, rating, reviews, image, variant count, on-sale status
- 🔬 **Detail mode**: full specifications table, long description, brand, model number, country of origin and variant options
- 🔃 **Native sort options**: best selling · on sale · price low→high · price high→low · customer rating · new arrivals
- 📦 **Multi-search runs**: queue many keywords and categories in one run — all results land in one dataset
- 🖼️ **High-resolution images**: the largest available product render, hero image first
- 📊 **Clean JSON / CSV / Excel export** straight from the Apify dataset

---

### 🎬 Quick Start

Provide one or more search keywords (or category page URLs), pick a mode, and run. Results stream into the dataset as clean rows.

```bash
curl -X POST "https://api.apify.com/v2/acts/sian.agency~overstock-product-scraper/runs?token=YOUR_TOKEN" \
-H 'Content-Type: application/json' \
-d '{"keywords": ["ergonomic office chair"], "scrapeMode": "overview", "maxResults": 50}'
````

***

### 🚀 Getting Started (3 Simple Steps)

#### Step 1: Add your searches

Type one or more keywords (e.g. `velvet accent chair`) — or paste full category page URLs for whole-department sweeps.

#### Step 2: Choose a mode

Pick **Overview** for fast price/rating/image tiles, or **Detail** for the full spec sheet and description.

#### Step 3: Run

Press Start. Watch products stream into the dataset, then export to JSON, CSV or Excel.

**That's it! In a couple of minutes, you'll have:**

- A structured table of products with prices, ratings and images
- Full specifications and descriptions (Detail mode)
- A clean export ready for analysis, feeds or comparison

***

### 📥 Input Configuration

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| keywords | array | No | Free-text searches (one per line) |
| categoryUrls | array | No | Full category page URLs to harvest entire departments |
| scrapeMode | string | No | `overview` (fast) or `detail` (full specs) |
| sort | string | No | `best_selling`, `on_sale`, `price_low`, `price_high`, `top_rated`, `newest` |
| maxResults | integer | No | Maximum products across all searches (default 100) |

**Example (keyword search):**

```json
{
  "keywords": ["ergonomic office chair", "area rug 8x10"],
  "scrapeMode": "overview",
  "sort": "best_selling",
  "maxResults": 100
}
```

**Example (category sweep, full detail):**

```json
{
  "categoryUrls": ["https://www.bedbathandbeyond.com/c/home-office-furniture/office-chairs?t=24437"],
  "scrapeMode": "detail",
  "maxResults": 50
}
```

***

### 📤 Output

Results are saved to the Apify dataset with **30+ fields** including:

| Field | Type | Description |
|-------|------|-------------|
| product\_id | string | Unique product identifier |
| productTitle | string | Full product name |
| brand | string | Brand name (Detail mode) |
| price / price\_max | number | Current price (and high end of the range) |
| original\_price | number | Was / compare-at price |
| percent\_off | number | Discount percentage |
| on\_sale | boolean | Whether the product is on sale |
| rating | number | Average customer rating (0–5) |
| review\_count | number | Number of reviews |
| option\_count | number | Number of variant options |
| in\_stock | boolean | Availability (Detail mode) |
| specs | object | Full specification table (Detail mode) |
| description | string | Long product description (Detail mode) |
| options | array | Variant option labels, e.g. colors (Detail mode) |
| images | array | Product image URLs |
| url | string | Direct product page link |

**Example:**

```json
{
  "product_id": "41718399",
  "productTitle": "EROMMY Ergonomic Heated Massage Office Chair with Lumbar Support",
  "brand": "Erommy",
  "price": 138.14,
  "price_max": 195.69,
  "original_price": 153.49,
  "percent_off": 10,
  "on_sale": true,
  "rating": 4.4,
  "review_count": 5,
  "option_count": 7,
  "in_stock": true,
  "country_of_origin": "China",
  "specs": { "Dimensions": "24.8 In. L X 24.8 In. W X 45.3 In. H", "Material": "Stainless Steel", "Style": "Glam, Modern & Contemporary" },
  "options": ["Beige", "Black", "Blue", "Brown"],
  "images": ["https://ak1.ostkcdn.com/images/products/..."],
  "url": "https://www.bedbathandbeyond.com/Home-Garden/.../41718399/product.html"
}
```

***

### 💼 Use Cases & Examples

#### 1. Competitor Price Monitoring

**Pricing analysts tracking furniture and décor prices across the catalog.**

**Input:** Keywords or category URLs for your target products
**Output:** Price, original price and discount % per product
**Use:** Detect price changes and promotions over time

#### 2. Assortment & Catalog Research

**Merchandisers mapping what's available in a category and at what price points.**

**Input:** A category URL with `best_selling` sort
**Output:** The full product list with prices, ratings and variant counts
**Use:** Identify gaps, bestsellers and price tiers

#### 3. Dropshipping Product Sourcing

**Sellers building product feeds with specs, images and descriptions.**

**Input:** Keywords in `detail` mode
**Output:** Full spec tables, descriptions, images and variants
**Use:** Populate listings and product catalogs

#### 4. Market & Demand Research

**Analysts measuring rating volume and review counts to gauge demand.**

**Input:** Broad keywords across categories
**Output:** Ratings and review counts per product
**Use:** Rank product popularity and customer sentiment

#### 5. Promotion & Deal Tracking

**Deal sites surfacing the best current discounts.**

**Input:** Any category with `on_sale` sort
**Output:** Discounted products with percent off and on-sale flags
**Use:** Publish live deal roundups

***

### 🔗 Integration Examples

#### JavaScript/Node.js

```javascript
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_TOKEN' });

const run = await client.actor('sian.agency/overstock-product-scraper').call({
  keywords: ['ergonomic office chair'],
  scrapeMode: 'overview',
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items[0]);
```

#### Python

```python
from apify_client import ApifyClient
client = ApifyClient('YOUR_TOKEN')

run = client.actor('sian.agency/overstock-product-scraper').call(
    run_input={'keywords': ['ergonomic office chair'], 'scrapeMode': 'overview'}
)

for item in client.dataset(run['defaultDatasetId']).iterate_items():
    print(item)
```

#### cURL

```bash
curl -X POST 'https://api.apify.com/v2/acts/sian.agency~overstock-product-scraper/runs?token=YOUR_TOKEN' \
-H 'Content-Type: application/json' \
-d '{"keywords": ["ergonomic office chair"], "scrapeMode": "overview"}'
```

#### Automation Workflows (N8N / Zapier / Make)

1. **Trigger**: Schedule or webhook
2. **HTTP Request**: Call the actor API
3. **Process**: Handle JSON results
4. **Action**: Save to a sheet, notify, or transform into a feed

***

### 📊 Performance & Pricing

#### FREE Tier (Try It Now)

- **25 products** per run — full feature access, same quality
- No credit card required
- Perfect for testing and small projects

#### PAID Tier (Production Ready)

- **Unlimited** products per run
- Faster processing, no delays
- Pay-per-result: only charged for products you actually receive

💰 **Transparent pay-per-result pricing** — Overview is the cheap high-volume row; Detail is the premium full-spec row.

🔗 [View current pricing](https://apify.com/sian.agency/overstock-product-scraper?fpr=sian)

***

### ❓ Frequently Asked Questions

**Q: How many products can I scrape?**
A: FREE tier: 25 per run. PAID tier: unlimited.

**Q: What's the difference between Overview and Detail mode?**
A: Overview returns fast tiles (price, rating, image, variants). Detail adds the full specification table, long description, brand, model number, country of origin and variant options.

**Q: How do I scrape a whole category?**
A: Open any category page on the site, copy the full URL from your browser, and paste it into the Category Page URLs field.

**Q: What output formats are available?**
A: JSON, CSV and Excel — export directly from the Apify dataset.

**Q: Does it work with out-of-stock or discontinued products?**
A: Yes — availability is reported per product so you can filter as needed.

**Q: Is this legal?**
A: Yes — we only extract publicly available data. See the legal section below.

***

### 🐛 Troubleshooting

**No products returned for a keyword**

- Try a more specific keyword, or use a category page URL instead.
- Some very broad terms map to a landing page — a category URL is more reliable.

**A category URL isn't accepted**

- Paste the full URL including the `?t=` part (e.g. `.../c/home-office-furniture/office-chairs?t=24437`).

**Detail mode missing some fields**

- A few products legitimately omit specs or descriptions on the source page; Overview fields always remain populated.

***

### ⚖️ Is it legal to scrape data?

Our actors are ethical and do not extract any private user data, such as email addresses, gender, or location. They only extract what the user has chosen to share publicly. We therefore believe that our actors, when used for ethical purposes by Apify users, are safe.

However, you should be aware that your results could contain personal data. Personal data is protected by the **GDPR** in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers.

You can also read Apify's blog post on the [legality of web scraping](https://blog.apify.com/is-web-scraping-legal/).

***

### 🤝 Support

[![Telegram Support](https://img.shields.io/badge/Telegram-Support%20Group-0088cc?logo=telegram)](https://t.me/+vyh1sRE08sAxMGRi)

**Join our active support community**

- For issues or questions, open an issue in the actor's repository
- Check the [SIÁN Agency Store](https://apify.com/sian.agency?fpr=sian) for more automation tools
- 📧 <apify@sian-agency.online>

***

> **Trademark notice:** This actor is an independent tool and is **not affiliated with, endorsed by, or sponsored by** Overstock, Bed Bath & Beyond, or any of their subsidiaries. "Overstock" and "Bed Bath & Beyond" are trademarks of their respective owners. Use this actor only to collect publicly available data in compliance with applicable laws and the website's terms.

***

**Built by [SIÁN Agency](https://www.sian-agency.online)** | **[More Tools](https://apify.com/sian.agency?fpr=sian)**

# Actor input Schema

## `keywords` (type: `array`):

🔍 **KEYWORD SEARCH:** Free-text Overstock / Bed Bath & Beyond searches — exactly what you'd type into the site's search bar.

📝 **EXAMPLES:** `ergonomic office chair` · `area rug 8x10` · `velvet accent chair` · `outdoor sectional`

💡 **TIP:** Add one keyword per line — each runs as its own search and all results land in the same dataset.

🖊️ **BULK EDIT:** Click "Bulk edit" to paste many keywords at once (one per line).

✅ **IMPORTANT:** Provide either keywords OR category page URLs (at least one is needed to have something to scrape).

## `categoryUrls` (type: `array`):

🧭 **CATEGORY BROWSING (Advanced):** Scrape a whole Overstock / Bed Bath & Beyond category instead of a keyword search.

🔧 **HOW TO GET IT:** Open any category page on the site and copy the full URL from your browser (e.g. `https://www.bedbathandbeyond.com/c/home-office-furniture/office-chairs?t=24437`). Paste the entire URL here.

💡 **TIP:** Leave this empty if you're only using keywords — it's purely an advanced alternative for category-level harvesting.

🖊️ **BULK EDIT:** Add one category URL per line to sweep multiple categories in a single run.

## `scrapeMode` (type: `string`):

⚙️ **SCRAPE DEPTH:** Choose how much data to pull per product.

⚡ **Overview (fast):** Search results only — price range, ratings, images, variant count and on-sale status. Fastest and cheapest path.

🔬 **Detail (enriched specs):** Everything in Overview PLUS the full specifications table, long product description, brand, model number, country of origin and variant option labels scraped from each product page.

💡 **TIP:** Start with Overview to scope your catalog, then switch to Detail when you need the complete spec sheet for feeds or comparisons.

## `sort` (type: `string`):

🔃 **RESULT ORDERING:** Order search results using the site's own native sort options — so you get the same ranking real shoppers see.

🏆 **Best selling** surfaces the most popular products first · 🏷️ **On sale** leads with discounted items · 💲 **Price** sorts ascending or descending · ⭐ **Customer rating** leads with the highest-reviewed items · 🆕 **New arrivals** prioritizes the latest products.

## `maxResults` (type: `integer`):

🔢 **RESULT CAP:** Maximum number of products to return across all keywords and categories combined.

🎁 **TIER-BASED LIMITS:**

- **FREE users:** Up to 25 products per run
- **PAID users:** Unlimited — scrape entire catalogs in a single run

💡 **TIP:** Keep this low while you dial in your keywords, then raise it once the output looks right.

## Actor input object example

```json
{
  "keywords": [
    "ergonomic office chair"
  ],
  "scrapeMode": "overview",
  "sort": "best_selling",
  "maxResults": 100
}
```

# Actor output Schema

## `overstockProducts` (type: `string`):

Scraped Overstock / Bed Bath & Beyond products with prices, ratings, images, specs and variant options.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "keywords": [
        "ergonomic office chair"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("sian.agency/overstock-product-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "keywords": ["ergonomic office chair"] }

# Run the Actor and wait for it to finish
run = client.actor("sian.agency/overstock-product-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "keywords": [
    "ergonomic office chair"
  ]
}' |
apify call sian.agency/overstock-product-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=sian.agency/overstock-product-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Overstock Product Scraper",
        "description": "Scrape Overstock (Bed Bath & Beyond) furniture & home décor — price, ratings, images, specs & variants. Keyword or category search, full detail enrichment, clean JSON/CSV, no code.",
        "version": "1.0",
        "x-build-id": "qla6r3S35yEIwfJpS"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/sian.agency~overstock-product-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-sian.agency-overstock-product-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/sian.agency~overstock-product-scraper/runs": {
            "post": {
                "operationId": "runs-sync-sian.agency-overstock-product-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/sian.agency~overstock-product-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-sian.agency-overstock-product-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "keywords": {
                        "title": "🔍 Search Keywords",
                        "type": "array",
                        "description": "🔍 **KEYWORD SEARCH:** Free-text Overstock / Bed Bath & Beyond searches — exactly what you'd type into the site's search bar.\n\n📝 **EXAMPLES:** `ergonomic office chair` · `area rug 8x10` · `velvet accent chair` · `outdoor sectional`\n\n💡 **TIP:** Add one keyword per line — each runs as its own search and all results land in the same dataset.\n\n🖊️ **BULK EDIT:** Click \"Bulk edit\" to paste many keywords at once (one per line).\n\n✅ **IMPORTANT:** Provide either keywords OR category page URLs (at least one is needed to have something to scrape).",
                        "default": [
                            "ergonomic office chair"
                        ],
                        "items": {
                            "type": "string"
                        }
                    },
                    "categoryUrls": {
                        "title": "🧭 Category Page URLs (Advanced)",
                        "type": "array",
                        "description": "🧭 **CATEGORY BROWSING (Advanced):** Scrape a whole Overstock / Bed Bath & Beyond category instead of a keyword search.\n\n🔧 **HOW TO GET IT:** Open any category page on the site and copy the full URL from your browser (e.g. `https://www.bedbathandbeyond.com/c/home-office-furniture/office-chairs?t=24437`). Paste the entire URL here.\n\n💡 **TIP:** Leave this empty if you're only using keywords — it's purely an advanced alternative for category-level harvesting.\n\n🖊️ **BULK EDIT:** Add one category URL per line to sweep multiple categories in a single run.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "scrapeMode": {
                        "title": "⚙️ Scrape Mode",
                        "enum": [
                            "overview",
                            "detail"
                        ],
                        "type": "string",
                        "description": "⚙️ **SCRAPE DEPTH:** Choose how much data to pull per product.\n\n⚡ **Overview (fast):** Search results only — price range, ratings, images, variant count and on-sale status. Fastest and cheapest path.\n\n🔬 **Detail (enriched specs):** Everything in Overview PLUS the full specifications table, long product description, brand, model number, country of origin and variant option labels scraped from each product page.\n\n💡 **TIP:** Start with Overview to scope your catalog, then switch to Detail when you need the complete spec sheet for feeds or comparisons.",
                        "default": "overview"
                    },
                    "sort": {
                        "title": "🔃 Sort Order",
                        "enum": [
                            "best_selling",
                            "on_sale",
                            "price_low",
                            "price_high",
                            "top_rated",
                            "newest"
                        ],
                        "type": "string",
                        "description": "🔃 **RESULT ORDERING:** Order search results using the site's own native sort options — so you get the same ranking real shoppers see.\n\n🏆 **Best selling** surfaces the most popular products first · 🏷️ **On sale** leads with discounted items · 💲 **Price** sorts ascending or descending · ⭐ **Customer rating** leads with the highest-reviewed items · 🆕 **New arrivals** prioritizes the latest products.",
                        "default": "best_selling"
                    },
                    "maxResults": {
                        "title": "🔢 Max Results",
                        "minimum": 1,
                        "type": "integer",
                        "description": "🔢 **RESULT CAP:** Maximum number of products to return across all keywords and categories combined.\n\n🎁 **TIER-BASED LIMITS:**\n- **FREE users:** Up to 25 products per run\n- **PAID users:** Unlimited — scrape entire catalogs in a single run\n\n💡 **TIP:** Keep this low while you dial in your keywords, then raise it once the output looks right.",
                        "default": 100
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
