B&H Product Scraper
Pricing
from $2.00 / 1,000 b&h product scrapeds
B&H Product Scraper
πΈ Scrape detailed product data from B&H Photo & Video including price, specifications, weight, images, reviews, and availability. π Ideal for building Shopify catalogs, product databases, or monitoring price and stock changes across the B&H catalog.
Pricing
from $2.00 / 1,000 b&h product scrapeds
Rating
0.0
(0)
Developer
Krazee
Actor stats
0
Bookmarked
25
Total users
10
Monthly active users
5.8 hours
Issues response
4 days ago
Last modified
Categories
Share
πΈ B&H Product Catalog Sync & Update Tool (Scraper for Price, Specs & Inventory Data)
The B&H Product Catalog Sync & Update Tool is a powerful B&H product scraper designed to help you build and continuously update product catalogs without re-scraping everything. It extracts structured product data from bhphotovideo.com, including price, technical specifications, images, reviews, weight, and availability, while also enabling efficient recurring updates using a saved product list.
This makes it ideal for ecommerce workflows (including Shopify), product databases, price monitoring systems, and inventory tracking setups where product data needs to stay fresh over time.
π Table of Contents
- π Build and Update Your Product Catalog
- β‘ Quick Start
- π¦ What Data You Get
- π₯ Common Use Cases
- βοΈ Scraping Modes
- β¬οΈ Input Format
- π§ͺ Example Input
- π₯ Example Output (JSON)
- π§ͺ Reliability & Run Recovery
- β FAQ
- π Related Scrapers
π Build and Update Your Product Catalog
This actor is designed to help you build a product catalog once and keep it updated over time.
A typical workflow looks like this:
- Run the actor on B&H category pages to discover and collect product URLs and data.
- The actor stores the discovered product URLs as your product catalog.
- Later, run the actor in update mode to refresh product data without crawling categories again.
This enables fast, cost-efficient updates for:
- price changes
- stock availability
- product reviews and ratings
- promotions and discounts
without performing expensive full-site crawls again.
β‘ Quick Start
First Run (Catalog Discovery)
1οΈβ£ Provide category URLs
2οΈβ£ Run the actor in Full Sync mode
The actor will:
- discover products
- scrape them
- store their URLs for future updates
Future Runs (Fast Updates)
Run the actor again in Update Existing mode.
The actor will:
- load previously discovered product URLs
- scrape only the product pages
- skip category crawling entirely
This makes refresh runs significantly faster and lighter.
π¦ What Data You Get
Each dataset item represents a fully structured B&H product record that can be directly used in product catalogs, ecommerce systems, or data pipelines.
Key Product Fields
The dataset captures the most important attributes typically required for Shopify catalogs, ecommerce databases, and product monitoring systems:
nameβ Product namebrandNameβ Manufacturer / brandpriceβ Current product priceskuβ B&H product identifiermanufacturerCatalogNumberβ Manufacturer part number (MPN)itemWeightβ Product weight for shipping calculationsimageUrlsβ Product image galleryratingandreviewCountβ Customer reputation signalssellingPointsβ Product feature highlightsincludedItemsβ Items included in the boxspecificationsβ Full technical specification table
These fields allow the dataset to power workflows such as product catalog creation, listing automation, market research, and price monitoring.
Complete Field Overview
| Category | Whatβs Included | Why Itβs Useful |
|---|---|---|
| π Product Identity | skubhIdnameshortDescriptionitemCodemanufacturerCatalogNumberupc | Core identifiers used for catalog imports, product matching, and inventory systems |
| π· Brand Information | brandName | Useful for catalog filtering, brand analysis, and marketplace listings |
| π° Pricing & Promotions | pricecurrencyPricestrikethroughPricehasDiscounthasSavingsinstantSavingsAmountinstantSavingsPercent | Enables price tracking, discount monitoring, and promotion analysis |
| π Commercial Rules | soldInKitOnlycallForPricemapItemhasSessionPricing | Indicates special pricing rules or sales restrictions |
| π¦ Inventory & Availability | stockAvailabilitystockStatusstockMessagestockImportancestockShipTimemaxSellQuantityminSellQuantitysellsInMultipleOf | Tracks stock signals, availability changes, and selling limits |
| π Physical & Packaging Specs | itemWeightweightUnititemLengthitemWidthitemHeightdimensionUnitpackageWeightpackageLengthpackageWidthpackageHeight | Essential for shipping calculations, logistics, and catalog completeness |
| π¦ Box Contents | includedItems[] | Lists everything included with the product, useful for product page descriptions and bundle validation |
| πΌ Images & Media | mainImageUrlimageUrls[]imageCounthasImageshasSecondaryImageshasVideoshas3DImages | Provides complete product media assets for catalogs or storefronts |
| β Reviews & Reputation | ratingreviewCounthasReviews | Helps evaluate product popularity and customer satisfaction |
| π‘ Warranty & Protection | hasManufacturerWarrantymanufacturerWarrantyPeriodhasProtectionPlansprotectionPlanCountlowestProtectionPlanPricehasWarranty | Valuable for customer assurance signals and product comparisons |
| π Category Context | category1category2category3 | Useful for catalog categorization and product grouping |
| π SEO & URLs | productUrlcanonicalUrlshortUrlpageTitleseoShortDescription | Useful for linking, indexing, and referencing product pages |
| π§Ύ Technical Specifications | specifications β Fully grouped specification table extracted from the product page | Provides the complete technical spec sheet for each product |
| π§βπ» Metadata | scrapedAtrawPayloadVersion | Tracks scraping time and dataset versioning |
π‘ All fields are normalized, nullable-safe, and structured for analytics pipelines, catalog systems, or product monitoring workflows.
π₯ Common Use Cases
This tool is designed for workflows where B&H product data needs to be collected once and kept up to date over time.
π Shopify Dropshipping & Product Sourcing
Automatically import and maintain supplier products from B&H into your Shopify store.
- build your catalog from category pages
- keep product data updated (price, stock, specs)
- avoid re-scraping thousands of products repeatedly
Ideal for Shopify dropshippers and ecommerce sellers syncing supplier catalogs.
π Product Catalog Sync for Resellers
Maintain a large catalog of supplier products and keep it updated efficiently.
- update existing product listings without full recrawls
- track changes in pricing and availability
- manage thousands of products with minimal overhead
Ideal for resellers and ecommerce operators managing external supplier data.
π° Price Monitoring & Competitive Tracking
Track B&H product prices and promotional activity over time.
- monitor price fluctuations
- detect discounts and savings
- analyze pricing trends across categories
Useful for market research, competitor analysis, and pricing intelligence.
π¦ Inventory & Availability Tracking
Monitor stock signals and product availability changes.
- track stock status and shipping timelines
- detect availability changes quickly
- monitor selling limits and stock messages
Useful for inventory tracking systems and ecommerce automation workflows.
π§Ύ Product Data & Specification Databases
Build structured datasets with complete product specifications.
- collect detailed spec tables
- store product features and included items
- create datasets for comparison tools or research
Useful for product databases, analytics pipelines, and catalog enrichment.
βοΈ Scraping Modes
The actor supports two simple modes depending on what you want to do.
π Full Sync
Use Full Sync when you want to discover and scrape products from B&H category pages.
The actor will:
- crawl the provided category URLs
- discover all product pages in those categories
- scrape complete product data
- save discovered product URLs for future updates
This mode is typically used when building your product catalog for the first time.
π§ Smart Deduplication (New Products Only)
When running Full Sync multiple times, the actor automatically stores only newly discovered products, avoiding duplicates.
This keeps your catalog clean, reduces unnecessary processing, and ensures efficient long-term usage when tracking categories over time.
π Update Existing
Use Update Existing when you already have a saved product list and want to refresh product data.
Instead of crawling category pages again, the actor will:
-
load the previously discovered product URLs
-
scrape each product directly
-
return updated information such as:
- price
- availability
- reviews
- promotions
- stock signals
For example:
- You run Full Sync on a set of category URLs and collect 20,000 products.
- Later you run Full Sync again on other categories and collect another 20,000 products.
- After some time you want to refresh your dataset.
Instead of crawling categories again, you simply run Update Existing, and the actor will update all saved products in your dataset.
This makes recurring updates much faster and more efficient.
β¬οΈ Input Format
| Input | Description |
|---|---|
mode | Scraping mode: full_sync or update_existing |
categoryUrls | Category URLs used for Full Sync mode |
productsLimit | Max products per category URL |
includeReviews | Include customer reviews |
reviewsLimit | Reviews per product |
productUrlsDatasetId | Dataset containing saved product URLs used for Update Existing mode |
π§ͺ Example Input
Here is a sample JSON input you can provide when running the scraper:
{"mode": "Full sync","includeReviews": false,"categoryUrls": ["https://www.bhphotovideo.com/c/browse/Lighting-Studio/ci/1161/N/4294551176","https://www.bhphotovideo.com/c/buy/light-panels/ci/48383",],"productsLimit": 20}
π₯ Example output (JSON):
{"sku": 1667228,"itemSource": "REG","name": null,"shortDescription": "Sigma 18-50mm f/2.8 DC DN Contemporary Lens for Sony E","upc": null,"brandName": "Sigma","brandAuthorizedDealer": true,"brandUrl": "/c/browse/Sigma/ci/5545/N/4232860402","itemCode": "SI185028DCEM","manufacturerCatalogNumber": "585965","productUrl": "/c/product/1667228-REG/sigma_18_50mm_f_2_8_dg_dn.html","shortUrl": "https://bhpho.to/3vhUahU","pageTitle": "Sigma 18-50mm f/2.8 DC DN Contemporary Lens for Sony E 585965","canonicalUrl": "https://www.bhphotovideo.com/c/product/1667228-REG/sigma_18_50mm_f_2_8_dg_dn.html","seoShortDescription": "Sigma 18-50mm f/2.8 DC DN Contemporary","price": 555,"currencyPrice": null,"strikethroughPrice": null,"soldInKitOnly": false,"callForPrice": false,"mapItem": false,"hasSessionPricing": false,"hasDiscount": false,"hasSavings": false,"instantSavingsAmount": null,"instantSavingsPercent": null,"instantSavingsEndDate": null,"taxNote": null,"stockStatus": "IN_STOCK","stockImportance": "LOW","stockMessage": "Temporarily Out of Stock","stockShipTime": null,"shipsAlone": false,"freeShipping": false,"maxSellQuantity": 20,"minSellQuantity": 1,"sellsInMultipleOf": 1,"rating": 5,"reviewCount": 247,"hasReviews": true,"isHighlyRated": true,"mainImageUrl": "https://static.bhphoto.com/images/images345x345/1634631630_1667228.jpg","images": [{"url": "https://static.bhphoto.com/images/images345x345/1634631630_1667228.jpg","width": 345,"height": 345,"type": "main","isMain": true,"note": null},{"url": "https://www.bhphotovideo.com/images/images500x500/sigma_18_50mm_f_2_8_dg_dn_1634631630_1667228.jpg","width": 500,"height": 500,"type": "gallery","isMain": false,"note": null},{"url": "https://static.bhphoto.com/images/multiple_images/images500x500/1634631378_IMG_1623592.jpg","width": 500,"height": 500,"type": "gallery","isMain": false,"note": null},{"url": "https://static.bhphoto.com/images/multiple_images/images500x500/1634631378_IMG_1623593.jpg","width": 500,"height": 500,"type": "gallery","isMain": false,"note": null},{"url": "https://static.bhphoto.com/images/multiple_images/images500x500/1634631378_IMG_1623602.jpg","width": 500,"height": 500,"type": "gallery","isMain": false,"note": null},{"url": "https://static.bhphoto.com/images/multiple_images/images500x500/1634631378_IMG_1623603.jpg","width": 500,"height": 500,"type": "gallery","isMain": false,"note": "Sample Photo"},{"url": "https://static.bhphoto.com/images/multiple_images/images500x500/1634631378_IMG_1623604.jpg","width": 500,"height": 500,"type": "gallery","isMain": false,"note": "Sample Photo"},{"url": "https://static.bhphoto.com/images/multiple_images/images500x500/1634631378_IMG_1623605.jpg","width": 500,"height": 500,"type": "gallery","isMain": false,"note": "Sample Photo"},{"url": "https://static.bhphoto.com/images/multiple_images/images500x500/1634631378_IMG_1623606.jpg","width": 500,"height": 500,"type": "gallery","isMain": false,"note": "Sample Photo"}],"imageCount": 9,"hasImages": true,"hasSecondaryImages": true,"hasVideos": true,"has3DImages": true,"isUsed": false,"isRefurbished": false,"isOpenBox": false,"isNewArrival": false,"isNewRelease": false,"isExclusive": false,"conditionLabel": null,"hasManufacturerWarranty": true,"manufacturerWarrantyPeriod": "Year","hasProtectionPlans": true,"protectionPlanCount": 3,"lowestProtectionPlanPrice": 71.99,"hasWarranty": true,"sellingPoints": ["E-Mount Lens/APS-C Format","27-75mm (35mm Equivalent)","Aperture Range: f/2.8 to f/22","Minimum Focusing Distance: 4.8\"","Three Aspherical Elements","Special Low Dispersion Element","Rounded 7-Blade Diaphragm","Dust- and Splash-Proof Design","Includes LH582-02 Lens Hood"],"categoryExperts": [{"profileTitle": "Rafael D., B&H Photo Expert","imageUrl": "https://static.bhphotovideo.com/explora/sites/default/files/exp/rafael-d.png","categoryName": "Photography"},{"profileTitle": "Vilson L., B&H Photo Expert","imageUrl": "https://static.bhphotovideo.com/explora/sites/default/files/exp/vilson-l.png","categoryName": "Photography"},{"profileTitle": "Leonard E., B&H Photo Expert","imageUrl": "https://static.bhphotovideo.com/explora/sites/default/files/exp/leonard-e.png","categoryName": "Photography"},{"profileTitle": "Marisa P., B&H Photo Expert","imageUrl": "https://static.bhphotovideo.com/explora/sites/default/files/exp/marisa-p.png","categoryName": "Photography"},{"profileTitle": "Gerry R., B&H Photo Expert","imageUrl": "https://static.bhphotovideo.com/explora/sites/default/files/exp/gerry-r.png","categoryName": "Photography"},{"profileTitle": "Boyd H., B&H Photo Expert","imageUrl": "https://static.bhphotovideo.com/explora/sites/default/files/exp/boyd-h.png","categoryName": "Photography"},{"profileTitle": "Gil R., B&H Expert","imageUrl": "https://static.bhphotovideo.com/explora/sites/default/files/exp/gil-r.png","categoryName": "Photography"},{"profileTitle": "Jeannette G., B&H Photo Expert","imageUrl": "https://static.bhphotovideo.com/explora/sites/default/files/exp/jeannette_g.png","categoryName": "Photography"},{"profileTitle": "Jamie P., B&H Photo Expert","imageUrl": "https://static.bhphotovideo.com/explora/sites/default/files/exp/jamie_p.png","categoryName": "Photography"},{"profileTitle": "Patrick D., B&H Photo Expert","imageUrl": "https://static.bhphotovideo.com/explora/sites/default/files/exp/patrick_d_1.png","categoryName": "Photography"}],"scrapedAt": "2026-01-19T09:10:01.322537","rawPayloadVersion": "v1"},
π§ Output Views in Apify
The actor includes predefined output overviews in the Apify UI, tailored for different user needs such as pricing analysis, inventory monitoring, and market research.
You can explore these directly in the Apify Dataset β Output tab without writing any code.
π§ͺ Reliability & Run Recovery
The actor is designed to run reliably even when scraping large product catalogs.
Automatic Retries
Temporary network errors or blocked requests may occasionally occur when scraping large sites.
The actor automatically retries failed requests using session rotation and retry logic, allowing the run to continue without manual intervention.
Resume Interrupted Runs
If a run stops unexpectedly (for example due to platform limits, network issues, or manual interruption), you can resume the run without losing progress.
Using Apify's Resurrect Run feature, the actor will continue processing the remaining product URLs instead of starting from the beginning.
This is especially useful when running the actor on large product collections.
How Resume Works
Because the actor saves discovered product URLs and tracks processed requests, a resurrected run will continue from where the previous run stopped.
This applies to both scraping modes:
Full Sync
- Category crawling and product scraping will resume from the remaining items.
Update Existing
- Remaining product URLs that were not yet processed will continue scraping.
What This Means
You can safely run the actor on large category lists or product catalogs without worrying about losing progress if a run stops midway.
β FAQ
Does this B&H scraper support resuming from where a run stopped?
Yes. The actor supports Apifyβs run recovery feature, allowing you to resume from the last processed product instead of starting over. This is especially useful for large catalog scraping jobs.
Do I need to crawl category pages again to update product data?
No. After the initial run, the actor stores product URLs and lets you update existing products directly. This avoids re-crawling categories and makes updates much faster and cheaper.
Is this a cost-efficient B&H product scraper?
Yes. The actor is optimized for efficiency and typically costs around $2 per 1,000 products, depending on your configuration. Using the update mode significantly reduces costs compared to full recrawls.
What is the difference between Full Sync and Update Existing mode?
- Full Sync: Discovers products from category pages and builds your catalog
- Update Existing: Refreshes data for already saved product URLs
Most users run Full Sync once and then use Update Existing for regular updates.
Can I use this data for Shopify or other ecommerce platforms?
Yes. The extracted data is structured and ready for use in ecommerce systems, including Shopify, product databases, and catalog management tools.
Does this scraper include product specifications and images?
Yes. It extracts full technical specifications, product images, pricing, stock data, and other structured fields needed for complete product listings.
Can I scrape large B&H product catalogs with this tool?
Yes. The actor is designed for large-scale scraping and supports retries, session handling, and run recovery to handle thousands of products reliably.
How often should I run the scraper to keep data updated?
For most use cases, running the update mode daily or weekly is sufficient to keep pricing, stock, and product details up to date.
Does this scraper help with price and inventory monitoring?
Yes. You can track price changes, discounts, and stock availability over time using the structured data returned by the actor.
Do I need coding skills to use this scraper?
No. You can run the actor directly from Apify by providing inputs like category URLs or dataset IDs, without writing code.
π Related Scrapers
- ποΈ Meesho Search Results Scraper β Marketplace product listings and customer reviews
- π Blinkit Search Results Scraper β Quick-commerce pricing and availability
- β‘ Zepto Product Scraper β Hyperlocal delivery intelligence