Costco Scraper — Product Search, Details & Price API avatar

Costco Scraper — Product Search, Details & Price API

Pricing

from $0.90 / 1,000 search result rows

Go to Apify Store
Costco Scraper — Product Search, Details & Price API

Costco Scraper — Product Search, Details & Price API

Scrape Costco.com and Costco.ca: keyword product search and full product details by item number. Sale, list and per-unit prices, ratings, stock status, brand and images in one clean JSON dataset. Built for price monitoring, price tracking and catalog enrichment.

Pricing

from $0.90 / 1,000 search result rows

Rating

0.0

(0)

Developer

SIÁN OÜ

SIÁN OÜ

Maintained by Community

Actor stats

1

Bookmarked

28

Total users

10

Monthly active users

2.3 hours

Issues response

4 days ago

Last modified

Share

Costco Scraper — Product Search, Details & Price API 🛒

SIÁN Agency Store Amazon Influencer & Deals Taobao & Tmall TikTok Shop

🎉 Live Costco product data: search any keyword or pull full product details by item number, into one clean JSON dataset

For price monitoring, price tracking and catalog enrichment teams who want dependable Costco data without running their own browser scraper


📋 Overview

Costco product data without the scraping chores. This Costco Scraper pulls keyword search results and full product details from costco.com (US) and costco.ca (Canada) into clean, query-ready JSON. You don't manage browsers, proxies or captchas.

What you get:

  • ✅ API-backed reliability: structured rows on every run, rather than an HTML scraper that breaks when Costco changes its page layout.
  • ⚡ Two operations, one dataset per run: keyword Product Search (~24 products per page) or Product Details by item number.
  • 🎯 Structured fields: sale price, list price, per-unit price, ratings, stock status, brand (including Kirkland Signature), program eligibility, category path, marketing features and image galleries.
  • 💰 Pay per result: you're charged only for products you receive, plus a small Actor-start fee. No monthly subscription.
  • 💎 US + Canada: costco.com in English, or costco.ca in English (en-CA) or French (fr-CA). The language matches the country automatically.
  • ✨ Clean camelCase output: readable field names, with Costco's original fields kept alongside so nothing is dropped.

✨ Features

  • 🔍 Product Search: search Costco by any keyword and paginate through results (~24 products per page).
  • 📦 Product Details: fetch one product's full record by its Costco item number.
  • 💲 Full pricing: sale price, list price, minimum/maximum price, and per-unit price with currency.
  • ⭐ Ratings & reviews count: average rating and total review count per product.
  • 📦 Availability intel: in-stock flag, stock status, delivery status, backorder flag, and fulfillment min/max quantities.
  • 🏷️ Membership signals: member-only flag and program eligibility (ShipIt, 2-Day Delivery, In-Warehouse, Warehouse Delivery).
  • 🧾 Catalog data: brand, category path, item class, department/category, marketing features and statement.
  • 🖼️ Images: primary image plus the full image gallery, with HTTPS-normalized URLs.
  • 🌍 US + Canada: costco.com (English) or costco.ca (English or French).
  • 📄 Auto-pagination: search stops on its own when there are no more results.

🎬 Quick Start

Pick an operation, give it a query (search) or an item number (details), and run. Each run produces one dataset for the chosen operation. Results export to JSON, CSV, or Excel from the Apify dataset.

curl -X POST "https://api.apify.com/v2/acts/sian.agency~costco-data-scraper/runs?token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"operation": "search", "query": "paper towels", "maxPages": 2}'

🚀 Getting Started (3 Simple Steps)

Step 1: Choose your operation

Select Product Search to discover products by keyword, or Product Details to fetch a single product by its Costco item number.

Step 2: Provide your input

For search, enter a query like air fryer. For details, enter an item number like 512599. Optionally set the country (US or CA), the language and max pages.

Step 3: Run and export

Start the run and the dataset fills as pages come back. Export to JSON, CSV, or Excel, or pull results via the Apify API.

A few minutes later you'll have:

  • A structured dataset of Costco products
  • Current prices, ratings, stock status and brand for each one
  • Fields ready for price-monitoring or catalog workflows

⏱️ Note: Costco responds slowly. Each page can take 1–2 minutes, so large page counts run long. The actor retries temporary failures by itself.


