B&H Product Scraper avatar

B&H Product Scraper

Pricing

from $2.00 / 1,000 b&h product scrapeds

Go to Apify Store
B&H Product Scraper

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

Krazee

Maintained by Community

Actor stats

0

Bookmarked

25

Total users

10

Monthly active users

5.8 hours

Issues response

4 days ago

Last modified

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

This actor is designed to help you build a product catalog once and keep it updated over time.

A typical workflow looks like this:

  1. Run the actor on B&H category pages to discover and collect product URLs and data.
  2. The actor stores the discovered product URLs as your product catalog.
  3. 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 name
  • brandName – Manufacturer / brand
  • price – Current product price
  • sku – B&H product identifier
  • manufacturerCatalogNumber – Manufacturer part number (MPN)
  • itemWeight – Product weight for shipping calculations
  • imageUrls – Product image gallery
  • rating and reviewCount – Customer reputation signals
  • sellingPoints – Product feature highlights
  • includedItems – Items included in the box
  • specifications – 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

CategoryWhat’s IncludedWhy It’s Useful
πŸ†” Product Identitysku
bhId
name
shortDescription
itemCode
manufacturerCatalogNumber
upc
Core identifiers used for catalog imports, product matching, and inventory systems
🏷 Brand InformationbrandNameUseful for catalog filtering, brand analysis, and marketplace listings
πŸ’° Pricing & Promotionsprice
currencyPrice
strikethroughPrice
hasDiscount
hasSavings
instantSavingsAmount
instantSavingsPercent
Enables price tracking, discount monitoring, and promotion analysis
πŸ›’ Commercial RulessoldInKitOnly
callForPrice
mapItem
hasSessionPricing
Indicates special pricing rules or sales restrictions
πŸ“¦ Inventory & AvailabilitystockAvailability
stockStatus
stockMessage
stockImportance
stockShipTime
maxSellQuantity
minSellQuantity
sellsInMultipleOf
Tracks stock signals, availability changes, and selling limits
πŸ“ Physical & Packaging SpecsitemWeight
weightUnit
itemLength
itemWidth
itemHeight
dimensionUnit
packageWeight
packageLength
packageWidth
packageHeight
Essential for shipping calculations, logistics, and catalog completeness
πŸ“¦ Box ContentsincludedItems[]Lists everything included with the product, useful for product page descriptions and bundle validation
πŸ–Ό Images & MediamainImageUrl
imageUrls[]
imageCount
hasImages
hasSecondaryImages
hasVideos
has3DImages
Provides complete product media assets for catalogs or storefronts
⭐ Reviews & Reputationrating
reviewCount
hasReviews
Helps evaluate product popularity and customer satisfaction
πŸ›‘ Warranty & ProtectionhasManufacturerWarranty
manufacturerWarrantyPeriod
hasProtectionPlans
protectionPlanCount
lowestProtectionPlanPrice
hasWarranty
Valuable for customer assurance signals and product comparisons
πŸ—‚ Category Contextcategory1
category2
category3
Useful for catalog categorization and product grouping
πŸ” SEO & URLsproductUrl
canonicalUrl
shortUrl
pageTitle
seoShortDescription
Useful for linking, indexing, and referencing product pages
🧾 Technical Specificationsspecifications – Fully grouped specification table extracted from the product pageProvides the complete technical spec sheet for each product
πŸ§‘β€πŸ’» MetadatascrapedAt
rawPayloadVersion
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:

  1. You run Full Sync on a set of category URLs and collect 20,000 products.
  2. Later you run Full Sync again on other categories and collect another 20,000 products.
  3. 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

InputDescription
modeScraping mode: full_sync or update_existing
categoryUrlsCategory URLs used for Full Sync mode
productsLimitMax products per category URL
includeReviewsInclude customer reviews
reviewsLimitReviews per product
productUrlsDatasetIdDataset 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.