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
1
Total users
0
Monthly active users
a day ago
Last modified
Categories
Share
Costco Scraper extracts structured product data from Costco.com search results, category pages, and product URLs. Use it for competitor price monitoring, retail catalog research, procurement, resale analysis, and AI shopping workflows that need current Costco product facts in JSON, CSV, Excel, or an Apify dataset.
The Actor accepts a search keyword such as laptop or olive oil, a Costco search/category URL, or a direct product URL. It returns one normalized record per product with the product title, price, Costco item number, brand, rating, review count, availability, images, and source URL. Turn on detail enrichment when you also need product specifications, breadcrumbs, description, image gallery, and member-price handling.
Costco uses Akamai bot protection. This Actor uses a managed US JavaScript-unlocker route when owner capacity is available; otherwise it can use a session-consistent browser with residential proxies. You do not need to provide cookies, a Costco account, or an API key.
When to use this Costco Scraper
Use it when you need publicly available Costco.com catalog data for:
- Monitoring a list of Costco product pages for price, stock, or rating changes.
- Finding products from a Costco keyword search or category page.
- Building a product comparison or competitive-pricing dataset.
- Researching wholesale, resale, procurement, or retail assortment opportunities.
- Giving an AI agent a focused product-research tool that returns structured rows rather than webpage text.
Avoid this Actor for Costco warehouse inventory, member accounts, checkout, orders, or personal data. Those are outside the public catalog contract.
Workflow: from a Costco query to a buying decision
A retail analyst starts with a focused query such as robot vacuum and a small maxResults value. The Actor then stores normalized Costco product rows, including the public price, item number, rating, availability, and source URL. Next, the analyst exports the dataset to a spreadsheet or database, compares the current Costco offer with other retailers, and schedules the same input for repeat monitoring. This turns a changing catalog page into a reviewable price and assortment decision.
What data can I extract?
Each dataset item represents one Costco product. Values that Costco does not display are returned as null, not guessed.
| Field | Description |
|---|---|
title | Product name shown by Costco. |
productUrl | Canonical Costco product URL. |
itemId, itemNumber, sku | Costco product identifiers when exposed. |
price, originalPrice, savings, savingsPercent | Current public price and promotion information in USD. |
requiresMembership | true when Costco displays Sign In For Price instead of a public price. |
brand | Brand extracted from Product JSON-LD or the product page. |
rating, reviewCount | Public aggregate rating and review count. |
availability | Public stock signal when Costco exposes one. |
imageUrl, images | Main image and available image gallery URLs. |
breadcrumbs, category, subCategory | Catalog taxonomy, available with detail enrichment. |
description, features, specs | Product description and specifications, available with detail enrichment. |
sourceUrl, searchQuery, scrapedAt | Traceability back to the source page, search, and scrape timestamp. |
How much does Costco scraping cost?
This Actor uses Pay per event + platform usage:
- $0.00005 per actor start.
- $0.005 for each product successfully written to the dataset.
- Apify compute and proxy usage are charged separately by the platform.
Examples: a run with 10 records costs $0.05005 in Actor events; a run with 100 records costs $0.50005 in Actor events, plus platform usage. Products rejected by a price or rating filter, blocked pages, and invalid records are not billed as products. maxResults is your product-event ceiling. Check the live Pricing tab before a large scheduled run.
How to use the Actor
Search Costco by keyword
Use searchQuery for a normal Costco catalog search. Start with a small limit to verify the exact data you need.
{"searchQuery": "robot vacuum","maxResults": 10,"enrichProductDetails": false}
Scrape a Costco category or product URL
Use startUrls for a Costco search URL, category URL, or a product URL ending in .product.<id>.html. Product URLs always receive the full detail extractor.
{"startUrls": ["https://www.costco.com/CatalogSearch?keyword=olive%20oil","https://www.costco.com/kirkland-signature-organic-extra-virgin-olive-oil.product.100334221.html"],"maxResults": 20,"enrichProductDetails": true}
Filter the catalog results
Use minPrice, maxPrice, and minRating after extraction. A member-only product without a visible public price is excluded when a price filter is set.
{"searchQuery": "laptop","maxResults": 25,"minPrice": 500,"minRating": 4,"enrichProductDetails": true}
Input reference
| Input | Use it for | Notes |
|---|---|---|
searchQuery | A keyword search such as patio set. | Leave empty when using only URLs. |
startUrls | Costco search, category, or product URLs. | Non-Costco URLs are skipped with a diagnostic. |
maxResults | Cap returned and billable product records. | 1–5,000; start small for monitoring. |
minPrice / maxPrice | Price filtering in USD. | Applied after product extraction. |
minRating | Keep products at or above a public rating. | Accepts 0–5. |
enrichProductDetails | Add detailed product fields. | Slower, but still billed once per product. |
proxyConfiguration | Optional browser-proxy settings. | Used when the managed unlocker is not configured. |
Output example
{"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,"currency": "USD","rating": 4.7,"reviewCount": 218,"availability": "In Stock","requiresMembership": false,"imageUrl": "https://cdn.example.com/product.jpg","sourceUrl": "https://www.costco.com/CatalogSearch?keyword=example","searchQuery": "example","scrapedAt": "2026-07-20T12:00:00.000Z"}
The Output tab also links to OUTPUT and RUN_SUMMARY. These records state whether the run was complete, partial, a valid empty result, invalid input, or an upstream failure, along with counts, billing events, route diagnostics, and safe warnings.
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: 10,enrichProductDetails: true,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
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})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item["title"], item.get("price"))
MCP and AI-agent workflow
Use this Actor through Apify MCP when an agent needs Costco facts with a clear source and bounded result count:
Search Costco for wireless headphones, return up to 10 product rows, then summarize the lowest public price, the rating, the item number, and the source URL. If the result is partial or fails, report the run outcome instead of treating it as an empty catalog.
The agent should read the default dataset for products and OUTPUT or RUN_SUMMARY for the outcome, row count, route diagnostics, and billing-event counts. It should keep pagination and cost bounded with maxResults, and it should use sourceUrl and scrapedAt as provenance for any downstream recommendation.
Reliability and troubleshooting
Costco may deny a request before its public product page is rendered. The Actor retries its active extraction route. If no product can be obtained after every available route is exhausted, the run is marked UPSTREAM_FAILED, no product event is charged, and RUN_SUMMARY explains what happened. If the owner-managed unlocker rejects its credentials or capacity, the run is marked CONFIG_ERROR so the provider can be restored; it is never presented as a successful empty scrape. A successful zero-result run means Costco processed the request but no product matched your search or filters.
For the most reliable results, use US Costco.com URLs, avoid combining thousands of URLs with a large detail-enrichment request, and schedule small monitoring batches. Prices, availability, images, and member-only price visibility can change at any time on Costco.com.
Freshness and provenance
Every product row includes the Costco sourceUrl and its scrapedAt collection time, so a downstream user can verify the public source behind a price or availability decision. The 2026-07-20 source update also writes versioned OUTPUT and RUN_SUMMARY records on each run; these describe the collection outcome separately from the returned product data.
Other product and retail scrapers
For a cross-retailer comparison, collect Costco products first and then use Walmart Data Extractor to monitor comparable Walmart listings. For marketplace discovery before a Costco price check, use Amazon Product Scraper or Google Shopping Scraper, then pass the focused product terms into this Actor.
FAQ
How many results can I scrape with Costco Scraper?
Set maxResults from 1 to 5,000. The Actor stops after the specified number of successfully stored products or when Apify’s product-charge limit is reached.
Can I integrate Costco Scraper with other apps?
Yes. Use an Apify integration, webhook, dataset export, or the Apify API to send the resulting dataset to a spreadsheet, database, workflow, or monitoring system.
Can I use Costco Scraper with the Apify API?
Yes. The JavaScript and Python examples above start a run and read its default dataset. OUTPUT and RUN_SUMMARY are available from the run’s default key-value store.
Can I use Costco Scraper through an MCP Server?
Yes. Search for this Actor through Apify MCP and call it as a focused Costco product-data tool. It returns structured product rows rather than unstructured product-page text.
Do I need proxies to scrape Costco data?
No proxy setup is required for the default managed route. proxyConfiguration is available only when you want to control the browser fallback.
Is it legal to scrape Costco data?
You are responsible for ensuring your use complies with applicable law, Costco’s terms, rate limits, and data-protection obligations. Do not use this Actor to access accounts, checkout flows, private inventory systems, or personal information.
Your feedback
If a page type is missing a field or Costco changes its catalog markup, open an issue with a public example URL and the field you expected. That makes it possible to improve the extractor without exposing private account data.