# Costco Product Scraper (`parseforge/costco-scraper`) Actor

Extract product data from Costco.com including prices, descriptions, ratings, and specifications

- **URL**: https://apify.com/parseforge/costco-scraper.md
- **Developed by:** [ParseForge](https://apify.com/parseforge) (community)
- **Categories:** E-commerce, Automation, Developer tools
- **Features:** Limited permissions
- **Stats:** 145 total users, 21 monthly users, 97.0% runs succeeded, 2 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

from $2.90 / 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/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

[![ParseForge](https://raw.githubusercontent.com/ParseForge/apify-assets/main/banner-v4.webp)](https://apify.com/parseforge?fpr=vmoqkp)

### Costco Product Scraper

**Scrape Costco product data from any category, search query, or direct URL, up to a million items per run.** Every product comes with its name, price, price per unit, rating, reviews count, and stock status. No login or API key. Export to CSV, JSON, Excel, or XML.

Costco.com does not offer a public API for product data, making it hard to track pricing, inventory, or product details at scale. This scraper reads product listings from search results, category pages, and individual product URLs directly, returning each item in a consistent schema. It handles pagination automatically and respects site limits.

| Who uses it | What they scrape Costco for |
|---|---|
| Price comparison analysts | Monitor Costco pricing across categories for competitive intelligence. |
| Inventory researchers | Track product availability and stock changes over time. |
| E-commerce marketers | Gather product data for market research or content creation. |
| Data scientists | Build datasets of Costco products for analysis or machine learning. |

### What it does

This Actor collects product data from Costco.com by search query, category filter, or direct product/category URLs, and returns each product as a flat row with name, price, price per unit, rating, reviews count, and stock status.

- 🔍 **Search by keyword:** Enter a product name or keyword to find matching items.
- 📂 **Category filter:** Narrow results to a specific department like electronics or appliances.
- 🔗 **Direct URLs:** Provide product or category page URLs for targeted scraping.
- 📊 **Pagination handled automatically:** The scraper follows next-page links until the max item limit is reached.

Results export to CSV, JSON, Excel, or XML, or straight from the API.

### What you can do with Costco data

**📈 Track pricing trends.**

A retailer runs weekly scrapes of Costco electronics to adjust their own pricing strategy.

**📦 Monitor product availability.**

A supply chain analyst scrapes Costco appliance categories daily to detect stockouts and restocks.

**🔍 Research product assortments.**

A market researcher collects all Costco furniture listings to analyze category breadth and pricing.

**📊 Build training datasets.**

A data scientist scrapes thousands of Costco products to train a product classification model.

### Why choose this scraper

|  | What you get |
|---|---|
| **No login needed** | Scrape Costco.com without creating an account or using an API key. |
| **Structured output** | Each product row includes name, price, price per unit, rating, reviews count, and stock status. |
| **Flexible input** | Use search keywords, category filters, or direct URLs to target exactly what you need. |
| **Scalable** | Collect up to 1 million products per run with automatic pagination. |

### How it compares

This actor competes with other Costco scrapers on Apify, offering a balance of features and ease of use.

| Feature | ParseForge | CostCo Reviews Scraper | CostCo Fast Product Scraper |
|---|---|---|---|
| Product name | Yes | Not listed | Yes |
| Price | Yes | Not listed | Yes |
| Price per unit | Yes | Not listed | Yes |
| Rating | Yes | Not listed | Yes |
| Reviews count | Yes | Not listed | Yes |
| Stock status | Yes | Not listed | Yes |
| Product reviews | Not listed | Yes | Not listed |

### Configure the run

Drive the Actor from search queries, category filters, or direct URLs, alone or together, and filters run as each product is read so only matches reach your dataset. The Input tab lists every parameter.

A first run with the defaults:

```json
{
  "maxItems": 10,
  "searchQuery": "smart watch"
}
```

A larger pull:

```json
{
  "maxItems": 200,
  "searchQuery": "smart watch"
}
```

### Pricing

Pay-per-result: **$0.0099 per result** collected. You pay only for the results written to your dataset.

| Results collected | Approximate cost |
|---|---|
| 100 results | $0.99 |
| 1,000 results | $9.90 |
| 10,000 results | $99.00 |

New Apify accounts start with $5 in free credit.

### Free users

Free-plan runs return up to 10 results as a preview. [Upgrade your Apify plan](https://console.apify.com/sign-up?fpr=vmoqkp) to collect up to 1,000,000 results per run.

### Run it

1. [Create a free Apify account with $5 in credit](https://console.apify.com/sign-up?fpr=vmoqkp).
2. Open the [Costco Product Scraper](https://apify.com/parseforge/costco-scraper?fpr=vmoqkp).
3. Set your inputs and any filters, then click **Start**.
4. Export the results as CSV, Excel, JSON, or XML from the **Dataset** tab.

Run it programmatically through the [Apify API](https://docs.apify.com/api/v2) (`run-sync-get-dataset-items`) or the [ApifyClient](https://docs.apify.com/api/client/js) for JavaScript and Python.

### Use with AI agents (MCP)

Give an AI agent live access to Costco through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:

```bash
claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/costco-scraper"
```

Then prompt it in plain language to run the scraper and read back the results.

### Troubleshooting

**Why am I getting no results?**

Check that your search query or category filter is spelled correctly. Also ensure you are not mixing direct URLs with search filters, as they are mutually exclusive.

**The scraper stopped early before reaching my max items.**

Costco.com may limit the number of pages or results available for a given search. Try using a broader search query or category filter.

**I see duplicate products in the output.**

Some products may appear in multiple categories or search results. The scraper does not deduplicate by default. You can remove duplicates in post-processing using the product URL or name.

**The scraper is slow or timing out.**

Reduce the maxItems setting or narrow your search query to fewer results. The scraper respects site rate limits to avoid being blocked.

### FAQ

| Question | Answer |
|---|---|
| Do I need a Costco account to use this scraper? | No, the scraper accesses public product pages on Costco.com without any login. |
| Can I scrape product reviews with this actor? | No, this scraper focuses on product data like name, price, and stock. For reviews, use the CostCo Reviews Scraper. |
| What is the difference between search query and category filter? | Search query finds products by keyword across all categories. Category filter narrows results to a specific department like electronics. |
| Can I use both direct URLs and search filters in one run? | No, they are mutually exclusive. Choose one input method per run. |
| How many products can I scrape per run? | You can set a maximum from 1 to 1,000,000 products. The scraper stops when it reaches that limit. |
| Does the scraper handle pagination? | Yes, it automatically follows next-page links on search and category pages. |
| What data fields are returned? | The output includes product name, price, price per unit, currency, rating, reviews count, stock status, and more. The full field list appears after a run. |
| Can I schedule regular runs? | Yes, you can schedule the actor to run daily, weekly, or at custom intervals via the Apify platform. |

### Related actors

Browse the full [ParseForge collection](https://apify.com/parseforge?fpr=vmoqkp) for more scrapers.

🆘 **Need help?** Email parseforge@protonmail.com with your run ID, your input, and what you expected.

⚠️ **Disclaimer.** This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by Costco Wholesale Corporation. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.

# Actor input Schema

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

How many products to collect per run.

## `startUrls` (type: `array`):

Direct Costco product or category page URLs to scrape. Use this OR search filters below, not both.

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

Search term to find products on Costco.com. Use this OR startUrls above, not both.

## `category` (type: `string`):

Optional category filter (e.g., 'electronics', 'appliances', 'furniture')

## Actor input object example

```json
{
  "maxItems": 10,
  "searchQuery": "smart watch"
}
```

# Actor output Schema

## `overview` (type: `string`):

Complete dataset with all product fields

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

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

# Run the Actor and wait for it to finish
run = client.actor("parseforge/costco-scraper").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "maxItems": 10,
  "searchQuery": "smart watch"
}' |
apify call parseforge/costco-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,parseforge/costco-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/3Sr6hmGNR6A0wdj5Z/builds/QJIete5T5ycsUxUqV/openapi.json
