BigCommerce Scraper: Products, Prices & Stock to CSV
Pricing
from $0.80 / 1,000 products
BigCommerce Scraper: Products, Prices & Stock to CSV
Scrape products from public BigCommerce stores or product URLs, with price, retail price, stock, brand and SKU. Limit products per store or across results.
Pricing
from $0.80 / 1,000 products
Rating
0.0
(0)
Developer
MRSLM Data
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
1
Monthly active users
5 hours ago
Last modified
Categories
Features
Share
Export products, prices, sale and retail prices, stock, brand, SKU/GTIN and ratings from any public BigCommerce store. $1.00 per 1,000 products.
Scrape BigCommerce product pages and public sitemaps to export product prices, stock and other listing data to CSV. This BigCommerce data option uses public pages without a store login or private API.
Quick start
- Open the Actor in Apify Console and enter this example input:
{"stores": ["cornerstone-light-demo.mybigcommerce.com"],"maxProductsPerStore": 20}
- Press Start. Replace the example values with your own sources when ready.
- Open Output to inspect and export the results. Save the input as a task to run it again.
What it does
The Actor discovers products through public XML sitemaps and reads public product pages and their structured data. It can also read individual product URLs. A vendor API key or store login is not required.
Use stores for discovery and productUrls for individual pages. maxProductsPerStore defaults to 100; 0 means every product in the sitemap. maxResults caps saved products across stores, with 0 meaning no cap. includeDescription controls a plain-text description of up to 1,000 characters. proxyConfiguration is available for runs involving many stores.
Each saved product becomes a dataset row. Keep the source URL and collection timestamp with your export so that you can check the source and understand when a value was observed. Separate runs create separate snapshots; comparing them is an analysis step you control.
Who it is for
- Retailers and vendors: compare public prices, product details and market positioning.
- Agencies: investigate public listings before making a recommendation or planning a migration.
- Researchers: build a structured snapshot for a defined set of sources.
- Data teams: feed repeatable exports into spreadsheets and internal reporting workflows.
Start with a small set of sources and inspect the available columns before expanding the scope. Public pages may expose different details, so checking coverage early makes comparisons more reliable.
Real example: BigCommerce products
Step 1: Enter the input
Open the Actor and paste this exact input in the JSON editor:
{"stores": ["cornerstone-light-demo.mybigcommerce.com"],"maxProductsPerStore": 20}
Step 2: Run it
Press Start and inspect the run's dataset. Our test run on Nov 10, 2026 saved 20 saved rows. Five of them are shown trimmed below. A new run may return different rows because the source changes.
Step 3: Read the output
The following are trimmed real rows from that run. The displayed values are unchanged; other columns are omitted for readability.
[{"store": "cornerstone-light-demo.mybigcommerce.com","productId": "102","name": "Dish Detergent","brand": "FreshBrand","sku": null,"upc": null,"mpn": null,"gtin": null,"price": 15,"currency": "CAD","inStock": true,"url": "https://cornerstone-light-demo.mybigcommerce.com/all/dish-detergent/"},{"store": "cornerstone-light-demo.mybigcommerce.com","productId": "106","name": "Feather Duster","brand": "FreshBrand","sku": null,"upc": null,"mpn": null,"gtin": null,"price": 26,"currency": "CAD","inStock": true,"url": "https://cornerstone-light-demo.mybigcommerce.com/all/feather-duster/"}]
Keep the currency alongside a price, and retain the source URL when comparing results. A missing value should not be silently converted to zero. Review the source page when a value affects a purchasing, compatibility or business decision.
Output fields
The fields below appeared in that real run. Values can differ or be absent in other rows. Arrays are shown as arrays here; a flat spreadsheet export may represent them differently.
| Field | Example from the real run |
|---|---|
store | "cornerstone-light-demo.mybigcommerce.com" |
productId | "102" |
name | "Dish Detergent" |
brand | "FreshBrand" |
sku | null |
upc | null |
mpn | null |
gtin | null |
price | 15 |
priceWithTax | null |
retailPrice | null |
salePriceFrom | null |
priceRange | null |
currency | "CAD" |
inStock | true |
availability | "InStock" |
stockLevel | null |
purchasable | true |
condition | "NewCondition" |
weight | "1.00 KGS" |
ratingValue | null |
reviewCount | null |
categoryPath | ["Shop All"] |
description | "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi vel metus ac est egestas porta sed quis erat. … |
images | ["https://cdn11.bigcommerce.com/s-n0i50vy/images/stencil/1280x1280/products/102/331/CommonGoodDishSoap_1024x10… |
variantCount | 0 |
url | "https://cornerstone-light-demo.mybigcommerce.com/all/dish-detergent/" |
scrapedAt | "2026-11-10T09:52:32.975Z" |
Use JSON if you need to preserve arrays, and CSV or Excel for a flat table. Keep identifiers as text during import to avoid changing their formatting. Null and empty values are part of the observed output, so check them before calculating averages or joining datasets.
Export to CSV, Excel or Google Sheets
Open the run in Apify Console, select Output, and choose Export. Download CSV for a portable table, Excel for a workbook, or JSON for structured data. Select the columns relevant to your analysis and check how your spreadsheet handles arrays and empty cells.
You can also download the dataset with its ID and an Apify token:
curl -H "Authorization: Bearer $APIFY_TOKEN" \"https://api.apify.com/v2/datasets/<DATASET_ID>/items?format=csv&clean=1" -o bigcommerce-products.csvcurl -H "Authorization: Bearer $APIFY_TOKEN" \"https://api.apify.com/v2/datasets/<DATASET_ID>/items?format=xlsx&clean=1" -o bigcommerce-products.xlsx
For a one-time Google Sheets import, download the CSV and choose File > Import > Upload in Sheets. For a recurring workflow, connect an Apify run or task to Make, Zapier or n8n, retrieve dataset items and write the rows to a sheet. Choose whether to replace the previous snapshot or append each run; appending preserves history but requires a plan for identifying duplicate listings.
Schedule it
Save the input as a task in Apify Console, create a schedule and attach the task. For example, 0 7 * * 1 runs every Monday at 7 AM in the selected timezone. Each run has its own dataset, so you can retain snapshots and compare them later.
Review the limits and event prices before scheduling. Check early runs for coverage and missing values, and update a fixed date filter yourself if your workflow uses one. An integration can retrieve the dataset after a successful run and pass the rows to your reporting system.
Call it from the API in Python, JavaScript or curl
Put your Apify token in the APIFY_TOKEN environment variable. These examples use the example input. The Python example uses the typed run object returned by apify-client 3.x.
Python (pip install "apify-client>=3"):
import osfrom apify_client import ApifyClientclient = ApifyClient(os.environ["APIFY_TOKEN"])run_input = {"stores": ["cornerstone-light-demo.mybigcommerce.com"],"maxProductsPerStore": 20}run = client.actor("mrslm_data/bigcommerce-products").call(run_input=run_input)for item in client.dataset(run.default_dataset_id).iterate_items():print(item.get("name"))
JavaScript / Node.js (npm install apify-client):
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const input = {"stores": ["cornerstone-light-demo.mybigcommerce.com"],"maxProductsPerStore": 20};const run = await client.actor('mrslm_data/bigcommerce-products').call(input);const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items.length, items[0]);
curl starts a synchronous run and returns CSV. Keep synchronous requests small because the request waits for completion.
curl -X POST "https://api.apify.com/v2/acts/mrslm_data~bigcommerce-products/run-sync-get-dataset-items?format=csv" \-H "Authorization: Bearer $APIFY_TOKEN" -H "Content-Type: application/json" \-d '{"stores": ["cornerstone-light-demo.mybigcommerce.com"], "maxProductsPerStore": 20}' -o bigcommerce-products.csv
For larger jobs, start a run and retrieve the dataset after it finishes. Store tokens securely and restrict access to any automation that can read them.
What it costs
The Actor uses pay-per-event pricing. One product event is charged for each saved product, and an apify-actor-start event is charged per run. These are the current prices; check the Actor page for current pricing before a run.
Price per event
| Event | Free / Bronze | Silver | Gold |
|---|---|---|---|
product per 1,000 saved | $1.00 | $0.90 | $0.80 |
apify-actor-start per run | $0.00005 | $0.00005 | $0.00005 |
At the Free/Bronze rate, one run with 20 saved rows costs $0.02005, including the start event. One run with 1,000 saved rows costs $1.00 plus $0.00005. Each additional run has its own start event. These examples use saved-row counts and do not guarantee that a source will return that many rows.
Use maxResults to bound the number of saved rows. When planning recurring work, account for both the number of runs and the number of rows per run. A small initial run helps you assess source coverage and likely scale.
Limits
A public sitemap may omit products, and pages may not publish every field. A null stock level or identifier is not zero. Prices and availability can change after collection. Descriptions are plain text and limited to 1,000 characters.
Public data is a snapshot, and a listing can change or disappear. A result limit can also make the dataset smaller than the source catalog. Keep raw exports if you need to audit a comparison later, and inspect the source when completeness matters.
FAQ
How do I scrape a BigCommerce store without an API key?
Add a store domain or URL to stores. The Actor reads public sitemap and product page data without a vendor API key. Coverage depends on what the site publishes.
Can I scrape individual BigCommerce product URLs?
Yes. Add product pages to productUrls. You can also use stores in the same input when you need sitemap discovery as well as specific pages.
How do I limit products per BigCommerce store?
Set maxProductsPerStore. The default is 100; 0 means every product in the sitemap. The overall maxResults cap can further limit saved products.
How do I cap the total number of products?
Set maxResults to a positive number to limit saved products across the run. Its default of 0 means no run-wide result cap.
Can I omit product descriptions?
Set includeDescription to false. When included, the plain-text description is limited to 1,000 characters.
Does every product have a SKU or GTIN?
No. Fields depend on public source data. The sample has null identifiers, so check coverage before using them to match products.
Can I monitor BigCommerce prices and stock over time?
Schedule the same task and retain each dataset as a dated snapshot. Compare prices and availability across runs yourself; changes may also reflect source coverage.
What does a null stock level mean?
It means the row has no value for that field, not necessarily that stock is zero. The sample includes an in-stock indicator with a null stock level.
How much do 1,000 products cost?
On Free/Bronze, 1,000 saved products cost $1.00 plus the $0.00005 start event, totaling $1.00005 for one run.
Related scrapers
- Shopify Scraper: Sale Prices, Compare-at & Stock
- WooCommerce Products Scraper: Prices, Sales & Stock
- Magento Scraper: Adobe Commerce Products & Prices
Is it legal?
This Actor only reads pages and feeds that the website itself publishes to every visitor without a login. It obeys each site's robots.txt, keeps a polite request rate, and never tries to get past logins, paywalls, captchas or bot checks. It does not collect personal data such as emails, phone numbers or names of private individuals. You are responsible for how you use the data: follow the source site's terms, copyright and the privacy laws that apply to you (GDPR, CCPA, etc.). This tool is independent and not affiliated with or endorsed by the platforms it reads.