📥 Input Configuration

FieldTypeRequiredDescription
operationstringYessearch or productDetails — pick one per run
querystringFor searchCostco product search query (e.g. paper towels)
productIdstringFor productDetailsCostco item number (e.g. 512599)
countrystringNoUS (costco.com, default) or CA (costco.ca)
languagestringNoen-US for US; en-CA or fr-CA for CA. Leave empty to match the country
maxPagesintegerNoPages to fetch for search (default 5, max 50)

Search example:

{
"operation": "search",
"query": "kirkland signature olive oil",
"country": "US",
"maxPages": 3
}

Product details example:

{
"operation": "productDetails",
"productId": "512599",
"country": "US"
}

Costco Canada example (French results):

{
"operation": "search",
"query": "café",
"country": "CA",
"language": "fr-CA",
"maxPages": 1
}

Country and language go together: US uses costco.com in English (en-US), and CA uses costco.ca in English (en-CA) or French (fr-CA). Leave language empty and it follows the country. If you pick a language the country doesn't offer, the actor switches to that country's default instead of failing.


📤 Output

Results are saved to the Apify dataset with 40+ structured fields per product, including:

FieldTypeDescription
itemNumberstringCostco item number (primary id)
itemNamestringProduct name
brandarrayBrand(s), e.g. ["Kirkland Signature"]
salePricenumberCurrent sale price
listPricenumberList price
pricePerUnitnumberPrice per unit
currencystringCurrency code (e.g. USD)
ratingnumberAverage rating
reviewCountintegerTotal review count
memberOnlybooleanMember-only product flag
inStockbooleanIn-stock flag
stockStatusstringe.g. in stock
programEligibilityarrayFulfillment programs (ShipIt, 2-Day, In-Warehouse…)
categoryPatharrayCategory breadcrumb paths
skusarrayManufacturer codes, only when Costco publishes them — empty for most items, so not a reliable source of UPC/GTIN barcodes
imagestringPrimary image URL
imagesarrayFull image gallery
productUrlstringCostco product URL

Example row (truncated):

{
"_operation": "search",
"status": "success",
"itemNumber": "512599",
"itemName": "Kirkland Signature Paper Towels, 2-Ply, 160 Sheets, 12 Rolls",
"brand": ["Kirkland Signature"],
"salePrice": 23.99,
"listPrice": 23.99,
"pricePerUnit": 23.99,
"currency": "USD",
"rating": 0,
"reviewCount": 0,
"memberOnly": false,
"inStock": true,
"stockStatus": "in stock",
"programEligibility": ["ShipIt", "2DayDelivery", "InWarehouse"],
"categoryPath": ["/grocery-household.html", "/paper-towels-napkins.html"],
"skus": [],
"image": "https://bfasset.costco-static.com/.../512599-847__1"
}

Filter the dataset by _operation (search / productDetails) or status (success / error) to split or clean rows.


💼 Use Cases & Examples

1. Price & Assortment Monitoring

Retail analysts tracking Costco prices across a category.

Input: Product Search with a category query, scheduled daily Output: Sale price, list price, per-unit price, and stock status per product Use: Diff the dataset between runs to catch price moves, rollbacks and new items.

2. Costco Price Tracking

E-commerce operators following specific item prices over time.

Input: Product Details for a known item number, run on a schedule Output: Current sale/list price, member-only flag, and availability Use: Power a price-tracker dashboard or alerting workflow on price drops.

3. Competitor Catalog Mapping

Brand managers benchmarking against Costco's assortment.

Input: Product Search across your product segments Output: Brand presence (incl. Kirkland Signature), category coverage, and positioning Use: Map Costco's catalog against your own to find gaps and overlaps.

4. Product Catalog Enrichment

Data teams building a structured product database.

Input: Product Details for a list of item numbers Output: Marketing features, program eligibility, category path, image gallery Use: Enrich your own catalog with clean, query-ready Costco attributes.

5. Membership & Availability Intelligence

Operations teams analyzing Costco availability at scale.

Input: Product Search or Details with stock fields Output: Member-only flags, in-stock status, delivery status, fulfillment programs Use: Understand membership-gated pricing and availability patterns across products.

