# Overstock Scraper | Home Goods and Furniture (`parseforge/overstock-scraper`) Actor

Scrape Overstock product listings for furniture, decor, bedding, kitchen, and rugs with title, brand, price, ratings, reviews, dimensions, and photos. Power price monitoring, competitive intelligence, dropshipping research, and home goods market analytics at scale online.

- **URL**: https://apify.com/parseforge/overstock-scraper.md
- **Developed by:** [ParseForge](https://apify.com/parseforge) (community)
- **Categories:** E-commerce, Lead generation, Marketing
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $19.00 / 1,000 results

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

![ParseForge Banner](https://github.com/ParseForge/apify-assets/blob/ad35ccc13ddd068b9d6cba33f323962e39aed5b2/banner.jpg?raw=true)

## 🛋️ Overstock Scraper

> 🚀 **Export Overstock furniture and home goods listings in seconds.** No login, no API key, no limits on what you can extract.

> 🕒 **Last updated:** 2026-05-22 · **📊 12 fields** per record · **Up to 1,000,000 items** · **Furniture, Rugs, Lighting, Outdoor and more**

The Overstock Scraper extracts product listings from Overstock (now Bed Bath & Beyond) in real time. It browses category pages and collects structured product data - title, price, discounts, ratings, brand, availability and more - using Apify's residential proxy network to bypass bot protection.

Data is sourced directly from Overstock's own product catalog (overstock.com), returning the same listings you see when you browse the site.

**Coverage:** Furniture, Rugs, Lighting, Bedding, Outdoor, Jewelry, Home Improvement. Each category contains up to 84 pages of listings (4,000+ products per run).

| 🎯 Target Audience | 💡 Primary Use Cases |
|---|---|
| Ecommerce sellers | Track competitor prices and availability |
| Interior designers | Research product catalogs and options |
| Price comparison sites | Build furniture price databases |
| Market researchers | Analyze home goods pricing trends |
| Data scientists | Train recommendation and pricing models |

### 📋 What the Overstock Scraper does

- Browses Overstock category pages by search query (sofa, rug, lamp, etc.)
- Extracts up to 1,000,000 product listings per run
- Captures price, original price, and discount percentage automatically
- Collects brand, rating, review count, and availability status
- Returns direct product URLs for each listing
- Respects Overstock's page structure without requiring login

> 💡 **Why it matters:** Overstock/Bed Bath & Beyond lists thousands of home goods products. Manual collection is impossible at scale - this actor does it in minutes.

### 🎬 Full Demo

🚧 Coming soon

### ⚙️ Input

| Field | Type | Description | Default |
|---|---|---|---|
| `searchQuery` | String | What to search for (sofa, rug, lamp, bed, etc.) | `sofa` |
| `maxItems` | Number | Max products to return (free: 10, paid: up to 1,000,000) | `10` |

**Basic example - scrape sofas:**
```json
{
  "searchQuery": "sofa",
  "maxItems": 100
}
````

**Scrape rugs:**

```json
{
  "searchQuery": "area rug",
  "maxItems": 500
}
```

> ⚠️ **Good to Know:** The scraper maps your search query to the closest Overstock category. Supported terms include: sofa, couch, chair, bed, dresser, mattress, dining table, desk, rug, lamp, bedding, outdoor, patio, jewelry, and more.

### 📊 Output

| Field | Type | Description |
|---|---|---|
| 🖼️ `imageUrl` | String | Product image URL |
| 📝 `title` | String | Full product title |
| 💰 `price` | Number | Current sale price (USD) |
| 🏷️ `originalPrice` | Number | Original list price (USD) |
| 🔖 `discount` | String | Discount percentage (e.g. "25% off") |
| ⭐ `rating` | Number | Average customer rating (1-5) |
| 💬 `reviewCount` | Number | Number of customer reviews |
| 🏢 `brand` | String | Brand/manufacturer name |
| 📁 `category` | String | Product category |
| 📦 `availability` | String | "In Stock" or "Out of Stock" |
| 🔗 `productUrl` | String | Direct link to product page |
| 🕒 `scrapedAt` | String | ISO timestamp of when item was scraped |
| ❌ `error` | String | Error message if item failed (null on success) |

**Sample record:**

```json
{
  "imageUrl": "https://ak1.ostkcdn.com/images/products/is/images/direct/69ef273c8cc4305e05c387e0cb20f546090a4862/48.03%22-Pin-Striped-Fabric-3-in-1-Convertible-2-Seater-Sleeper-Sofa-Bed.jpg",
  "title": "48.03\" Pin Striped Fabric 3 in 1 Convertible 2 Seater Sleeper Sofa Bed",
  "price": 268.79,
  "originalPrice": 319.99,
  "discount": "16% off",
  "rating": 2.75,
  "reviewCount": 8,
  "brand": "Jarenie",
  "category": "furniture",
  "availability": "In Stock",
  "productUrl": "https://www.overstock.com/Home-Garden/48.03-Pin-Striped-Fabric-3-in-1-Convertible-2-Seater-Sleeper-Sofa-Bed/43276346/product.html",
  "scrapedAt": "2026-05-22T03:31:22.919Z",
  "error": null
}
```

### ✨ Why choose this Actor

- 🛡️ **Residential proxy powered** - bypasses Akamai bot protection automatically
- 🔄 **Real-time data** - always reflects current prices and availability
- ⚡ **Fast** - processes 50+ products per page fetch, no per-product HTTP overhead
- 🎯 **Smart category mapping** - maps natural language queries to the right category
- 📦 **Pay-per-result pricing** - only pay for items you actually receive
- 🆓 **Free tier** - 10 free results to preview before committing

### 📈 How it compares to alternatives

| Feature | This Actor | Manual scraping | Other scrapers |
|---|---|---|---|
| Residential proxy | ✅ Included | ❌ Requires setup | Varies |
| Bot protection bypass | ✅ Automatic retries | ❌ Manual | Varies |
| Structured JSON output | ✅ 12 fields | ❌ Raw HTML | Varies |
| Pay-per-result pricing | ✅ | N/A | Rarely |
| Free tier | ✅ 10 items | N/A | Rarely |

### 🚀 How to use

1. [Create a free Apify account](https://console.apify.com/sign-up?fpr=vmoqkp) (includes $5 credit)
2. Open the [Overstock Scraper](https://apify.com/parseforge/overstock-scraper)
3. Enter your `searchQuery` (e.g. "sofa", "rug", "lamp")
4. Set `maxItems` to how many products you need
5. Click **Start** and download results as JSON, CSV, or Excel

### 💼 Business use cases

#### Price monitoring

Track Overstock prices for specific product categories daily. Set up scheduled runs and alert when prices drop below a threshold - useful for buyers, resellers, and competitive intelligence teams.

#### Inventory analysis

Monitor availability status across furniture categories. Identify out-of-stock patterns for market gap analysis or restock predictions.

#### Brand research

Filter results by brand to analyze a specific manufacturer's Overstock presence - product count, pricing tiers, review scores.

#### Catalog building

Build product databases for furniture recommendation engines, interior design tools, or comparison shopping platforms with real-time Overstock data.

### 🔌 Automating Overstock Scraper

Connect this actor to automation platforms using Apify webhooks:

- **Make (formerly Integromat)** - trigger a Google Sheet update when a run completes
- **Zapier** - push new listings to Slack, Airtable, or Notion
- **n8n** - build custom pricing alert workflows
- **Direct API** - poll the dataset endpoint from any backend

### 🌟 Beyond business use cases

#### Research

- Academic studies on furniture pricing patterns and regional availability
- Consumer behavior research on discount strategies

#### Creative

- Interior design inspiration databases
- Home staging product catalogs

#### Non-profit

- Budget furnishing guides for community organizations
- Accessibility product research for adaptive living spaces

#### Experimentation

- Price elasticity modeling with real retail data
- Training datasets for computer vision (product images)

### 🤖 Ask an AI assistant about this scraper

> "How do I export Overstock furniture listings to Excel?"
> "What fields does the Overstock Scraper return?"
> "Can I filter by category or brand?"

Open this actor in [Apify Console](https://apify.com/parseforge/overstock-scraper) and use the built-in AI assistant to get answers instantly.

### ❓ Frequently Asked Questions

#### What categories does this scraper support?

Furniture, rugs, lighting, bedding, bath, outdoor/patio, jewelry, and home improvement. Use natural language in `searchQuery` (e.g. "sofa", "area rug", "desk").

#### Does it require login or an API key?

No. Overstock product listings are publicly accessible.

#### How many items can I scrape?

Free users get 10 items per run. Paid users can extract up to 1,000,000 items per run across 84 pages per category.

#### What does "discount" look like in the output?

It shows as a string like "25% off" calculated from the original vs. sale price.

#### Can I get product descriptions?

Descriptions are not included in the current version - they require a separate product page fetch which is slow and intermittent. The listing data (title, price, brand, rating) comes from the category page directly.

#### Is the pricing real-time?

Yes. Every run fetches live data from Overstock. Prices and availability reflect the current state of the site.

#### What happens if a page is blocked?

The actor automatically retries up to 5 times per page using different residential proxy IPs before giving up.

#### What format is the output in?

JSON by default. Apify lets you download as CSV, Excel, XML, or HTML table from the dataset view.

#### Can I run this on a schedule?

Yes. Set up a scheduled run in Apify Console to collect data daily, weekly, or at any interval.

#### Is there a cheaper option for small datasets?

Yes - the pay-per-result pricing means you only pay for items you receive. 10 items per run is always free.

### 🔌 Integrate with any app

Export data to: **Google Sheets**, **Airtable**, **Notion**, **Slack**, **Zapier**, **Make**, **n8n**, **BigQuery**, **Snowflake**, **PostgreSQL**, **MongoDB**, **REST API**, **Webhook**, **Excel**, **CSV**, **JSON**

### 🔗 Recommended Actors

| Actor | Description |
|---|---|
| [Wayfair Scraper](https://apify.com/parseforge/wayfair-scraper) | Scrape Wayfair furniture and home goods listings |
| [Amazon Scraper](https://apify.com/apify/amazon-scraper) | Extract Amazon product listings and prices |
| [eBay Scraper](https://apify.com/apify/ebay-scraper) | Scrape eBay listings and auction data |

> 💡 **Pro Tip:** browse the complete [ParseForge collection](https://apify.com/parseforge) for scrapers covering 100+ websites.

**🆘 Need Help?** [Open our contact form](https://tally.so/r/BzdKgA)

> **⚠️ Disclaimer:** Independent tool, not affiliated with or endorsed by Overstock.com or Bed Bath & Beyond. Only publicly available product listing data is collected. Use responsibly and in accordance with Overstock's Terms of Service.

# Actor input Schema

## `searchQuery` (type: `string`):

Keyword to search for on Overstock (e.g. 'sofa', 'rug', 'coffee table', 'bedding')

## `maxItems` (type: `integer`):

Free users: Limited to 10 items (preview). Paid users: Optional, max 1,000,000

## Actor input object example

```json
{
  "searchQuery": "sofa",
  "maxItems": 10
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# 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 = {
    "searchQuery": "sofa",
    "maxItems": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("parseforge/overstock-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 = {
    "searchQuery": "sofa",
    "maxItems": 10,
}

# Run the Actor and wait for it to finish
run = client.actor("parseforge/overstock-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 '{
  "searchQuery": "sofa",
  "maxItems": 10
}' |
apify call parseforge/overstock-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Overstock Scraper | Home Goods and Furniture",
        "description": "Scrape Overstock product listings for furniture, decor, bedding, kitchen, and rugs with title, brand, price, ratings, reviews, dimensions, and photos. Power price monitoring, competitive intelligence, dropshipping research, and home goods market analytics at scale online.",
        "version": "0.1",
        "x-build-id": "JVMssF8IQcbFhiOqq"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/parseforge~overstock-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-parseforge-overstock-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/parseforge~overstock-scraper/runs": {
            "post": {
                "operationId": "runs-sync-parseforge-overstock-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/parseforge~overstock-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-parseforge-overstock-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",
                "required": [
                    "searchQuery"
                ],
                "properties": {
                    "searchQuery": {
                        "title": "Search Query",
                        "type": "string",
                        "description": "Keyword to search for on Overstock (e.g. 'sofa', 'rug', 'coffee table', 'bedding')"
                    },
                    "maxItems": {
                        "title": "Max Items",
                        "minimum": 1,
                        "maximum": 1000000,
                        "type": "integer",
                        "description": "Free users: Limited to 10 items (preview). Paid users: Optional, max 1,000,000"
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
