Costco Products Scraper exports structured public Costco product data from keywords, search URLs, category URLs, and product URLs. Use it for ecommerce catalog research, price monitoring, assortment checks, stock signal tracking, and repeatable CSV/JSON/API workflows.
What does this scraper do?
- Search and category extraction: collect Costco products from search terms like
laptopor public category URLs like/hair-care.html. - Product snapshots: normalize a direct Costco product URL into the same output format when Costco returns it through the public product data route.
- Buyer-ready product fields: product URL, item number, IDs, name, brand, description, price fields, currency, rating, reviews, availability signals, member-only flag, categories, and images.
- Cost control: cap total products, products per source, and paginated pages per source.
Who is it for?
Retail analysts, ecommerce sellers, price-monitoring teams, warehouse-club assortment trackers, and automation builders can use this scraper for public Costco catalog research.
Costco price tracker and product-data use cases
Use this Costco price tracker workflow to monitor public assortment and visible price changes. The same output also supports a Costco product data API workflow for ecommerce, reporting, and automation.
- Ecommerce teams: monitor Costco assortment and visible price changes.
- Market researchers: compare product names, categories, brands, and customer-review signals.
- Data teams: feed public Costco catalog records into BI, spreadsheets, alerts, and internal APIs.
- Automation builders: run repeatable Apify tasks or MCP-powered agents with the same JSON input.
Input example
{
"keywords": ["laptop"],
"maxItems": 10,
"maxItemsPerStartUrl": 10,
"maxSearchPagesPerStartUrl": 1
}
Output example
{
"productUrl": "https://www.costco.com/.product.4000318634.html",
"sourceUrl": "https://www.costco.com/s?keyword=laptop",
"itemNumber": "4000318634",
"name": "Lenovo Slim 7i 14\" OLED Touchscreen Copilot+ PC",
"brand": "Lenovo",
"price": 999.99,
"currencyCode": "USD",
"rating": 4.5,
"reviewsCount": 123,
"isInStock": true,
"image": "https://www.costco.com/example.jpg",
"scrapedAt": "2026-07-29T00:00:00.000Z"
}
Input settings
| Field | Type | Description |
|---|---|---|
keywords |
string[] | Costco search terms such as laptop, coffee, or vitamins. |
startUrls |
request list | Costco search, category, or product URLs. |
searchUrls |
string[] | Optional plain URL list for compatibility with other Costco scraper inputs. |
maxItems |
integer | Hard cap on total product records. |
maxItemsPerStartUrl |
integer | Hard cap for each keyword or URL. |
maxSearchPagesPerStartUrl |
integer | Maximum paginated Costco result pages per source. |
proxyConfiguration |
object | Optional proxy settings. Default runs without proxy for the public search API route. |
debug |
boolean | Save blocked or malformed response snippets to the key-value store. |
Tips and limits
- Keep first runs small (
maxItems10-25) while validating your source terms. - Costco may omit optional fields for some products; nullable fields are preserved instead of dropping valid records.
- This Actor scrapes public product/search/category data only. It does not log in, use private accounts, read carts, or claim warehouse-specific member inventory.
API usage
Node.js
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('fetch_cat/costco-products-scraper').call({
keywords: ['laptop'],
maxItems: 10
});
console.log(run.defaultDatasetId);
Python
from apify_client import ApifyClient
client = ApifyClient('YOUR_APIFY_TOKEN')
run = client.actor('fetch_cat/costco-products-scraper').call(run_input={
'keywords': ['laptop'],
'maxItems': 10,
})
print(run['defaultDatasetId'])
cURL
curl -X POST 'https://api.apify.com/v2/acts/fetch_cat~costco-products-scraper/runs?token=YOUR_APIFY_TOKEN' \
-H 'Content-Type: application/json' \
-d '{"keywords":["laptop"],"maxItems":10}'
MCP / agent usage
Use this Actor from Apify MCP when you want an AI agent to collect public Costco product data.
claude mcp add apify -- npx -y @apify/actors-mcp-server --actors fetch_cat/costco-products-scraper
{
"mcpServers": {
"apify": {
"command": "npx",
"args": ["-y", "@apify/actors-mcp-server", "--actors", "fetch_cat/costco-products-scraper"],
"env": { "APIFY_TOKEN": "YOUR_APIFY_TOKEN" }
}
}
}
Example prompts:
- "Scrape 25 Costco laptop products and return price, rating, and product URL."
- "Monitor this Costco category URL and list products that are member-only."
- "Get one product snapshot for this Costco product URL."
Support
If you need help, open an issue on the Actor page and include:
- Input JSON: the exact input you used.
- Expected output: what product, field, or count you expected.
- Actual output: what the run produced instead.
- Reproducible public URL: a Costco keyword, category URL, product URL, or public Apify run URL that reproduces the issue.