6. Market Research & Pricing Studies

Researchers studying warehouse-club pricing.

Input: Broad keyword searches across categories Output: Price, per-unit price, brand, and rating data in bulk Use: Build pricing datasets for analysis, modeling, or reporting.


🔗 Integration Examples

JavaScript/Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_TOKEN' });
const run = await client.actor('sian.agency/costco-data-scraper').call({
operation: 'search',
query: 'air fryer',
maxPages: 2,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items[0]);

Python

from apify_client import ApifyClient
client = ApifyClient('YOUR_TOKEN')
run = client.actor('sian.agency/costco-data-scraper').call(
run_input={'operation': 'productDetails', 'productId': '512599'}
)
for item in client.dataset(run['defaultDatasetId']).iterate_items():
print(item)

cURL

curl -X POST 'https://api.apify.com/v2/acts/sian.agency~costco-data-scraper/runs?token=YOUR_TOKEN' \
-H 'Content-Type: application/json' \
-d '{"operation": "search", "query": "olive oil", "maxPages": 1}'

Automation Workflows (N8N / Zapier / Make)

  1. Trigger: Schedule (e.g. daily price check) or webhook
  2. HTTP Request: Call the actor API with your operation + input
  3. Process: Handle the JSON dataset rows
  4. Action: Save to a database, diff prices, or send alerts

📊 Performance & Pricing

FREE Tier (Try It Now)

  • Run both operations with the same fields as paid runs
  • No credit card required
  • Perfect for testing and small price checks
  • Scale up search pagination and bulk item lookups
  • Pay-per-result: only charged for successful products
  • Small Actor-start fee, no subscription

💰 You pay for the Costco products you actually get, not a flat monthly fee.

🔗 View current pricing


❓ Frequently Asked Questions

Q: What can I scrape from Costco? A: Two operations: keyword Product Search (paginated product listings) and Product Details by Costco item number. Both return prices, ratings, stock, brand, program eligibility, category path and images.

Q: Why is a run slow sometimes? A: Costco responds slowly, and each page can take 1–2 minutes. The actor retries temporary failures and stops paginating once there are no more results.

Q: Does it support Costco Canada? A: Yes. Set country to CA to query costco.ca (the default is US, costco.com in English). Canadian results come back in English (en-CA) unless you set language to fr-CA for French. If language is empty, or set to one the country doesn't offer, the actor uses the country's default.

Q: How do I find an item number? A: Run Product Search first. Every result row includes itemNumber, and the same number appears in Costco product URLs.

Q: Does it scrape customer review text? A: No. Each product comes with its average rating and review count, but not the individual review text.

Q: What output formats are available? A: JSON, CSV and Excel. Export straight from the Apify dataset, or pull results via the Apify API.

Q: Is this legal? A: We only extract publicly available product data. See the legal section below.


🐛 Troubleshooting

A run returns an error row instead of products

  • Costco may have been temporarily unavailable. Re-run it; the actor already retries automatically.
  • For Product Details, double-check the item number is valid (run Product Search to confirm it).

Search returns fewer pages than maxPages

  • This is expected. Pagination stops when Costco has no more results for your query.

A run takes several minutes

  • Costco responds slowly (1–2 minutes per page). Start with maxPages between 1 and 3 to preview before scaling up.

No results for a query

  • Try a broader or differently-worded query; very specific phrases can return zero matches.

Our actors are ethical and do not extract any private user data, such as email addresses, gender, or location. They only extract what has been chosen to be shared 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.


🤝 Support

Need help?


✨ More by SIÁN Agency


⚠️ Trademark Disclaimer

This actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Costco Wholesale Corporation. "Costco", "Kirkland Signature", and related marks are trademarks of their respective owners and are used here only to describe the data this tool helps you collect. Use this actor responsibly and in compliance with applicable laws, Costco's terms of service, and data-protection regulations (including GDPR and CCPA where applicable). You are responsible for how you use the data you extract.

Scrape only publicly available data and use it lawfully. For guidance on ethical and compliant web scraping, see Apify's guide to web scraping legality. Do not collect personal data in violation of GDPR, CCPA, or other applicable privacy laws.


Built by SIÁN Agency | More Tools