Costco Scraper — Prices, Item Numbers, Ratings & Specs
Pricing
from $5.00 / 1,000 costco product scrapeds
Costco Scraper — Prices, Item Numbers, Ratings & Specs
Scrape Costco.com by keyword or product/category URL: prices, item numbers, brand, ratings, availability, images, and optional specs. Uses a managed JavaScript unlocker with browser-proxy fallback and transparent run outcomes. Pay per event. MCP-ready.
Pricing
from $5.00 / 1,000 costco product scrapeds
Rating
0.0
(0)
Developer
Khadin Akbar
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
6 days ago
Last modified
Categories
Share
Costco Scraper — Prices, Item Numbers & Ratings
Costco Scraper is an Apify Actor for Costco.com public catalog data. It accepts a keyword, a Costco search or category URL, or a direct product URL, and returns one normalized record per product with title, price, item number, brand, rating, reviews, availability, image, and source details. It is usable through Apify MCP, and each record represents one Costco product from the live catalog context.
Best fit and connected workflows
This Actor fits workflows that start with Costco.com search, category, or product pages and end with structured product rows in an Apify dataset. Common routing patterns include:
- Keyword discovery from Costco search results such as
laptoporolive oil. - Category monitoring from Costco listing pages.
- Direct product lookups from
.product.<id>.htmlURLs. - AI agent workflows through Apify MCP when an agent needs Costco product facts, provenance, and a bounded result count.
For broader pipelines, the dataset can feed spreadsheets, databases, dashboards, or monitoring jobs that compare Costco product facts over time.
Practical scenario
Maya, a procurement analyst, starts with the keyword robot vacuum and a modest maxResults value. The Actor returns product rows with title, public price, item number, rating, review count, availability, product URL, and image URL. Maya uses those fields to shortlist a few Costco items, then opens the product URLs for a closer review and compares the item numbers against her internal buying notes.
Input fields
| Field | Type | Purpose |
|---|---|---|
searchQuery | string | Keyword search on Costco.com, such as laptop or patio set. |
startUrls | array of strings | Costco search, category, or product URLs. Product URLs return one full detail record. |
maxResults | integer | Maximum number of product records to return across all sources. |
minPrice | integer | Keep products at or above this USD price. |
maxPrice | integer | Keep products at or below this USD price. |
minRating | integer | Keep products at or above this star rating. |
enrichProductDetails | boolean | Open product detail pages for breadcrumbs, full specs, description, and image gallery. |
proxyConfiguration | object | Optional proxy settings for the browser fallback. |
Focused JSON input example
{"searchQuery": "robot vacuum","maxResults": 10,"minPrice": 100,"minRating": 4,"enrichProductDetails": true,"proxyConfiguration": {"useApifyProxy": true}}
Output fields
The default dataset contains product records. The live dataset contract includes the following fields.
| Field | Type | Meaning |
|---|---|---|
recordType | string | Dataset row type, with product as the product record value. |
title | string | Costco product title shown in the catalog or product page. |
productUrl | string | Canonical Costco product URL for the record. |
itemId | string | Costco item ID when available. |
itemNumber | string | Costco item number when available. |
sku | string | Costco SKU when available. |
manufacturerSku | string | Manufacturer SKU when available. |
brand | string | Brand name extracted from the product data. |
price | number | Current price in the listed currency. |
originalPrice | number | Original price when shown. |
savings | number | Savings amount when shown. |
savingsPercent | integer | Savings percentage when shown. |
currency | string | Currency code such as USD when present. |
requiresMembership | boolean | Membership pricing signal from Costco. |
rating | number | Average star rating when present. |
reviewCount | integer | Public review count when present. |
availability | string | Public stock or availability signal. |
imageUrl | string | Main product image URL. |
images | array | Additional image URLs from the gallery. |
breadcrumbs | array | Category breadcrumbs from detail enrichment. |
category | string | Category name when available. |
subCategory | string | Subcategory name when available. |
dimensions | string | Product dimensions when available. |
weight | string | Product weight when available. |
material | string | Material when available. |
color | string | Color when available. |
description | string | Product description when enriched. |
features | array | Feature bullets when available. |
specs | object | Structured specifications when enriched. |
shippingInfo | string | Shipping information when available. |
freeShipping | boolean | Free shipping flag when available. |
promoFlag | string | Promotion label when available. |
variantCount | integer | Number of variants when available. |
position | integer | Result position in a listing. |
searchQuery | string | Search term used for the run. |
site | string | Site source marker when available. |
sourceUrl | string | Source page URL. |
retrievalMethod | string | Route used to obtain the record. |
scrapedAt | string | Timestamp of collection. |
_warnings | array | Record-level warnings when present. |
Illustrative dataset record
{"recordType": "product","title": "Example Costco Product","productUrl": "https://www.costco.com/example.product.100000001.html","itemId": "100000001","itemNumber": "100000001","brand": "Example Brand","price": 49.99,"originalPrice": 59.99,"savings": 10,"savingsPercent": 17,"currency": "USD","requiresMembership": false,"rating": 4.7,"reviewCount": 218,"availability": "In Stock","imageUrl": "https://cdn.example.com/product.jpg","searchQuery": "example","sourceUrl": "https://www.costco.com/CatalogSearch?keyword=example","retrievalMethod": "listing","scrapedAt": "2026-07-20T12:00:00.000Z"}
How it works
The Actor supports keyword search and Costco URLs. Listing pages are auto-detected and paginated until maxResults is reached. Product URLs return one full detail record. When enrichProductDetails is enabled for keyword or listing runs, the Actor opens each product detail page to add the item number, brand, breadcrumbs, full specifications, description, and image gallery.
Costco.com is protected by Akamai. The Actor first uses a managed US JavaScript-unlocker route, then falls back to browser-proxy handling when needed. The default dataset contains the product rows, and the key-value store contains machine-readable OUTPUT and RUN_SUMMARY records for the run outcome.
Pricing
This Actor uses Pay per event plus Apify platform usage.
- Actor start event: charged once per run start.
- Product event: charged for each product record written to the dataset.
For example, a run that returns ten product records uses eleven Actor events total: one start event and ten product events. Apify compute and proxy usage are billed separately by the platform. For current pricing details, open the live Pricing tab for this Actor when planning a run size or schedule.
Use with AI agents (MCP)
This Actor is available through Apify MCP as a structured Costco product-data tool. The exact Actor identity is khadinakbar/costco-scraper.
A practical MCP use case is a retrieval step where an agent gathers Costco catalog facts, then reads the dataset for product rows and the run store for the outcome metadata.
Search Costco for wireless headphones, return up to 10 product rows, and then summarize the title, public price, item number, rating, review count, availability, and source URL for each product. Read the dataset for product rows and the OUTPUT record for the run outcome.
The agent can interpret the dataset as structured product facts and use sourceUrl plus scrapedAt as provenance for downstream comparisons. For listing runs, position and searchQuery help preserve search context. For pagination and cost guidance, maxResults sets the product cap across all sources, and each product written to the dataset is a billable event. The OUTPUT and RUN_SUMMARY records provide outcome, route, validation, and billing diagnostics when present.
Run with the Apify API
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('khadinakbar/costco-scraper').call({searchQuery: 'wireless headphones',maxResults: 5,enrichProductDetails: true,});const { items } = await client.dataset(run.defaultDatasetId).listItems();for (const item of items) {console.log(item.title, item.price, item.itemNumber);}
from apify_client import ApifyClientimport osclient = ApifyClient(os.environ["APIFY_TOKEN"])run = client.actor("khadinakbar/costco-scraper").call(run_input={"searchQuery": "protein powder","maxResults": 5,"enrichProductDetails": False,})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item.get("title"), item.get("price"), item.get("itemNumber"))
Best results and outcome guidance
Start with a narrow keyword or a specific Costco URL and a modest maxResults value. Use startUrls when you already have a search, category, or product page. Turn on enrichProductDetails when you need breadcrumbs, full specs, description, or the image gallery. Use minPrice, maxPrice, and minRating to shape the returned dataset before downstream processing. For AI agent workflows, read both the dataset and the OUTPUT record so the agent can separate product facts from run outcome metadata.
Continue the workflow
- Then use Coupang Product Scraper - Prices & Listings to extend Costco Scraper — Prices, Item Numbers & Ratings with a neighboring commerce research source when the brief calls for Coupang data.
- Then use Avito Scraper — Listings, Prices, Sellers & Item Data to extend Costco Scraper — Prices, Item Numbers & Ratings with a neighboring commerce research source when the brief calls for Avito data.
Design note
I found that the live dataset contract makes recordType and scrapedAt required on every product row. That means every stored product record carries a clear record type and a collection timestamp.
FAQ
Can I start from a Costco search page instead of a keyword?
Yes. startUrls accepts Costco search pages, category pages, and product pages. The Actor auto-detects the URL type.
When should I use searchQuery?
Use searchQuery when you want the Actor to open Costco search results from a keyword such as laptop or patio set.
What happens with a Costco product URL?
A product URL returns one full detail record. This is useful when you already know the exact product page and want the full structured record.
Can I keep the output focused on a price range or rating range?
Yes. Use minPrice, maxPrice, and minRating to shape the returned product rows before they are written to the dataset.
Is this Actor usable through Apify MCP?
Yes. It is an Apify Actor usable through Apify MCP, and it returns structured Costco product data that an agent can read from the dataset.
Where are run outcome details stored?
The default dataset stores the product rows. The key-value store contains OUTPUT and RUN_SUMMARY records with outcome and execution diagnostics.
Responsible use
Use this Actor only for public Costco.com catalog pages and publicly visible product data. Keep requests within the requested scope, respect applicable law and site terms, and use the returned source URL and timestamp when you cite or compare product facts.